diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e79ce4b..cea88ad5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,7 +41,7 @@ jobs: - name: Set up tools run: | go install golang.org/x/tools/cmd/goimports@latest - go install github.com/golang/mock/mockgen@v1.6.0 + go install go.uber.org/mock/mockgen@latest - name: Build run: | diff --git a/Makefile b/Makefile index 015bba8d..e005edbc 100644 --- a/Makefile +++ b/Makefile @@ -27,4 +27,5 @@ test: MOCKGEN := mockgen mockgen: ## Download conversion-gen locally if necessary. - go get github.com/golang/mock/mockgen; go install github.com/golang/mock/mockgen; + go install go.uber.org/mock/mockgen@latest + diff --git a/cloudstack/APIDiscoveryService_mock.go b/cloudstack/APIDiscoveryService_mock.go index 4362b38a..33453241 100644 --- a/cloudstack/APIDiscoveryService_mock.go +++ b/cloudstack/APIDiscoveryService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/APIDiscoveryService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/APIDiscoveryService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/APIDiscoveryService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAPIDiscoveryServiceIface is a mock of APIDiscoveryServiceIface interface. type MockAPIDiscoveryServiceIface struct { ctrl *gomock.Controller recorder *MockAPIDiscoveryServiceIfaceMockRecorder + isgomock struct{} } // MockAPIDiscoveryServiceIfaceMockRecorder is the mock recorder for MockAPIDiscoveryServiceIface. @@ -62,7 +68,7 @@ func (m *MockAPIDiscoveryServiceIface) ListApis(p *ListApisParams) (*ListApisRes } // ListApis indicates an expected call of ListApis. -func (mr *MockAPIDiscoveryServiceIfaceMockRecorder) ListApis(p interface{}) *gomock.Call { +func (mr *MockAPIDiscoveryServiceIfaceMockRecorder) ListApis(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListApis", reflect.TypeOf((*MockAPIDiscoveryServiceIface)(nil).ListApis), p) } diff --git a/cloudstack/ASNumberRangeService.go b/cloudstack/ASNumberRangeService.go new file mode 100644 index 00000000..68debc56 --- /dev/null +++ b/cloudstack/ASNumberRangeService.go @@ -0,0 +1,399 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" + "strconv" +) + +type ASNumberRangeServiceIface interface { + CreateASNRange(p *CreateASNRangeParams) (*CreateASNRangeResponse, error) + NewCreateASNRangeParams(endasn int64, startasn int64, zoneid string) *CreateASNRangeParams + DeleteASNRange(p *DeleteASNRangeParams) (*DeleteASNRangeResponse, error) + NewDeleteASNRangeParams(id string) *DeleteASNRangeParams + ListASNRanges(p *ListASNRangesParams) (*ListASNRangesResponse, error) + NewListASNRangesParams() *ListASNRangesParams +} + +type CreateASNRangeParams struct { + p map[string]interface{} +} + +func (p *CreateASNRangeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["endasn"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("endasn", vv) + } + if v, found := p.p["startasn"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("startasn", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *CreateASNRangeParams) SetEndasn(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["endasn"] = v +} + +func (p *CreateASNRangeParams) ResetEndasn() { + if p.p != nil && p.p["endasn"] != nil { + delete(p.p, "endasn") + } +} + +func (p *CreateASNRangeParams) GetEndasn() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["endasn"].(int64) + return value, ok +} + +func (p *CreateASNRangeParams) SetStartasn(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startasn"] = v +} + +func (p *CreateASNRangeParams) ResetStartasn() { + if p.p != nil && p.p["startasn"] != nil { + delete(p.p, "startasn") + } +} + +func (p *CreateASNRangeParams) GetStartasn() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startasn"].(int64) + return value, ok +} + +func (p *CreateASNRangeParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *CreateASNRangeParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *CreateASNRangeParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new CreateASNRangeParams instance, +// as then you are sure you have configured all required params +func (s *ASNumberRangeService) NewCreateASNRangeParams(endasn int64, startasn int64, zoneid string) *CreateASNRangeParams { + p := &CreateASNRangeParams{} + p.p = make(map[string]interface{}) + p.p["endasn"] = endasn + p.p["startasn"] = startasn + p.p["zoneid"] = zoneid + return p +} + +// Creates a range of Autonomous Systems for BGP Dynamic Routing +func (s *ASNumberRangeService) CreateASNRange(p *CreateASNRangeParams) (*CreateASNRangeResponse, error) { + resp, err := s.cs.newRequest("createASNRange", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateASNRangeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type CreateASNRangeResponse struct { + Created string `json:"created"` + Endasn int64 `json:"endasn"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Startasn int64 `json:"startasn"` + Zoneid string `json:"zoneid"` +} + +type DeleteASNRangeParams struct { + p map[string]interface{} +} + +func (p *DeleteASNRangeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteASNRangeParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteASNRangeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteASNRangeParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteASNRangeParams instance, +// as then you are sure you have configured all required params +func (s *ASNumberRangeService) NewDeleteASNRangeParams(id string) *DeleteASNRangeParams { + p := &DeleteASNRangeParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// deletes a range of Autonomous Systems for BGP Dynamic Routing +func (s *ASNumberRangeService) DeleteASNRange(p *DeleteASNRangeParams) (*DeleteASNRangeResponse, error) { + resp, err := s.cs.newRequest("deleteASNRange", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteASNRangeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type DeleteASNRangeResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DeleteASNRangeResponse) 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 DeleteASNRangeResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ListASNRangesParams struct { + p map[string]interface{} +} + +func (p *ListASNRangesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListASNRangesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListASNRangesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListASNRangesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListASNRangesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListASNRangesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListASNRangesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListASNRangesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListASNRangesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListASNRangesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListASNRangesParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListASNRangesParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListASNRangesParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListASNRangesParams instance, +// as then you are sure you have configured all required params +func (s *ASNumberRangeService) NewListASNRangesParams() *ListASNRangesParams { + p := &ListASNRangesParams{} + p.p = make(map[string]interface{}) + return p +} + +// List Autonomous Systems Number Ranges +func (s *ASNumberRangeService) ListASNRanges(p *ListASNRangesParams) (*ListASNRangesResponse, error) { + resp, err := s.cs.newRequest("listASNRanges", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListASNRangesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListASNRangesResponse struct { + Count int `json:"count"` + ASNRanges []*ASNRange `json:"asnrange"` +} + +type ASNRange struct { + Created string `json:"created"` + Endasn int64 `json:"endasn"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Startasn int64 `json:"startasn"` + Zoneid string `json:"zoneid"` +} diff --git a/cloudstack/ASNumberRangeService_mock.go b/cloudstack/ASNumberRangeService_mock.go new file mode 100644 index 00000000..a8569d45 --- /dev/null +++ b/cloudstack/ASNumberRangeService_mock.go @@ -0,0 +1,146 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/ASNumberRangeService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ASNumberRangeService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ASNumberRangeService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockASNumberRangeServiceIface is a mock of ASNumberRangeServiceIface interface. +type MockASNumberRangeServiceIface struct { + ctrl *gomock.Controller + recorder *MockASNumberRangeServiceIfaceMockRecorder + isgomock struct{} +} + +// MockASNumberRangeServiceIfaceMockRecorder is the mock recorder for MockASNumberRangeServiceIface. +type MockASNumberRangeServiceIfaceMockRecorder struct { + mock *MockASNumberRangeServiceIface +} + +// NewMockASNumberRangeServiceIface creates a new mock instance. +func NewMockASNumberRangeServiceIface(ctrl *gomock.Controller) *MockASNumberRangeServiceIface { + mock := &MockASNumberRangeServiceIface{ctrl: ctrl} + mock.recorder = &MockASNumberRangeServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockASNumberRangeServiceIface) EXPECT() *MockASNumberRangeServiceIfaceMockRecorder { + return m.recorder +} + +// CreateASNRange mocks base method. +func (m *MockASNumberRangeServiceIface) CreateASNRange(p *CreateASNRangeParams) (*CreateASNRangeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateASNRange", p) + ret0, _ := ret[0].(*CreateASNRangeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateASNRange indicates an expected call of CreateASNRange. +func (mr *MockASNumberRangeServiceIfaceMockRecorder) CreateASNRange(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateASNRange", reflect.TypeOf((*MockASNumberRangeServiceIface)(nil).CreateASNRange), p) +} + +// DeleteASNRange mocks base method. +func (m *MockASNumberRangeServiceIface) DeleteASNRange(p *DeleteASNRangeParams) (*DeleteASNRangeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteASNRange", p) + ret0, _ := ret[0].(*DeleteASNRangeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteASNRange indicates an expected call of DeleteASNRange. +func (mr *MockASNumberRangeServiceIfaceMockRecorder) DeleteASNRange(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteASNRange", reflect.TypeOf((*MockASNumberRangeServiceIface)(nil).DeleteASNRange), p) +} + +// ListASNRanges mocks base method. +func (m *MockASNumberRangeServiceIface) ListASNRanges(p *ListASNRangesParams) (*ListASNRangesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListASNRanges", p) + ret0, _ := ret[0].(*ListASNRangesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListASNRanges indicates an expected call of ListASNRanges. +func (mr *MockASNumberRangeServiceIfaceMockRecorder) ListASNRanges(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListASNRanges", reflect.TypeOf((*MockASNumberRangeServiceIface)(nil).ListASNRanges), p) +} + +// NewCreateASNRangeParams mocks base method. +func (m *MockASNumberRangeServiceIface) NewCreateASNRangeParams(endasn, startasn int64, zoneid string) *CreateASNRangeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateASNRangeParams", endasn, startasn, zoneid) + ret0, _ := ret[0].(*CreateASNRangeParams) + return ret0 +} + +// NewCreateASNRangeParams indicates an expected call of NewCreateASNRangeParams. +func (mr *MockASNumberRangeServiceIfaceMockRecorder) NewCreateASNRangeParams(endasn, startasn, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateASNRangeParams", reflect.TypeOf((*MockASNumberRangeServiceIface)(nil).NewCreateASNRangeParams), endasn, startasn, zoneid) +} + +// NewDeleteASNRangeParams mocks base method. +func (m *MockASNumberRangeServiceIface) NewDeleteASNRangeParams(id string) *DeleteASNRangeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteASNRangeParams", id) + ret0, _ := ret[0].(*DeleteASNRangeParams) + return ret0 +} + +// NewDeleteASNRangeParams indicates an expected call of NewDeleteASNRangeParams. +func (mr *MockASNumberRangeServiceIfaceMockRecorder) NewDeleteASNRangeParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteASNRangeParams", reflect.TypeOf((*MockASNumberRangeServiceIface)(nil).NewDeleteASNRangeParams), id) +} + +// NewListASNRangesParams mocks base method. +func (m *MockASNumberRangeServiceIface) NewListASNRangesParams() *ListASNRangesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListASNRangesParams") + ret0, _ := ret[0].(*ListASNRangesParams) + return ret0 +} + +// NewListASNRangesParams indicates an expected call of NewListASNRangesParams. +func (mr *MockASNumberRangeServiceIfaceMockRecorder) NewListASNRangesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListASNRangesParams", reflect.TypeOf((*MockASNumberRangeServiceIface)(nil).NewListASNRangesParams)) +} diff --git a/cloudstack/ASNumberService.go b/cloudstack/ASNumberService.go new file mode 100644 index 00000000..7c590488 --- /dev/null +++ b/cloudstack/ASNumberService.go @@ -0,0 +1,483 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" + "strconv" +) + +type ASNumberServiceIface interface { + ListASNumbers(p *ListASNumbersParams) (*ListASNumbersResponse, error) + NewListASNumbersParams() *ListASNumbersParams + ReleaseASNumber(p *ReleaseASNumberParams) (*ReleaseASNumberResponse, error) + NewReleaseASNumberParams(asnumber int64, zoneid string) *ReleaseASNumberParams +} + +type ListASNumbersParams struct { + p map[string]interface{} +} + +func (p *ListASNumbersParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["asnrangeid"]; found { + u.Set("asnrangeid", v.(string)) + } + if v, found := p.p["asnumber"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("asnumber", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["isallocated"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isallocated", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["vpcid"]; found { + u.Set("vpcid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListASNumbersParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListASNumbersParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListASNumbersParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListASNumbersParams) SetAsnrangeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asnrangeid"] = v +} + +func (p *ListASNumbersParams) ResetAsnrangeid() { + if p.p != nil && p.p["asnrangeid"] != nil { + delete(p.p, "asnrangeid") + } +} + +func (p *ListASNumbersParams) GetAsnrangeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asnrangeid"].(string) + return value, ok +} + +func (p *ListASNumbersParams) SetAsnumber(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asnumber"] = v +} + +func (p *ListASNumbersParams) ResetAsnumber() { + if p.p != nil && p.p["asnumber"] != nil { + delete(p.p, "asnumber") + } +} + +func (p *ListASNumbersParams) GetAsnumber() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asnumber"].(int) + return value, ok +} + +func (p *ListASNumbersParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListASNumbersParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListASNumbersParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListASNumbersParams) SetIsallocated(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isallocated"] = v +} + +func (p *ListASNumbersParams) ResetIsallocated() { + if p.p != nil && p.p["isallocated"] != nil { + delete(p.p, "isallocated") + } +} + +func (p *ListASNumbersParams) GetIsallocated() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isallocated"].(bool) + return value, ok +} + +func (p *ListASNumbersParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListASNumbersParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListASNumbersParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListASNumbersParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *ListASNumbersParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *ListASNumbersParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *ListASNumbersParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListASNumbersParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListASNumbersParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListASNumbersParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListASNumbersParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListASNumbersParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListASNumbersParams) SetVpcid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vpcid"] = v +} + +func (p *ListASNumbersParams) ResetVpcid() { + if p.p != nil && p.p["vpcid"] != nil { + delete(p.p, "vpcid") + } +} + +func (p *ListASNumbersParams) GetVpcid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vpcid"].(string) + return value, ok +} + +func (p *ListASNumbersParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListASNumbersParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListASNumbersParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListASNumbersParams instance, +// as then you are sure you have configured all required params +func (s *ASNumberService) NewListASNumbersParams() *ListASNumbersParams { + p := &ListASNumbersParams{} + p.p = make(map[string]interface{}) + return p +} + +// List Autonomous Systems Numbers +func (s *ASNumberService) ListASNumbers(p *ListASNumbersParams) (*ListASNumbersResponse, error) { + resp, err := s.cs.newRequest("listASNumbers", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListASNumbersResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListASNumbersResponse struct { + Count int `json:"count"` + ASNumbers []*ASNumber `json:"asnumber"` +} + +type ASNumber struct { + Account string `json:"account"` + Accountid string `json:"accountid"` + Allocated string `json:"allocated"` + Allocationstate string `json:"allocationstate"` + Asnrange string `json:"asnrange"` + Asnrangeid string `json:"asnrangeid"` + Asnumber int64 `json:"asnumber"` + Associatednetworkid string `json:"associatednetworkid"` + Associatednetworkname string `json:"associatednetworkname"` + Created string `json:"created"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Vpcid string `json:"vpcid"` + Vpcname string `json:"vpcname"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ReleaseASNumberParams struct { + p map[string]interface{} +} + +func (p *ReleaseASNumberParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["asnumber"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("asnumber", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ReleaseASNumberParams) SetAsnumber(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asnumber"] = v +} + +func (p *ReleaseASNumberParams) ResetAsnumber() { + if p.p != nil && p.p["asnumber"] != nil { + delete(p.p, "asnumber") + } +} + +func (p *ReleaseASNumberParams) GetAsnumber() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asnumber"].(int64) + return value, ok +} + +func (p *ReleaseASNumberParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ReleaseASNumberParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ReleaseASNumberParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ReleaseASNumberParams instance, +// as then you are sure you have configured all required params +func (s *ASNumberService) NewReleaseASNumberParams(asnumber int64, zoneid string) *ReleaseASNumberParams { + p := &ReleaseASNumberParams{} + p.p = make(map[string]interface{}) + p.p["asnumber"] = asnumber + p.p["zoneid"] = zoneid + return p +} + +// Releases an AS Number back to the pool +func (s *ASNumberService) ReleaseASNumber(p *ReleaseASNumberParams) (*ReleaseASNumberResponse, error) { + resp, err := s.cs.newRequest("releaseASNumber", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ReleaseASNumberResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ReleaseASNumberResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *ReleaseASNumberResponse) 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 ReleaseASNumberResponse + return json.Unmarshal(b, (*alias)(r)) +} diff --git a/cloudstack/ASNumberService_mock.go b/cloudstack/ASNumberService_mock.go new file mode 100644 index 00000000..98d3a7ec --- /dev/null +++ b/cloudstack/ASNumberService_mock.go @@ -0,0 +1,117 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/ASNumberService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ASNumberService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ASNumberService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockASNumberServiceIface is a mock of ASNumberServiceIface interface. +type MockASNumberServiceIface struct { + ctrl *gomock.Controller + recorder *MockASNumberServiceIfaceMockRecorder + isgomock struct{} +} + +// MockASNumberServiceIfaceMockRecorder is the mock recorder for MockASNumberServiceIface. +type MockASNumberServiceIfaceMockRecorder struct { + mock *MockASNumberServiceIface +} + +// NewMockASNumberServiceIface creates a new mock instance. +func NewMockASNumberServiceIface(ctrl *gomock.Controller) *MockASNumberServiceIface { + mock := &MockASNumberServiceIface{ctrl: ctrl} + mock.recorder = &MockASNumberServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockASNumberServiceIface) EXPECT() *MockASNumberServiceIfaceMockRecorder { + return m.recorder +} + +// ListASNumbers mocks base method. +func (m *MockASNumberServiceIface) ListASNumbers(p *ListASNumbersParams) (*ListASNumbersResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListASNumbers", p) + ret0, _ := ret[0].(*ListASNumbersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListASNumbers indicates an expected call of ListASNumbers. +func (mr *MockASNumberServiceIfaceMockRecorder) ListASNumbers(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListASNumbers", reflect.TypeOf((*MockASNumberServiceIface)(nil).ListASNumbers), p) +} + +// NewListASNumbersParams mocks base method. +func (m *MockASNumberServiceIface) NewListASNumbersParams() *ListASNumbersParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListASNumbersParams") + ret0, _ := ret[0].(*ListASNumbersParams) + return ret0 +} + +// NewListASNumbersParams indicates an expected call of NewListASNumbersParams. +func (mr *MockASNumberServiceIfaceMockRecorder) NewListASNumbersParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListASNumbersParams", reflect.TypeOf((*MockASNumberServiceIface)(nil).NewListASNumbersParams)) +} + +// NewReleaseASNumberParams mocks base method. +func (m *MockASNumberServiceIface) NewReleaseASNumberParams(asnumber int64, zoneid string) *ReleaseASNumberParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewReleaseASNumberParams", asnumber, zoneid) + ret0, _ := ret[0].(*ReleaseASNumberParams) + return ret0 +} + +// NewReleaseASNumberParams indicates an expected call of NewReleaseASNumberParams. +func (mr *MockASNumberServiceIfaceMockRecorder) NewReleaseASNumberParams(asnumber, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseASNumberParams", reflect.TypeOf((*MockASNumberServiceIface)(nil).NewReleaseASNumberParams), asnumber, zoneid) +} + +// ReleaseASNumber mocks base method. +func (m *MockASNumberServiceIface) ReleaseASNumber(p *ReleaseASNumberParams) (*ReleaseASNumberResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReleaseASNumber", p) + ret0, _ := ret[0].(*ReleaseASNumberResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReleaseASNumber indicates an expected call of ReleaseASNumber. +func (mr *MockASNumberServiceIfaceMockRecorder) ReleaseASNumber(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseASNumber", reflect.TypeOf((*MockASNumberServiceIface)(nil).ReleaseASNumber), p) +} diff --git a/cloudstack/AccountService.go b/cloudstack/AccountService.go index 0a71a4e6..eb747b57 100644 --- a/cloudstack/AccountService.go +++ b/cloudstack/AccountService.go @@ -36,8 +36,10 @@ type AccountServiceIface interface { NewDisableAccountParams(lock bool) *DisableAccountParams EnableAccount(p *EnableAccountParams) (*EnableAccountResponse, error) NewEnableAccountParams() *EnableAccountParams - GetSolidFireAccountId(p *GetSolidFireAccountIdParams) (*GetSolidFireAccountIdResponse, error) - NewGetSolidFireAccountIdParams(accountid string, storageid string) *GetSolidFireAccountIdParams + IsAccountAllowedToCreateOfferingsWithTags(p *IsAccountAllowedToCreateOfferingsWithTagsParams) (*IsAccountAllowedToCreateOfferingsWithTagsResponse, error) + NewIsAccountAllowedToCreateOfferingsWithTagsParams() *IsAccountAllowedToCreateOfferingsWithTagsParams + LinkAccountToLdap(p *LinkAccountToLdapParams) (*LinkAccountToLdapResponse, error) + NewLinkAccountToLdapParams(account string, domainid string, ldapdomain string) *LinkAccountToLdapParams ListAccounts(p *ListAccountsParams) (*ListAccountsResponse, error) NewListAccountsParams() *ListAccountsParams GetAccountID(name string, opts ...OptionFunc) (string, int, error) @@ -1056,84 +1058,271 @@ type EnableAccountResponseUser struct { Usersource string `json:"usersource"` } -type GetSolidFireAccountIdParams struct { +type IsAccountAllowedToCreateOfferingsWithTagsParams struct { p map[string]interface{} } -func (p *GetSolidFireAccountIdParams) toURLValues() url.Values { +func (p *IsAccountAllowedToCreateOfferingsWithTagsParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["accountid"]; found { - u.Set("accountid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *IsAccountAllowedToCreateOfferingsWithTagsParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *IsAccountAllowedToCreateOfferingsWithTagsParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *IsAccountAllowedToCreateOfferingsWithTagsParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new IsAccountAllowedToCreateOfferingsWithTagsParams instance, +// as then you are sure you have configured all required params +func (s *AccountService) NewIsAccountAllowedToCreateOfferingsWithTagsParams() *IsAccountAllowedToCreateOfferingsWithTagsParams { + p := &IsAccountAllowedToCreateOfferingsWithTagsParams{} + p.p = make(map[string]interface{}) + return p +} + +// Return true if the specified account is allowed to create offerings with tags. +func (s *AccountService) IsAccountAllowedToCreateOfferingsWithTags(p *IsAccountAllowedToCreateOfferingsWithTagsParams) (*IsAccountAllowedToCreateOfferingsWithTagsResponse, error) { + resp, err := s.cs.newRequest("isAccountAllowedToCreateOfferingsWithTags", p.toURLValues()) + if err != nil { + return nil, err + } + + var r IsAccountAllowedToCreateOfferingsWithTagsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type IsAccountAllowedToCreateOfferingsWithTagsResponse struct { + Isallowed bool `json:"isallowed"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` +} + +type LinkAccountToLdapParams struct { + p map[string]interface{} +} + +func (p *LinkAccountToLdapParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["accounttype"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("accounttype", vv) + } + if v, found := p.p["admin"]; found { + u.Set("admin", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["ldapdomain"]; found { + u.Set("ldapdomain", v.(string)) + } + if v, found := p.p["roleid"]; found { + u.Set("roleid", v.(string)) } - if v, found := p.p["storageid"]; found { - u.Set("storageid", v.(string)) + if v, found := p.p["type"]; found { + u.Set("type", v.(string)) } return u } -func (p *GetSolidFireAccountIdParams) SetAccountid(v string) { +func (p *LinkAccountToLdapParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["accountid"] = v + p.p["account"] = v } -func (p *GetSolidFireAccountIdParams) ResetAccountid() { - if p.p != nil && p.p["accountid"] != nil { - delete(p.p, "accountid") +func (p *LinkAccountToLdapParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *GetSolidFireAccountIdParams) GetAccountid() (string, bool) { +func (p *LinkAccountToLdapParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["accountid"].(string) + value, ok := p.p["account"].(string) return value, ok } -func (p *GetSolidFireAccountIdParams) SetStorageid(v string) { +func (p *LinkAccountToLdapParams) SetAccounttype(v int) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["storageid"] = v + p.p["accounttype"] = v } -func (p *GetSolidFireAccountIdParams) ResetStorageid() { - if p.p != nil && p.p["storageid"] != nil { - delete(p.p, "storageid") +func (p *LinkAccountToLdapParams) ResetAccounttype() { + if p.p != nil && p.p["accounttype"] != nil { + delete(p.p, "accounttype") } } -func (p *GetSolidFireAccountIdParams) GetStorageid() (string, bool) { +func (p *LinkAccountToLdapParams) GetAccounttype() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["storageid"].(string) + value, ok := p.p["accounttype"].(int) return value, ok } -// You should always use this function to get a new GetSolidFireAccountIdParams instance, +func (p *LinkAccountToLdapParams) SetAdmin(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["admin"] = v +} + +func (p *LinkAccountToLdapParams) ResetAdmin() { + if p.p != nil && p.p["admin"] != nil { + delete(p.p, "admin") + } +} + +func (p *LinkAccountToLdapParams) GetAdmin() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["admin"].(string) + return value, ok +} + +func (p *LinkAccountToLdapParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *LinkAccountToLdapParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *LinkAccountToLdapParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *LinkAccountToLdapParams) SetLdapdomain(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ldapdomain"] = v +} + +func (p *LinkAccountToLdapParams) ResetLdapdomain() { + if p.p != nil && p.p["ldapdomain"] != nil { + delete(p.p, "ldapdomain") + } +} + +func (p *LinkAccountToLdapParams) GetLdapdomain() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ldapdomain"].(string) + return value, ok +} + +func (p *LinkAccountToLdapParams) SetRoleid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["roleid"] = v +} + +func (p *LinkAccountToLdapParams) ResetRoleid() { + if p.p != nil && p.p["roleid"] != nil { + delete(p.p, "roleid") + } +} + +func (p *LinkAccountToLdapParams) GetRoleid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["roleid"].(string) + return value, ok +} + +func (p *LinkAccountToLdapParams) SetType(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["type"] = v +} + +func (p *LinkAccountToLdapParams) ResetType() { + if p.p != nil && p.p["type"] != nil { + delete(p.p, "type") + } +} + +func (p *LinkAccountToLdapParams) GetType() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["type"].(string) + return value, ok +} + +// You should always use this function to get a new LinkAccountToLdapParams instance, // as then you are sure you have configured all required params -func (s *AccountService) NewGetSolidFireAccountIdParams(accountid string, storageid string) *GetSolidFireAccountIdParams { - p := &GetSolidFireAccountIdParams{} +func (s *AccountService) NewLinkAccountToLdapParams(account string, domainid string, ldapdomain string) *LinkAccountToLdapParams { + p := &LinkAccountToLdapParams{} p.p = make(map[string]interface{}) - p.p["accountid"] = accountid - p.p["storageid"] = storageid + p.p["account"] = account + p.p["domainid"] = domainid + p.p["ldapdomain"] = ldapdomain return p } -// Get SolidFire Account ID -func (s *AccountService) GetSolidFireAccountId(p *GetSolidFireAccountIdParams) (*GetSolidFireAccountIdResponse, error) { - resp, err := s.cs.newRequest("getSolidFireAccountId", p.toURLValues()) +// link a cloudstack account to a group or OU in ldap +func (s *AccountService) LinkAccountToLdap(p *LinkAccountToLdapParams) (*LinkAccountToLdapResponse, error) { + resp, err := s.cs.newRequest("linkAccountToLdap", p.toURLValues()) if err != nil { return nil, err } - var r GetSolidFireAccountIdResponse + var r LinkAccountToLdapResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -1141,10 +1330,15 @@ func (s *AccountService) GetSolidFireAccountId(p *GetSolidFireAccountIdParams) ( return &r, nil } -type GetSolidFireAccountIdResponse struct { - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - SolidFireAccountId int64 `json:"solidFireAccountId"` +type LinkAccountToLdapResponse struct { + Accountid string `json:"accountid"` + Accounttype int `json:"accounttype"` + Domainid string `json:"domainid"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Ldapdomain string `json:"ldapdomain"` + Name string `json:"name"` + Type string `json:"type"` } type ListAccountsParams struct { diff --git a/cloudstack/AccountService_mock.go b/cloudstack/AccountService_mock.go index 605bb3a6..52ae1565 100644 --- a/cloudstack/AccountService_mock.go +++ b/cloudstack/AccountService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AccountService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AccountService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AccountService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAccountServiceIface is a mock of AccountServiceIface interface. type MockAccountServiceIface struct { ctrl *gomock.Controller recorder *MockAccountServiceIfaceMockRecorder + isgomock struct{} } // MockAccountServiceIfaceMockRecorder is the mock recorder for MockAccountServiceIface. @@ -62,7 +68,7 @@ func (m *MockAccountServiceIface) CreateAccount(p *CreateAccountParams) (*Create } // CreateAccount indicates an expected call of CreateAccount. -func (mr *MockAccountServiceIfaceMockRecorder) CreateAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) CreateAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).CreateAccount), p) } @@ -77,7 +83,7 @@ func (m *MockAccountServiceIface) DeleteAccount(p *DeleteAccountParams) (*Delete } // DeleteAccount indicates an expected call of DeleteAccount. -func (mr *MockAccountServiceIfaceMockRecorder) DeleteAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) DeleteAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).DeleteAccount), p) } @@ -92,7 +98,7 @@ func (m *MockAccountServiceIface) DisableAccount(p *DisableAccountParams) (*Disa } // DisableAccount indicates an expected call of DisableAccount. -func (mr *MockAccountServiceIfaceMockRecorder) DisableAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) DisableAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).DisableAccount), p) } @@ -107,7 +113,7 @@ func (m *MockAccountServiceIface) EnableAccount(p *EnableAccountParams) (*Enable } // EnableAccount indicates an expected call of EnableAccount. -func (mr *MockAccountServiceIfaceMockRecorder) EnableAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) EnableAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).EnableAccount), p) } @@ -115,7 +121,7 @@ func (mr *MockAccountServiceIfaceMockRecorder) EnableAccount(p interface{}) *gom // GetAccountByID mocks base method. func (m *MockAccountServiceIface) GetAccountByID(id string, opts ...OptionFunc) (*Account, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +133,16 @@ func (m *MockAccountServiceIface) GetAccountByID(id string, opts ...OptionFunc) } // GetAccountByID indicates an expected call of GetAccountByID. -func (mr *MockAccountServiceIfaceMockRecorder) GetAccountByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) GetAccountByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountByID", reflect.TypeOf((*MockAccountServiceIface)(nil).GetAccountByID), varargs...) } // GetAccountByName mocks base method. func (m *MockAccountServiceIface) GetAccountByName(name string, opts ...OptionFunc) (*Account, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -148,16 +154,16 @@ func (m *MockAccountServiceIface) GetAccountByName(name string, opts ...OptionFu } // GetAccountByName indicates an expected call of GetAccountByName. -func (mr *MockAccountServiceIfaceMockRecorder) GetAccountByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) GetAccountByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountByName", reflect.TypeOf((*MockAccountServiceIface)(nil).GetAccountByName), varargs...) } // GetAccountID mocks base method. func (m *MockAccountServiceIface) GetAccountID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -169,16 +175,16 @@ func (m *MockAccountServiceIface) GetAccountID(name string, opts ...OptionFunc) } // GetAccountID indicates an expected call of GetAccountID. -func (mr *MockAccountServiceIfaceMockRecorder) GetAccountID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) GetAccountID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountID", reflect.TypeOf((*MockAccountServiceIface)(nil).GetAccountID), varargs...) } // GetProjectAccountID mocks base method. func (m *MockAccountServiceIface) GetProjectAccountID(keyword, projectid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, projectid} + varargs := []any{keyword, projectid} for _, a := range opts { varargs = append(varargs, a) } @@ -190,25 +196,40 @@ func (m *MockAccountServiceIface) GetProjectAccountID(keyword, projectid string, } // GetProjectAccountID indicates an expected call of GetProjectAccountID. -func (mr *MockAccountServiceIfaceMockRecorder) GetProjectAccountID(keyword, projectid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) GetProjectAccountID(keyword, projectid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, projectid}, opts...) + varargs := append([]any{keyword, projectid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectAccountID", reflect.TypeOf((*MockAccountServiceIface)(nil).GetProjectAccountID), varargs...) } -// GetSolidFireAccountId mocks base method. -func (m *MockAccountServiceIface) GetSolidFireAccountId(p *GetSolidFireAccountIdParams) (*GetSolidFireAccountIdResponse, error) { +// IsAccountAllowedToCreateOfferingsWithTags mocks base method. +func (m *MockAccountServiceIface) IsAccountAllowedToCreateOfferingsWithTags(p *IsAccountAllowedToCreateOfferingsWithTagsParams) (*IsAccountAllowedToCreateOfferingsWithTagsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsAccountAllowedToCreateOfferingsWithTags", p) + ret0, _ := ret[0].(*IsAccountAllowedToCreateOfferingsWithTagsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsAccountAllowedToCreateOfferingsWithTags indicates an expected call of IsAccountAllowedToCreateOfferingsWithTags. +func (mr *MockAccountServiceIfaceMockRecorder) IsAccountAllowedToCreateOfferingsWithTags(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsAccountAllowedToCreateOfferingsWithTags", reflect.TypeOf((*MockAccountServiceIface)(nil).IsAccountAllowedToCreateOfferingsWithTags), p) +} + +// LinkAccountToLdap mocks base method. +func (m *MockAccountServiceIface) LinkAccountToLdap(p *LinkAccountToLdapParams) (*LinkAccountToLdapResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSolidFireAccountId", p) - ret0, _ := ret[0].(*GetSolidFireAccountIdResponse) + ret := m.ctrl.Call(m, "LinkAccountToLdap", p) + ret0, _ := ret[0].(*LinkAccountToLdapResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetSolidFireAccountId indicates an expected call of GetSolidFireAccountId. -func (mr *MockAccountServiceIfaceMockRecorder) GetSolidFireAccountId(p interface{}) *gomock.Call { +// LinkAccountToLdap indicates an expected call of LinkAccountToLdap. +func (mr *MockAccountServiceIfaceMockRecorder) LinkAccountToLdap(p any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSolidFireAccountId", reflect.TypeOf((*MockAccountServiceIface)(nil).GetSolidFireAccountId), p) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LinkAccountToLdap", reflect.TypeOf((*MockAccountServiceIface)(nil).LinkAccountToLdap), p) } // ListAccounts mocks base method. @@ -221,7 +242,7 @@ func (m *MockAccountServiceIface) ListAccounts(p *ListAccountsParams) (*ListAcco } // ListAccounts indicates an expected call of ListAccounts. -func (mr *MockAccountServiceIfaceMockRecorder) ListAccounts(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) ListAccounts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAccounts", reflect.TypeOf((*MockAccountServiceIface)(nil).ListAccounts), p) } @@ -236,7 +257,7 @@ func (m *MockAccountServiceIface) ListProjectAccounts(p *ListProjectAccountsPara } // ListProjectAccounts indicates an expected call of ListProjectAccounts. -func (mr *MockAccountServiceIfaceMockRecorder) ListProjectAccounts(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) ListProjectAccounts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectAccounts", reflect.TypeOf((*MockAccountServiceIface)(nil).ListProjectAccounts), p) } @@ -251,7 +272,7 @@ func (m *MockAccountServiceIface) LockAccount(p *LockAccountParams) (*LockAccoun } // LockAccount indicates an expected call of LockAccount. -func (mr *MockAccountServiceIfaceMockRecorder) LockAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) LockAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LockAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).LockAccount), p) } @@ -266,7 +287,7 @@ func (m *MockAccountServiceIface) MarkDefaultZoneForAccount(p *MarkDefaultZoneFo } // MarkDefaultZoneForAccount indicates an expected call of MarkDefaultZoneForAccount. -func (mr *MockAccountServiceIfaceMockRecorder) MarkDefaultZoneForAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) MarkDefaultZoneForAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MarkDefaultZoneForAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).MarkDefaultZoneForAccount), p) } @@ -280,7 +301,7 @@ func (m *MockAccountServiceIface) NewCreateAccountParams(email, firstname, lastn } // NewCreateAccountParams indicates an expected call of NewCreateAccountParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewCreateAccountParams(email, firstname, lastname, password, username interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) NewCreateAccountParams(email, firstname, lastname, password, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateAccountParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewCreateAccountParams), email, firstname, lastname, password, username) } @@ -294,7 +315,7 @@ func (m *MockAccountServiceIface) NewDeleteAccountParams(id string) *DeleteAccou } // NewDeleteAccountParams indicates an expected call of NewDeleteAccountParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewDeleteAccountParams(id interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) NewDeleteAccountParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteAccountParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewDeleteAccountParams), id) } @@ -308,7 +329,7 @@ func (m *MockAccountServiceIface) NewDisableAccountParams(lock bool) *DisableAcc } // NewDisableAccountParams indicates an expected call of NewDisableAccountParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewDisableAccountParams(lock interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) NewDisableAccountParams(lock any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableAccountParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewDisableAccountParams), lock) } @@ -327,18 +348,32 @@ func (mr *MockAccountServiceIfaceMockRecorder) NewEnableAccountParams() *gomock. return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableAccountParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewEnableAccountParams)) } -// NewGetSolidFireAccountIdParams mocks base method. -func (m *MockAccountServiceIface) NewGetSolidFireAccountIdParams(accountid, storageid string) *GetSolidFireAccountIdParams { +// NewIsAccountAllowedToCreateOfferingsWithTagsParams mocks base method. +func (m *MockAccountServiceIface) NewIsAccountAllowedToCreateOfferingsWithTagsParams() *IsAccountAllowedToCreateOfferingsWithTagsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewIsAccountAllowedToCreateOfferingsWithTagsParams") + ret0, _ := ret[0].(*IsAccountAllowedToCreateOfferingsWithTagsParams) + return ret0 +} + +// NewIsAccountAllowedToCreateOfferingsWithTagsParams indicates an expected call of NewIsAccountAllowedToCreateOfferingsWithTagsParams. +func (mr *MockAccountServiceIfaceMockRecorder) NewIsAccountAllowedToCreateOfferingsWithTagsParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewIsAccountAllowedToCreateOfferingsWithTagsParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewIsAccountAllowedToCreateOfferingsWithTagsParams)) +} + +// NewLinkAccountToLdapParams mocks base method. +func (m *MockAccountServiceIface) NewLinkAccountToLdapParams(account, domainid, ldapdomain string) *LinkAccountToLdapParams { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewGetSolidFireAccountIdParams", accountid, storageid) - ret0, _ := ret[0].(*GetSolidFireAccountIdParams) + ret := m.ctrl.Call(m, "NewLinkAccountToLdapParams", account, domainid, ldapdomain) + ret0, _ := ret[0].(*LinkAccountToLdapParams) return ret0 } -// NewGetSolidFireAccountIdParams indicates an expected call of NewGetSolidFireAccountIdParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewGetSolidFireAccountIdParams(accountid, storageid interface{}) *gomock.Call { +// NewLinkAccountToLdapParams indicates an expected call of NewLinkAccountToLdapParams. +func (mr *MockAccountServiceIfaceMockRecorder) NewLinkAccountToLdapParams(account, domainid, ldapdomain any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetSolidFireAccountIdParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewGetSolidFireAccountIdParams), accountid, storageid) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLinkAccountToLdapParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewLinkAccountToLdapParams), account, domainid, ldapdomain) } // NewListAccountsParams mocks base method. @@ -364,7 +399,7 @@ func (m *MockAccountServiceIface) NewListProjectAccountsParams(projectid string) } // NewListProjectAccountsParams indicates an expected call of NewListProjectAccountsParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewListProjectAccountsParams(projectid interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) NewListProjectAccountsParams(projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListProjectAccountsParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewListProjectAccountsParams), projectid) } @@ -378,7 +413,7 @@ func (m *MockAccountServiceIface) NewLockAccountParams(account, domainid string) } // NewLockAccountParams indicates an expected call of NewLockAccountParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewLockAccountParams(account, domainid interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) NewLockAccountParams(account, domainid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLockAccountParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewLockAccountParams), account, domainid) } @@ -392,7 +427,7 @@ func (m *MockAccountServiceIface) NewMarkDefaultZoneForAccountParams(account, do } // NewMarkDefaultZoneForAccountParams indicates an expected call of NewMarkDefaultZoneForAccountParams. -func (mr *MockAccountServiceIfaceMockRecorder) NewMarkDefaultZoneForAccountParams(account, domainid, zoneid interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) NewMarkDefaultZoneForAccountParams(account, domainid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMarkDefaultZoneForAccountParams", reflect.TypeOf((*MockAccountServiceIface)(nil).NewMarkDefaultZoneForAccountParams), account, domainid, zoneid) } @@ -421,7 +456,7 @@ func (m *MockAccountServiceIface) UpdateAccount(p *UpdateAccountParams) (*Update } // UpdateAccount indicates an expected call of UpdateAccount. -func (mr *MockAccountServiceIfaceMockRecorder) UpdateAccount(p interface{}) *gomock.Call { +func (mr *MockAccountServiceIfaceMockRecorder) UpdateAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAccount", reflect.TypeOf((*MockAccountServiceIface)(nil).UpdateAccount), p) } diff --git a/cloudstack/AddressService.go b/cloudstack/AddressService.go index 10e1f0cd..5f6d87a0 100644 --- a/cloudstack/AddressService.go +++ b/cloudstack/AddressService.go @@ -28,6 +28,8 @@ import ( ) type AddressServiceIface interface { + AcquirePodIpAddress(p *AcquirePodIpAddressParams) (*AcquirePodIpAddressResponse, error) + NewAcquirePodIpAddressParams(zoneid string) *AcquirePodIpAddressParams AssociateIpAddress(p *AssociateIpAddressParams) (*AssociateIpAddressResponse, error) NewAssociateIpAddressParams() *AssociateIpAddressParams DisassociateIpAddress(p *DisassociateIpAddressParams) (*DisassociateIpAddressResponse, error) @@ -39,6 +41,106 @@ type AddressServiceIface interface { NewUpdateIpAddressParams(id string) *UpdateIpAddressParams ReleaseIpAddress(p *ReleaseIpAddressParams) (*ReleaseIpAddressResponse, error) NewReleaseIpAddressParams(id string) *ReleaseIpAddressParams + ReleasePodIpAddress(p *ReleasePodIpAddressParams) (*ReleasePodIpAddressResponse, error) + NewReleasePodIpAddressParams(id int64) *ReleasePodIpAddressParams + ReserveIpAddress(p *ReserveIpAddressParams) (*ReserveIpAddressResponse, error) + NewReserveIpAddressParams(id string) *ReserveIpAddressParams +} + +type AcquirePodIpAddressParams struct { + p map[string]interface{} +} + +func (p *AcquirePodIpAddressParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["podid"]; found { + u.Set("podid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *AcquirePodIpAddressParams) SetPodid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["podid"] = v +} + +func (p *AcquirePodIpAddressParams) ResetPodid() { + if p.p != nil && p.p["podid"] != nil { + delete(p.p, "podid") + } +} + +func (p *AcquirePodIpAddressParams) GetPodid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["podid"].(string) + return value, ok +} + +func (p *AcquirePodIpAddressParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *AcquirePodIpAddressParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *AcquirePodIpAddressParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new AcquirePodIpAddressParams instance, +// as then you are sure you have configured all required params +func (s *AddressService) NewAcquirePodIpAddressParams(zoneid string) *AcquirePodIpAddressParams { + p := &AcquirePodIpAddressParams{} + p.p = make(map[string]interface{}) + p.p["zoneid"] = zoneid + return p +} + +// Allocates IP addresses in respective Pod of a Zone +func (s *AddressService) AcquirePodIpAddress(p *AcquirePodIpAddressParams) (*AcquirePodIpAddressResponse, error) { + resp, err := s.cs.newRequest("acquirePodIpAddress", p.toURLValues()) + if err != nil { + return nil, err + } + + var r AcquirePodIpAddressResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type AcquirePodIpAddressResponse struct { + Cidr string `json:"cidr"` + Gateway string `json:"gateway"` + Hostmac int64 `json:"hostmac"` + Id int64 `json:"id"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Nicid int64 `json:"nicid"` + Podid int64 `json:"podid"` } type AssociateIpAddressParams struct { @@ -1506,3 +1608,297 @@ func (r *ReleaseIpAddressResponse) UnmarshalJSON(b []byte) error { type alias ReleaseIpAddressResponse return json.Unmarshal(b, (*alias)(r)) } + +type ReleasePodIpAddressParams struct { + p map[string]interface{} +} + +func (p *ReleasePodIpAddressParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("id", vv) + } + return u +} + +func (p *ReleasePodIpAddressParams) SetId(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ReleasePodIpAddressParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ReleasePodIpAddressParams) GetId() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(int64) + return value, ok +} + +// You should always use this function to get a new ReleasePodIpAddressParams instance, +// as then you are sure you have configured all required params +func (s *AddressService) NewReleasePodIpAddressParams(id int64) *ReleasePodIpAddressParams { + p := &ReleasePodIpAddressParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Releases a Pod IP back to the Pod +func (s *AddressService) ReleasePodIpAddress(p *ReleasePodIpAddressParams) (*ReleasePodIpAddressResponse, error) { + resp, err := s.cs.newRequest("releasePodIpAddress", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ReleasePodIpAddressResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ReleasePodIpAddressResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *ReleasePodIpAddressResponse) 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 ReleasePodIpAddressResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ReserveIpAddressParams struct { + p map[string]interface{} +} + +func (p *ReserveIpAddressParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["fordisplay"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("fordisplay", vv) + } + 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 *ReserveIpAddressParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ReserveIpAddressParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ReserveIpAddressParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ReserveIpAddressParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ReserveIpAddressParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ReserveIpAddressParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ReserveIpAddressParams) SetFordisplay(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["fordisplay"] = v +} + +func (p *ReserveIpAddressParams) ResetFordisplay() { + if p.p != nil && p.p["fordisplay"] != nil { + delete(p.p, "fordisplay") + } +} + +func (p *ReserveIpAddressParams) GetFordisplay() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["fordisplay"].(bool) + return value, ok +} + +func (p *ReserveIpAddressParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ReserveIpAddressParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ReserveIpAddressParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ReserveIpAddressParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *ReserveIpAddressParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *ReserveIpAddressParams) 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 ReserveIpAddressParams instance, +// as then you are sure you have configured all required params +func (s *AddressService) NewReserveIpAddressParams(id string) *ReserveIpAddressParams { + p := &ReserveIpAddressParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Reserve a public IP to an account. +func (s *AddressService) ReserveIpAddress(p *ReserveIpAddressParams) (*ReserveIpAddressResponse, error) { + resp, err := s.cs.newRequest("reserveIpAddress", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ReserveIpAddressResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ReserveIpAddressResponse 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"` + Domainpath string `json:"domainpath"` + Fordisplay bool `json:"fordisplay"` + Forsystemvms bool `json:"forsystemvms"` + Forvirtualnetwork bool `json:"forvirtualnetwork"` + Hasannotations bool `json:"hasannotations"` + Hasrules bool `json:"hasrules"` + 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"` + Virtualmachinetype string `json:"virtualmachinetype"` + 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"` +} diff --git a/cloudstack/AddressService_mock.go b/cloudstack/AddressService_mock.go index fb587a8e..ab95ce73 100644 --- a/cloudstack/AddressService_mock.go +++ b/cloudstack/AddressService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AddressService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AddressService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AddressService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAddressServiceIface is a mock of AddressServiceIface interface. type MockAddressServiceIface struct { ctrl *gomock.Controller recorder *MockAddressServiceIfaceMockRecorder + isgomock struct{} } // MockAddressServiceIfaceMockRecorder is the mock recorder for MockAddressServiceIface. @@ -52,6 +58,21 @@ func (m *MockAddressServiceIface) EXPECT() *MockAddressServiceIfaceMockRecorder return m.recorder } +// AcquirePodIpAddress mocks base method. +func (m *MockAddressServiceIface) AcquirePodIpAddress(p *AcquirePodIpAddressParams) (*AcquirePodIpAddressResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AcquirePodIpAddress", p) + ret0, _ := ret[0].(*AcquirePodIpAddressResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AcquirePodIpAddress indicates an expected call of AcquirePodIpAddress. +func (mr *MockAddressServiceIfaceMockRecorder) AcquirePodIpAddress(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquirePodIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).AcquirePodIpAddress), p) +} + // AssociateIpAddress mocks base method. func (m *MockAddressServiceIface) AssociateIpAddress(p *AssociateIpAddressParams) (*AssociateIpAddressResponse, error) { m.ctrl.T.Helper() @@ -62,7 +83,7 @@ func (m *MockAddressServiceIface) AssociateIpAddress(p *AssociateIpAddressParams } // AssociateIpAddress indicates an expected call of AssociateIpAddress. -func (mr *MockAddressServiceIfaceMockRecorder) AssociateIpAddress(p interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) AssociateIpAddress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssociateIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).AssociateIpAddress), p) } @@ -77,7 +98,7 @@ func (m *MockAddressServiceIface) DisassociateIpAddress(p *DisassociateIpAddress } // DisassociateIpAddress indicates an expected call of DisassociateIpAddress. -func (mr *MockAddressServiceIfaceMockRecorder) DisassociateIpAddress(p interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) DisassociateIpAddress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisassociateIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).DisassociateIpAddress), p) } @@ -85,7 +106,7 @@ func (mr *MockAddressServiceIfaceMockRecorder) DisassociateIpAddress(p interface // GetPublicIpAddressByID mocks base method. func (m *MockAddressServiceIface) GetPublicIpAddressByID(id string, opts ...OptionFunc) (*PublicIpAddress, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,9 +118,9 @@ func (m *MockAddressServiceIface) GetPublicIpAddressByID(id string, opts ...Opti } // GetPublicIpAddressByID indicates an expected call of GetPublicIpAddressByID. -func (mr *MockAddressServiceIfaceMockRecorder) GetPublicIpAddressByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) GetPublicIpAddressByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicIpAddressByID", reflect.TypeOf((*MockAddressServiceIface)(nil).GetPublicIpAddressByID), varargs...) } @@ -113,11 +134,25 @@ func (m *MockAddressServiceIface) ListPublicIpAddresses(p *ListPublicIpAddresses } // ListPublicIpAddresses indicates an expected call of ListPublicIpAddresses. -func (mr *MockAddressServiceIfaceMockRecorder) ListPublicIpAddresses(p interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) ListPublicIpAddresses(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIpAddresses", reflect.TypeOf((*MockAddressServiceIface)(nil).ListPublicIpAddresses), p) } +// NewAcquirePodIpAddressParams mocks base method. +func (m *MockAddressServiceIface) NewAcquirePodIpAddressParams(zoneid string) *AcquirePodIpAddressParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewAcquirePodIpAddressParams", zoneid) + ret0, _ := ret[0].(*AcquirePodIpAddressParams) + return ret0 +} + +// NewAcquirePodIpAddressParams indicates an expected call of NewAcquirePodIpAddressParams. +func (mr *MockAddressServiceIfaceMockRecorder) NewAcquirePodIpAddressParams(zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAcquirePodIpAddressParams", reflect.TypeOf((*MockAddressServiceIface)(nil).NewAcquirePodIpAddressParams), zoneid) +} + // NewAssociateIpAddressParams mocks base method. func (m *MockAddressServiceIface) NewAssociateIpAddressParams() *AssociateIpAddressParams { m.ctrl.T.Helper() @@ -141,7 +176,7 @@ func (m *MockAddressServiceIface) NewDisassociateIpAddressParams(id string) *Dis } // NewDisassociateIpAddressParams indicates an expected call of NewDisassociateIpAddressParams. -func (mr *MockAddressServiceIfaceMockRecorder) NewDisassociateIpAddressParams(id interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) NewDisassociateIpAddressParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisassociateIpAddressParams", reflect.TypeOf((*MockAddressServiceIface)(nil).NewDisassociateIpAddressParams), id) } @@ -169,11 +204,39 @@ func (m *MockAddressServiceIface) NewReleaseIpAddressParams(id string) *ReleaseI } // NewReleaseIpAddressParams indicates an expected call of NewReleaseIpAddressParams. -func (mr *MockAddressServiceIfaceMockRecorder) NewReleaseIpAddressParams(id interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) NewReleaseIpAddressParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseIpAddressParams", reflect.TypeOf((*MockAddressServiceIface)(nil).NewReleaseIpAddressParams), id) } +// NewReleasePodIpAddressParams mocks base method. +func (m *MockAddressServiceIface) NewReleasePodIpAddressParams(id int64) *ReleasePodIpAddressParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewReleasePodIpAddressParams", id) + ret0, _ := ret[0].(*ReleasePodIpAddressParams) + return ret0 +} + +// NewReleasePodIpAddressParams indicates an expected call of NewReleasePodIpAddressParams. +func (mr *MockAddressServiceIfaceMockRecorder) NewReleasePodIpAddressParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleasePodIpAddressParams", reflect.TypeOf((*MockAddressServiceIface)(nil).NewReleasePodIpAddressParams), id) +} + +// NewReserveIpAddressParams mocks base method. +func (m *MockAddressServiceIface) NewReserveIpAddressParams(id string) *ReserveIpAddressParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewReserveIpAddressParams", id) + ret0, _ := ret[0].(*ReserveIpAddressParams) + return ret0 +} + +// NewReserveIpAddressParams indicates an expected call of NewReserveIpAddressParams. +func (mr *MockAddressServiceIfaceMockRecorder) NewReserveIpAddressParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReserveIpAddressParams", reflect.TypeOf((*MockAddressServiceIface)(nil).NewReserveIpAddressParams), id) +} + // NewUpdateIpAddressParams mocks base method. func (m *MockAddressServiceIface) NewUpdateIpAddressParams(id string) *UpdateIpAddressParams { m.ctrl.T.Helper() @@ -183,7 +246,7 @@ func (m *MockAddressServiceIface) NewUpdateIpAddressParams(id string) *UpdateIpA } // NewUpdateIpAddressParams indicates an expected call of NewUpdateIpAddressParams. -func (mr *MockAddressServiceIfaceMockRecorder) NewUpdateIpAddressParams(id interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) NewUpdateIpAddressParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateIpAddressParams", reflect.TypeOf((*MockAddressServiceIface)(nil).NewUpdateIpAddressParams), id) } @@ -198,11 +261,41 @@ func (m *MockAddressServiceIface) ReleaseIpAddress(p *ReleaseIpAddressParams) (* } // ReleaseIpAddress indicates an expected call of ReleaseIpAddress. -func (mr *MockAddressServiceIfaceMockRecorder) ReleaseIpAddress(p interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) ReleaseIpAddress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).ReleaseIpAddress), p) } +// ReleasePodIpAddress mocks base method. +func (m *MockAddressServiceIface) ReleasePodIpAddress(p *ReleasePodIpAddressParams) (*ReleasePodIpAddressResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReleasePodIpAddress", p) + ret0, _ := ret[0].(*ReleasePodIpAddressResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReleasePodIpAddress indicates an expected call of ReleasePodIpAddress. +func (mr *MockAddressServiceIfaceMockRecorder) ReleasePodIpAddress(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleasePodIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).ReleasePodIpAddress), p) +} + +// ReserveIpAddress mocks base method. +func (m *MockAddressServiceIface) ReserveIpAddress(p *ReserveIpAddressParams) (*ReserveIpAddressResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReserveIpAddress", p) + ret0, _ := ret[0].(*ReserveIpAddressResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReserveIpAddress indicates an expected call of ReserveIpAddress. +func (mr *MockAddressServiceIfaceMockRecorder) ReserveIpAddress(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).ReserveIpAddress), p) +} + // UpdateIpAddress mocks base method. func (m *MockAddressServiceIface) UpdateIpAddress(p *UpdateIpAddressParams) (*UpdateIpAddressResponse, error) { m.ctrl.T.Helper() @@ -213,7 +306,7 @@ func (m *MockAddressServiceIface) UpdateIpAddress(p *UpdateIpAddressParams) (*Up } // UpdateIpAddress indicates an expected call of UpdateIpAddress. -func (mr *MockAddressServiceIfaceMockRecorder) UpdateIpAddress(p interface{}) *gomock.Call { +func (mr *MockAddressServiceIfaceMockRecorder) UpdateIpAddress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIpAddress", reflect.TypeOf((*MockAddressServiceIface)(nil).UpdateIpAddress), p) } diff --git a/cloudstack/AffinityGroupService_mock.go b/cloudstack/AffinityGroupService_mock.go index 0eb7b970..6033ab81 100644 --- a/cloudstack/AffinityGroupService_mock.go +++ b/cloudstack/AffinityGroupService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AffinityGroupService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AffinityGroupService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AffinityGroupService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAffinityGroupServiceIface is a mock of AffinityGroupServiceIface interface. type MockAffinityGroupServiceIface struct { ctrl *gomock.Controller recorder *MockAffinityGroupServiceIfaceMockRecorder + isgomock struct{} } // MockAffinityGroupServiceIfaceMockRecorder is the mock recorder for MockAffinityGroupServiceIface. @@ -62,7 +68,7 @@ func (m *MockAffinityGroupServiceIface) CreateAffinityGroup(p *CreateAffinityGro } // CreateAffinityGroup indicates an expected call of CreateAffinityGroup. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) CreateAffinityGroup(p interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) CreateAffinityGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAffinityGroup", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).CreateAffinityGroup), p) } @@ -77,7 +83,7 @@ func (m *MockAffinityGroupServiceIface) DeleteAffinityGroup(p *DeleteAffinityGro } // DeleteAffinityGroup indicates an expected call of DeleteAffinityGroup. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) DeleteAffinityGroup(p interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) DeleteAffinityGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAffinityGroup", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).DeleteAffinityGroup), p) } @@ -85,7 +91,7 @@ func (mr *MockAffinityGroupServiceIfaceMockRecorder) DeleteAffinityGroup(p inter // GetAffinityGroupByID mocks base method. func (m *MockAffinityGroupServiceIface) GetAffinityGroupByID(id string, opts ...OptionFunc) (*AffinityGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockAffinityGroupServiceIface) GetAffinityGroupByID(id string, opts ... } // GetAffinityGroupByID indicates an expected call of GetAffinityGroupByID. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) GetAffinityGroupByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) GetAffinityGroupByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroupByID", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).GetAffinityGroupByID), varargs...) } // GetAffinityGroupByName mocks base method. func (m *MockAffinityGroupServiceIface) GetAffinityGroupByName(name string, opts ...OptionFunc) (*AffinityGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockAffinityGroupServiceIface) GetAffinityGroupByName(name string, opts } // GetAffinityGroupByName indicates an expected call of GetAffinityGroupByName. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) GetAffinityGroupByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) GetAffinityGroupByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroupByName", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).GetAffinityGroupByName), varargs...) } // GetAffinityGroupID mocks base method. func (m *MockAffinityGroupServiceIface) GetAffinityGroupID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockAffinityGroupServiceIface) GetAffinityGroupID(name string, opts ... } // GetAffinityGroupID indicates an expected call of GetAffinityGroupID. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) GetAffinityGroupID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) GetAffinityGroupID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroupID", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).GetAffinityGroupID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockAffinityGroupServiceIface) ListAffinityGroupTypes(p *ListAffinityGr } // ListAffinityGroupTypes indicates an expected call of ListAffinityGroupTypes. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) ListAffinityGroupTypes(p interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) ListAffinityGroupTypes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffinityGroupTypes", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).ListAffinityGroupTypes), p) } @@ -170,7 +176,7 @@ func (m *MockAffinityGroupServiceIface) ListAffinityGroups(p *ListAffinityGroups } // ListAffinityGroups indicates an expected call of ListAffinityGroups. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) ListAffinityGroups(p interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) ListAffinityGroups(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffinityGroups", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).ListAffinityGroups), p) } @@ -184,7 +190,7 @@ func (m *MockAffinityGroupServiceIface) NewCreateAffinityGroupParams(name, affin } // NewCreateAffinityGroupParams indicates an expected call of NewCreateAffinityGroupParams. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) NewCreateAffinityGroupParams(name, affinityGroupType interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) NewCreateAffinityGroupParams(name, affinityGroupType any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateAffinityGroupParams", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).NewCreateAffinityGroupParams), name, affinityGroupType) } @@ -240,7 +246,7 @@ func (m *MockAffinityGroupServiceIface) NewUpdateVMAffinityGroupParams(id string } // NewUpdateVMAffinityGroupParams indicates an expected call of NewUpdateVMAffinityGroupParams. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) NewUpdateVMAffinityGroupParams(id interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) NewUpdateVMAffinityGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVMAffinityGroupParams", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).NewUpdateVMAffinityGroupParams), id) } @@ -255,7 +261,7 @@ func (m *MockAffinityGroupServiceIface) UpdateVMAffinityGroup(p *UpdateVMAffinit } // UpdateVMAffinityGroup indicates an expected call of UpdateVMAffinityGroup. -func (mr *MockAffinityGroupServiceIfaceMockRecorder) UpdateVMAffinityGroup(p interface{}) *gomock.Call { +func (mr *MockAffinityGroupServiceIfaceMockRecorder) UpdateVMAffinityGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVMAffinityGroup", reflect.TypeOf((*MockAffinityGroupServiceIface)(nil).UpdateVMAffinityGroup), p) } diff --git a/cloudstack/AlertService.go b/cloudstack/AlertService.go index 287df560..d627def3 100644 --- a/cloudstack/AlertService.go +++ b/cloudstack/AlertService.go @@ -39,6 +39,8 @@ type AlertServiceIface interface { GetAlertID(name string, opts ...OptionFunc) (string, int, error) GetAlertByName(name string, opts ...OptionFunc) (*Alert, int, error) GetAlertByID(id string, opts ...OptionFunc) (*Alert, int, error) + ListAlertTypes(p *ListAlertTypesParams) (*ListAlertTypesResponse, error) + NewListAlertTypesParams() *ListAlertTypesParams } type ArchiveAlertsParams struct { @@ -832,3 +834,53 @@ type Alert struct { Sent string `json:"sent"` Type int `json:"type"` } + +type ListAlertTypesParams struct { + p map[string]interface{} +} + +func (p *ListAlertTypesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + return u +} + +// You should always use this function to get a new ListAlertTypesParams instance, +// as then you are sure you have configured all required params +func (s *AlertService) NewListAlertTypesParams() *ListAlertTypesParams { + p := &ListAlertTypesParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists all alerts types +func (s *AlertService) ListAlertTypes(p *ListAlertTypesParams) (*ListAlertTypesResponse, error) { + resp, err := s.cs.newRequest("listAlertTypes", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListAlertTypesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListAlertTypesResponse struct { + Count int `json:"count"` + AlertTypes []*AlertType `json:"alerttype"` +} + +type AlertType struct { + Description string `json:"description"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Sent string `json:"sent"` + Type int `json:"type"` +} diff --git a/cloudstack/AlertService_mock.go b/cloudstack/AlertService_mock.go index 050d7e35..3be3ea59 100644 --- a/cloudstack/AlertService_mock.go +++ b/cloudstack/AlertService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AlertService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AlertService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AlertService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAlertServiceIface is a mock of AlertServiceIface interface. type MockAlertServiceIface struct { ctrl *gomock.Controller recorder *MockAlertServiceIfaceMockRecorder + isgomock struct{} } // MockAlertServiceIfaceMockRecorder is the mock recorder for MockAlertServiceIface. @@ -62,7 +68,7 @@ func (m *MockAlertServiceIface) ArchiveAlerts(p *ArchiveAlertsParams) (*ArchiveA } // ArchiveAlerts indicates an expected call of ArchiveAlerts. -func (mr *MockAlertServiceIfaceMockRecorder) ArchiveAlerts(p interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) ArchiveAlerts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ArchiveAlerts", reflect.TypeOf((*MockAlertServiceIface)(nil).ArchiveAlerts), p) } @@ -77,7 +83,7 @@ func (m *MockAlertServiceIface) DeleteAlerts(p *DeleteAlertsParams) (*DeleteAler } // DeleteAlerts indicates an expected call of DeleteAlerts. -func (mr *MockAlertServiceIfaceMockRecorder) DeleteAlerts(p interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) DeleteAlerts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAlerts", reflect.TypeOf((*MockAlertServiceIface)(nil).DeleteAlerts), p) } @@ -92,7 +98,7 @@ func (m *MockAlertServiceIface) GenerateAlert(p *GenerateAlertParams) (*Generate } // GenerateAlert indicates an expected call of GenerateAlert. -func (mr *MockAlertServiceIfaceMockRecorder) GenerateAlert(p interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) GenerateAlert(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateAlert", reflect.TypeOf((*MockAlertServiceIface)(nil).GenerateAlert), p) } @@ -100,7 +106,7 @@ func (mr *MockAlertServiceIfaceMockRecorder) GenerateAlert(p interface{}) *gomoc // GetAlertByID mocks base method. func (m *MockAlertServiceIface) GetAlertByID(id string, opts ...OptionFunc) (*Alert, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -112,16 +118,16 @@ func (m *MockAlertServiceIface) GetAlertByID(id string, opts ...OptionFunc) (*Al } // GetAlertByID indicates an expected call of GetAlertByID. -func (mr *MockAlertServiceIfaceMockRecorder) GetAlertByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) GetAlertByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAlertByID", reflect.TypeOf((*MockAlertServiceIface)(nil).GetAlertByID), varargs...) } // GetAlertByName mocks base method. func (m *MockAlertServiceIface) GetAlertByName(name string, opts ...OptionFunc) (*Alert, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -133,16 +139,16 @@ func (m *MockAlertServiceIface) GetAlertByName(name string, opts ...OptionFunc) } // GetAlertByName indicates an expected call of GetAlertByName. -func (mr *MockAlertServiceIfaceMockRecorder) GetAlertByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) GetAlertByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAlertByName", reflect.TypeOf((*MockAlertServiceIface)(nil).GetAlertByName), varargs...) } // GetAlertID mocks base method. func (m *MockAlertServiceIface) GetAlertID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -154,12 +160,27 @@ func (m *MockAlertServiceIface) GetAlertID(name string, opts ...OptionFunc) (str } // GetAlertID indicates an expected call of GetAlertID. -func (mr *MockAlertServiceIfaceMockRecorder) GetAlertID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) GetAlertID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAlertID", reflect.TypeOf((*MockAlertServiceIface)(nil).GetAlertID), varargs...) } +// ListAlertTypes mocks base method. +func (m *MockAlertServiceIface) ListAlertTypes(p *ListAlertTypesParams) (*ListAlertTypesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAlertTypes", p) + ret0, _ := ret[0].(*ListAlertTypesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAlertTypes indicates an expected call of ListAlertTypes. +func (mr *MockAlertServiceIfaceMockRecorder) ListAlertTypes(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAlertTypes", reflect.TypeOf((*MockAlertServiceIface)(nil).ListAlertTypes), p) +} + // ListAlerts mocks base method. func (m *MockAlertServiceIface) ListAlerts(p *ListAlertsParams) (*ListAlertsResponse, error) { m.ctrl.T.Helper() @@ -170,7 +191,7 @@ func (m *MockAlertServiceIface) ListAlerts(p *ListAlertsParams) (*ListAlertsResp } // ListAlerts indicates an expected call of ListAlerts. -func (mr *MockAlertServiceIfaceMockRecorder) ListAlerts(p interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) ListAlerts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAlerts", reflect.TypeOf((*MockAlertServiceIface)(nil).ListAlerts), p) } @@ -212,11 +233,25 @@ func (m *MockAlertServiceIface) NewGenerateAlertParams(description, name string, } // NewGenerateAlertParams indicates an expected call of NewGenerateAlertParams. -func (mr *MockAlertServiceIfaceMockRecorder) NewGenerateAlertParams(description, name, alertType interface{}) *gomock.Call { +func (mr *MockAlertServiceIfaceMockRecorder) NewGenerateAlertParams(description, name, alertType any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGenerateAlertParams", reflect.TypeOf((*MockAlertServiceIface)(nil).NewGenerateAlertParams), description, name, alertType) } +// NewListAlertTypesParams mocks base method. +func (m *MockAlertServiceIface) NewListAlertTypesParams() *ListAlertTypesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListAlertTypesParams") + ret0, _ := ret[0].(*ListAlertTypesParams) + return ret0 +} + +// NewListAlertTypesParams indicates an expected call of NewListAlertTypesParams. +func (mr *MockAlertServiceIfaceMockRecorder) NewListAlertTypesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListAlertTypesParams", reflect.TypeOf((*MockAlertServiceIface)(nil).NewListAlertTypesParams)) +} + // NewListAlertsParams mocks base method. func (m *MockAlertServiceIface) NewListAlertsParams() *ListAlertsParams { m.ctrl.T.Helper() diff --git a/cloudstack/AnnotationService_mock.go b/cloudstack/AnnotationService_mock.go index 7eaa4908..6565688e 100644 --- a/cloudstack/AnnotationService_mock.go +++ b/cloudstack/AnnotationService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AnnotationService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AnnotationService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AnnotationService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAnnotationServiceIface is a mock of AnnotationServiceIface interface. type MockAnnotationServiceIface struct { ctrl *gomock.Controller recorder *MockAnnotationServiceIfaceMockRecorder + isgomock struct{} } // MockAnnotationServiceIfaceMockRecorder is the mock recorder for MockAnnotationServiceIface. @@ -62,7 +68,7 @@ func (m *MockAnnotationServiceIface) AddAnnotation(p *AddAnnotationParams) (*Add } // AddAnnotation indicates an expected call of AddAnnotation. -func (mr *MockAnnotationServiceIfaceMockRecorder) AddAnnotation(p interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) AddAnnotation(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddAnnotation", reflect.TypeOf((*MockAnnotationServiceIface)(nil).AddAnnotation), p) } @@ -70,7 +76,7 @@ func (mr *MockAnnotationServiceIfaceMockRecorder) AddAnnotation(p interface{}) * // GetAnnotationByID mocks base method. func (m *MockAnnotationServiceIface) GetAnnotationByID(id string, opts ...OptionFunc) (*Annotation, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -82,9 +88,9 @@ func (m *MockAnnotationServiceIface) GetAnnotationByID(id string, opts ...Option } // GetAnnotationByID indicates an expected call of GetAnnotationByID. -func (mr *MockAnnotationServiceIfaceMockRecorder) GetAnnotationByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) GetAnnotationByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAnnotationByID", reflect.TypeOf((*MockAnnotationServiceIface)(nil).GetAnnotationByID), varargs...) } @@ -98,7 +104,7 @@ func (m *MockAnnotationServiceIface) ListAnnotations(p *ListAnnotationsParams) ( } // ListAnnotations indicates an expected call of ListAnnotations. -func (mr *MockAnnotationServiceIfaceMockRecorder) ListAnnotations(p interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) ListAnnotations(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAnnotations", reflect.TypeOf((*MockAnnotationServiceIface)(nil).ListAnnotations), p) } @@ -140,7 +146,7 @@ func (m *MockAnnotationServiceIface) NewRemoveAnnotationParams(id string) *Remov } // NewRemoveAnnotationParams indicates an expected call of NewRemoveAnnotationParams. -func (mr *MockAnnotationServiceIfaceMockRecorder) NewRemoveAnnotationParams(id interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) NewRemoveAnnotationParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveAnnotationParams", reflect.TypeOf((*MockAnnotationServiceIface)(nil).NewRemoveAnnotationParams), id) } @@ -154,7 +160,7 @@ func (m *MockAnnotationServiceIface) NewUpdateAnnotationVisibilityParams(adminso } // NewUpdateAnnotationVisibilityParams indicates an expected call of NewUpdateAnnotationVisibilityParams. -func (mr *MockAnnotationServiceIfaceMockRecorder) NewUpdateAnnotationVisibilityParams(adminsonly, id interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) NewUpdateAnnotationVisibilityParams(adminsonly, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateAnnotationVisibilityParams", reflect.TypeOf((*MockAnnotationServiceIface)(nil).NewUpdateAnnotationVisibilityParams), adminsonly, id) } @@ -169,7 +175,7 @@ func (m *MockAnnotationServiceIface) RemoveAnnotation(p *RemoveAnnotationParams) } // RemoveAnnotation indicates an expected call of RemoveAnnotation. -func (mr *MockAnnotationServiceIfaceMockRecorder) RemoveAnnotation(p interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) RemoveAnnotation(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveAnnotation", reflect.TypeOf((*MockAnnotationServiceIface)(nil).RemoveAnnotation), p) } @@ -184,7 +190,7 @@ func (m *MockAnnotationServiceIface) UpdateAnnotationVisibility(p *UpdateAnnotat } // UpdateAnnotationVisibility indicates an expected call of UpdateAnnotationVisibility. -func (mr *MockAnnotationServiceIfaceMockRecorder) UpdateAnnotationVisibility(p interface{}) *gomock.Call { +func (mr *MockAnnotationServiceIfaceMockRecorder) UpdateAnnotationVisibility(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAnnotationVisibility", reflect.TypeOf((*MockAnnotationServiceIface)(nil).UpdateAnnotationVisibility), p) } diff --git a/cloudstack/AsyncjobService_mock.go b/cloudstack/AsyncjobService_mock.go index e5b61f0c..ec6e612d 100644 --- a/cloudstack/AsyncjobService_mock.go +++ b/cloudstack/AsyncjobService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AsyncjobService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AsyncjobService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AsyncjobService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAsyncjobServiceIface is a mock of AsyncjobServiceIface interface. type MockAsyncjobServiceIface struct { ctrl *gomock.Controller recorder *MockAsyncjobServiceIfaceMockRecorder + isgomock struct{} } // MockAsyncjobServiceIfaceMockRecorder is the mock recorder for MockAsyncjobServiceIface. @@ -62,7 +68,7 @@ func (m *MockAsyncjobServiceIface) ListAsyncJobs(p *ListAsyncJobsParams) (*ListA } // ListAsyncJobs indicates an expected call of ListAsyncJobs. -func (mr *MockAsyncjobServiceIfaceMockRecorder) ListAsyncJobs(p interface{}) *gomock.Call { +func (mr *MockAsyncjobServiceIfaceMockRecorder) ListAsyncJobs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAsyncJobs", reflect.TypeOf((*MockAsyncjobServiceIface)(nil).ListAsyncJobs), p) } @@ -90,7 +96,7 @@ func (m *MockAsyncjobServiceIface) NewQueryAsyncJobResultParams(jobid string) *Q } // NewQueryAsyncJobResultParams indicates an expected call of NewQueryAsyncJobResultParams. -func (mr *MockAsyncjobServiceIfaceMockRecorder) NewQueryAsyncJobResultParams(jobid interface{}) *gomock.Call { +func (mr *MockAsyncjobServiceIfaceMockRecorder) NewQueryAsyncJobResultParams(jobid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewQueryAsyncJobResultParams", reflect.TypeOf((*MockAsyncjobServiceIface)(nil).NewQueryAsyncJobResultParams), jobid) } @@ -105,7 +111,7 @@ func (m *MockAsyncjobServiceIface) QueryAsyncJobResult(p *QueryAsyncJobResultPar } // QueryAsyncJobResult indicates an expected call of QueryAsyncJobResult. -func (mr *MockAsyncjobServiceIfaceMockRecorder) QueryAsyncJobResult(p interface{}) *gomock.Call { +func (mr *MockAsyncjobServiceIfaceMockRecorder) QueryAsyncJobResult(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryAsyncJobResult", reflect.TypeOf((*MockAsyncjobServiceIface)(nil).QueryAsyncJobResult), p) } diff --git a/cloudstack/AuthenticationService.go b/cloudstack/AuthenticationService.go index 0ca4d68b..e594ce71 100644 --- a/cloudstack/AuthenticationService.go +++ b/cloudstack/AuthenticationService.go @@ -30,6 +30,8 @@ type AuthenticationServiceIface interface { NewLoginParams(password string, username string) *LoginParams Logout(p *LogoutParams) (*LogoutResponse, error) NewLogoutParams() *LogoutParams + Oauthlogin(p *OauthloginParams) (*OauthloginResponse, error) + NewOauthloginParams(email string, provider string) *OauthloginParams } type LoginParams struct { @@ -227,3 +229,182 @@ type LogoutResponse struct { JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` } + +type OauthloginParams struct { + p map[string]interface{} +} + +func (p *OauthloginParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["domain"]; found { + u.Set("domain", v.(string)) + } + if v, found := p.p["domainId"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("domainId", vv) + } + if v, found := p.p["email"]; found { + u.Set("email", v.(string)) + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + if v, found := p.p["secretcode"]; found { + u.Set("secretcode", v.(string)) + } + return u +} + +func (p *OauthloginParams) SetDomain(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domain"] = v +} + +func (p *OauthloginParams) ResetDomain() { + if p.p != nil && p.p["domain"] != nil { + delete(p.p, "domain") + } +} + +func (p *OauthloginParams) GetDomain() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domain"].(string) + return value, ok +} + +func (p *OauthloginParams) SetDomainId(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainId"] = v +} + +func (p *OauthloginParams) ResetDomainId() { + if p.p != nil && p.p["domainId"] != nil { + delete(p.p, "domainId") + } +} + +func (p *OauthloginParams) GetDomainId() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainId"].(int64) + return value, ok +} + +func (p *OauthloginParams) SetEmail(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["email"] = v +} + +func (p *OauthloginParams) ResetEmail() { + if p.p != nil && p.p["email"] != nil { + delete(p.p, "email") + } +} + +func (p *OauthloginParams) GetEmail() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["email"].(string) + return value, ok +} + +func (p *OauthloginParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *OauthloginParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *OauthloginParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +func (p *OauthloginParams) SetSecretcode(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["secretcode"] = v +} + +func (p *OauthloginParams) ResetSecretcode() { + if p.p != nil && p.p["secretcode"] != nil { + delete(p.p, "secretcode") + } +} + +func (p *OauthloginParams) GetSecretcode() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["secretcode"].(string) + return value, ok +} + +// You should always use this function to get a new OauthloginParams instance, +// as then you are sure you have configured all required params +func (s *AuthenticationService) NewOauthloginParams(email string, provider string) *OauthloginParams { + p := &OauthloginParams{} + p.p = make(map[string]interface{}) + p.p["email"] = email + p.p["provider"] = provider + return p +} + +// Logs a user into the CloudStack after successful verification of OAuth secret code from the particular provider.A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the "logout" command has been issued or the session has expired. +func (s *AuthenticationService) Oauthlogin(p *OauthloginParams) (*OauthloginResponse, error) { + resp, err := s.cs.newRequest("oauthlogin", p.toURLValues()) + if err != nil { + return nil, err + } + + var r OauthloginResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type OauthloginResponse struct { + Account string `json:"account"` + Domainid string `json:"domainid"` + Firstname string `json:"firstname"` + Is2faenabled string `json:"is2faenabled"` + Is2faverified string `json:"is2faverified"` + Issuerfor2fa string `json:"issuerfor2fa"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lastname string `json:"lastname"` + Providerfor2fa string `json:"providerfor2fa"` + Registered string `json:"registered"` + Sessionkey string `json:"sessionkey"` + Timeout int `json:"timeout"` + Timezone string `json:"timezone"` + Timezoneoffset string `json:"timezoneoffset"` + Type string `json:"type"` + Userid string `json:"userid"` + Username string `json:"username"` +} diff --git a/cloudstack/AuthenticationService_mock.go b/cloudstack/AuthenticationService_mock.go index e249b001..de231296 100644 --- a/cloudstack/AuthenticationService_mock.go +++ b/cloudstack/AuthenticationService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AuthenticationService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AuthenticationService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AuthenticationService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAuthenticationServiceIface is a mock of AuthenticationServiceIface interface. type MockAuthenticationServiceIface struct { ctrl *gomock.Controller recorder *MockAuthenticationServiceIfaceMockRecorder + isgomock struct{} } // MockAuthenticationServiceIfaceMockRecorder is the mock recorder for MockAuthenticationServiceIface. @@ -62,7 +68,7 @@ func (m *MockAuthenticationServiceIface) Login(p *LoginParams) (*LoginResponse, } // Login indicates an expected call of Login. -func (mr *MockAuthenticationServiceIfaceMockRecorder) Login(p interface{}) *gomock.Call { +func (mr *MockAuthenticationServiceIfaceMockRecorder) Login(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Login", reflect.TypeOf((*MockAuthenticationServiceIface)(nil).Login), p) } @@ -77,7 +83,7 @@ func (m *MockAuthenticationServiceIface) Logout(p *LogoutParams) (*LogoutRespons } // Logout indicates an expected call of Logout. -func (mr *MockAuthenticationServiceIfaceMockRecorder) Logout(p interface{}) *gomock.Call { +func (mr *MockAuthenticationServiceIfaceMockRecorder) Logout(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Logout", reflect.TypeOf((*MockAuthenticationServiceIface)(nil).Logout), p) } @@ -91,7 +97,7 @@ func (m *MockAuthenticationServiceIface) NewLoginParams(password, username strin } // NewLoginParams indicates an expected call of NewLoginParams. -func (mr *MockAuthenticationServiceIfaceMockRecorder) NewLoginParams(password, username interface{}) *gomock.Call { +func (mr *MockAuthenticationServiceIfaceMockRecorder) NewLoginParams(password, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLoginParams", reflect.TypeOf((*MockAuthenticationServiceIface)(nil).NewLoginParams), password, username) } @@ -109,3 +115,32 @@ func (mr *MockAuthenticationServiceIfaceMockRecorder) NewLogoutParams() *gomock. mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLogoutParams", reflect.TypeOf((*MockAuthenticationServiceIface)(nil).NewLogoutParams)) } + +// NewOauthloginParams mocks base method. +func (m *MockAuthenticationServiceIface) NewOauthloginParams(email, provider string) *OauthloginParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewOauthloginParams", email, provider) + ret0, _ := ret[0].(*OauthloginParams) + return ret0 +} + +// NewOauthloginParams indicates an expected call of NewOauthloginParams. +func (mr *MockAuthenticationServiceIfaceMockRecorder) NewOauthloginParams(email, provider any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewOauthloginParams", reflect.TypeOf((*MockAuthenticationServiceIface)(nil).NewOauthloginParams), email, provider) +} + +// Oauthlogin mocks base method. +func (m *MockAuthenticationServiceIface) Oauthlogin(p *OauthloginParams) (*OauthloginResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Oauthlogin", p) + ret0, _ := ret[0].(*OauthloginResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Oauthlogin indicates an expected call of Oauthlogin. +func (mr *MockAuthenticationServiceIfaceMockRecorder) Oauthlogin(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Oauthlogin", reflect.TypeOf((*MockAuthenticationServiceIface)(nil).Oauthlogin), p) +} diff --git a/cloudstack/AutoScaleService.go b/cloudstack/AutoScaleService.go index 6432747f..478a9418 100644 --- a/cloudstack/AutoScaleService.go +++ b/cloudstack/AutoScaleService.go @@ -79,6 +79,8 @@ type AutoScaleServiceIface interface { NewUpdateAutoScaleVmGroupParams(id string) *UpdateAutoScaleVmGroupParams UpdateAutoScaleVmProfile(p *UpdateAutoScaleVmProfileParams) (*UpdateAutoScaleVmProfileResponse, error) NewUpdateAutoScaleVmProfileParams(id string) *UpdateAutoScaleVmProfileParams + UpdateCondition(p *UpdateConditionParams) (*UpdateConditionResponse, error) + NewUpdateConditionParams(id string, relationaloperator string, threshold int64) *UpdateConditionParams } type CreateAutoScalePolicyParams struct { @@ -5036,3 +5038,136 @@ type UpdateAutoScaleVmProfileResponse struct { Userdatapolicy string `json:"userdatapolicy"` Zoneid string `json:"zoneid"` } + +type UpdateConditionParams struct { + p map[string]interface{} +} + +func (p *UpdateConditionParams) 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["relationaloperator"]; found { + u.Set("relationaloperator", v.(string)) + } + if v, found := p.p["threshold"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("threshold", vv) + } + return u +} + +func (p *UpdateConditionParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateConditionParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateConditionParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateConditionParams) SetRelationaloperator(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["relationaloperator"] = v +} + +func (p *UpdateConditionParams) ResetRelationaloperator() { + if p.p != nil && p.p["relationaloperator"] != nil { + delete(p.p, "relationaloperator") + } +} + +func (p *UpdateConditionParams) GetRelationaloperator() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["relationaloperator"].(string) + return value, ok +} + +func (p *UpdateConditionParams) SetThreshold(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["threshold"] = v +} + +func (p *UpdateConditionParams) ResetThreshold() { + if p.p != nil && p.p["threshold"] != nil { + delete(p.p, "threshold") + } +} + +func (p *UpdateConditionParams) GetThreshold() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["threshold"].(int64) + return value, ok +} + +// You should always use this function to get a new UpdateConditionParams instance, +// as then you are sure you have configured all required params +func (s *AutoScaleService) NewUpdateConditionParams(id string, relationaloperator string, threshold int64) *UpdateConditionParams { + p := &UpdateConditionParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + p.p["relationaloperator"] = relationaloperator + p.p["threshold"] = threshold + return p +} + +// Updates a condition for VM auto scaling +func (s *AutoScaleService) UpdateCondition(p *UpdateConditionParams) (*UpdateConditionResponse, error) { + resp, err := s.cs.newRequest("updateCondition", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateConditionResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type UpdateConditionResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} diff --git a/cloudstack/AutoScaleService_mock.go b/cloudstack/AutoScaleService_mock.go index fe59d70f..27181dbe 100644 --- a/cloudstack/AutoScaleService_mock.go +++ b/cloudstack/AutoScaleService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/AutoScaleService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/AutoScaleService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/AutoScaleService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockAutoScaleServiceIface is a mock of AutoScaleServiceIface interface. type MockAutoScaleServiceIface struct { ctrl *gomock.Controller recorder *MockAutoScaleServiceIfaceMockRecorder + isgomock struct{} } // MockAutoScaleServiceIfaceMockRecorder is the mock recorder for MockAutoScaleServiceIface. @@ -62,7 +68,7 @@ func (m *MockAutoScaleServiceIface) CreateAutoScalePolicy(p *CreateAutoScalePoli } // CreateAutoScalePolicy indicates an expected call of CreateAutoScalePolicy. -func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateAutoScalePolicy(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateAutoScalePolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAutoScalePolicy", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).CreateAutoScalePolicy), p) } @@ -77,7 +83,7 @@ func (m *MockAutoScaleServiceIface) CreateAutoScaleVmGroup(p *CreateAutoScaleVmG } // CreateAutoScaleVmGroup indicates an expected call of CreateAutoScaleVmGroup. -func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateAutoScaleVmGroup(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateAutoScaleVmGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAutoScaleVmGroup", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).CreateAutoScaleVmGroup), p) } @@ -92,7 +98,7 @@ func (m *MockAutoScaleServiceIface) CreateAutoScaleVmProfile(p *CreateAutoScaleV } // CreateAutoScaleVmProfile indicates an expected call of CreateAutoScaleVmProfile. -func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateAutoScaleVmProfile(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateAutoScaleVmProfile(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAutoScaleVmProfile", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).CreateAutoScaleVmProfile), p) } @@ -107,7 +113,7 @@ func (m *MockAutoScaleServiceIface) CreateCondition(p *CreateConditionParams) (* } // CreateCondition indicates an expected call of CreateCondition. -func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateCondition(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateCondition(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCondition", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).CreateCondition), p) } @@ -122,7 +128,7 @@ func (m *MockAutoScaleServiceIface) CreateCounter(p *CreateCounterParams) (*Crea } // CreateCounter indicates an expected call of CreateCounter. -func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateCounter(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) CreateCounter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCounter", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).CreateCounter), p) } @@ -137,7 +143,7 @@ func (m *MockAutoScaleServiceIface) DeleteAutoScalePolicy(p *DeleteAutoScalePoli } // DeleteAutoScalePolicy indicates an expected call of DeleteAutoScalePolicy. -func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteAutoScalePolicy(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteAutoScalePolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAutoScalePolicy", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).DeleteAutoScalePolicy), p) } @@ -152,7 +158,7 @@ func (m *MockAutoScaleServiceIface) DeleteAutoScaleVmGroup(p *DeleteAutoScaleVmG } // DeleteAutoScaleVmGroup indicates an expected call of DeleteAutoScaleVmGroup. -func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteAutoScaleVmGroup(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteAutoScaleVmGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAutoScaleVmGroup", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).DeleteAutoScaleVmGroup), p) } @@ -167,7 +173,7 @@ func (m *MockAutoScaleServiceIface) DeleteAutoScaleVmProfile(p *DeleteAutoScaleV } // DeleteAutoScaleVmProfile indicates an expected call of DeleteAutoScaleVmProfile. -func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteAutoScaleVmProfile(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteAutoScaleVmProfile(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAutoScaleVmProfile", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).DeleteAutoScaleVmProfile), p) } @@ -182,7 +188,7 @@ func (m *MockAutoScaleServiceIface) DeleteCondition(p *DeleteConditionParams) (* } // DeleteCondition indicates an expected call of DeleteCondition. -func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteCondition(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteCondition(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCondition", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).DeleteCondition), p) } @@ -197,7 +203,7 @@ func (m *MockAutoScaleServiceIface) DeleteCounter(p *DeleteCounterParams) (*Dele } // DeleteCounter indicates an expected call of DeleteCounter. -func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteCounter(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) DeleteCounter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCounter", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).DeleteCounter), p) } @@ -212,7 +218,7 @@ func (m *MockAutoScaleServiceIface) DisableAutoScaleVmGroup(p *DisableAutoScaleV } // DisableAutoScaleVmGroup indicates an expected call of DisableAutoScaleVmGroup. -func (mr *MockAutoScaleServiceIfaceMockRecorder) DisableAutoScaleVmGroup(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) DisableAutoScaleVmGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableAutoScaleVmGroup", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).DisableAutoScaleVmGroup), p) } @@ -227,7 +233,7 @@ func (m *MockAutoScaleServiceIface) EnableAutoScaleVmGroup(p *EnableAutoScaleVmG } // EnableAutoScaleVmGroup indicates an expected call of EnableAutoScaleVmGroup. -func (mr *MockAutoScaleServiceIfaceMockRecorder) EnableAutoScaleVmGroup(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) EnableAutoScaleVmGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableAutoScaleVmGroup", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).EnableAutoScaleVmGroup), p) } @@ -235,7 +241,7 @@ func (mr *MockAutoScaleServiceIfaceMockRecorder) EnableAutoScaleVmGroup(p interf // GetAutoScalePolicyByID mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScalePolicyByID(id string, opts ...OptionFunc) (*AutoScalePolicy, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -247,16 +253,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScalePolicyByID(id string, opts ...Op } // GetAutoScalePolicyByID indicates an expected call of GetAutoScalePolicyByID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScalePolicyByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScalePolicyByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScalePolicyByID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScalePolicyByID), varargs...) } // GetAutoScalePolicyByName mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScalePolicyByName(name string, opts ...OptionFunc) (*AutoScalePolicy, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -268,16 +274,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScalePolicyByName(name string, opts . } // GetAutoScalePolicyByName indicates an expected call of GetAutoScalePolicyByName. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScalePolicyByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScalePolicyByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScalePolicyByName", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScalePolicyByName), varargs...) } // GetAutoScalePolicyID mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScalePolicyID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -289,16 +295,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScalePolicyID(name string, opts ...Op } // GetAutoScalePolicyID indicates an expected call of GetAutoScalePolicyID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScalePolicyID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScalePolicyID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScalePolicyID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScalePolicyID), varargs...) } // GetAutoScaleVmGroupByID mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScaleVmGroupByID(id string, opts ...OptionFunc) (*AutoScaleVmGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -310,16 +316,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScaleVmGroupByID(id string, opts ...O } // GetAutoScaleVmGroupByID indicates an expected call of GetAutoScaleVmGroupByID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmGroupByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmGroupByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScaleVmGroupByID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScaleVmGroupByID), varargs...) } // GetAutoScaleVmGroupByName mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScaleVmGroupByName(name string, opts ...OptionFunc) (*AutoScaleVmGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -331,16 +337,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScaleVmGroupByName(name string, opts } // GetAutoScaleVmGroupByName indicates an expected call of GetAutoScaleVmGroupByName. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmGroupByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmGroupByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScaleVmGroupByName", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScaleVmGroupByName), varargs...) } // GetAutoScaleVmGroupID mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScaleVmGroupID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -352,16 +358,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScaleVmGroupID(name string, opts ...O } // GetAutoScaleVmGroupID indicates an expected call of GetAutoScaleVmGroupID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmGroupID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmGroupID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScaleVmGroupID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScaleVmGroupID), varargs...) } // GetAutoScaleVmProfileByID mocks base method. func (m *MockAutoScaleServiceIface) GetAutoScaleVmProfileByID(id string, opts ...OptionFunc) (*AutoScaleVmProfile, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -373,16 +379,16 @@ func (m *MockAutoScaleServiceIface) GetAutoScaleVmProfileByID(id string, opts .. } // GetAutoScaleVmProfileByID indicates an expected call of GetAutoScaleVmProfileByID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmProfileByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetAutoScaleVmProfileByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAutoScaleVmProfileByID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetAutoScaleVmProfileByID), varargs...) } // GetConditionByID mocks base method. func (m *MockAutoScaleServiceIface) GetConditionByID(id string, opts ...OptionFunc) (*Condition, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -394,16 +400,16 @@ func (m *MockAutoScaleServiceIface) GetConditionByID(id string, opts ...OptionFu } // GetConditionByID indicates an expected call of GetConditionByID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetConditionByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetConditionByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetConditionByID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetConditionByID), varargs...) } // GetCounterByID mocks base method. func (m *MockAutoScaleServiceIface) GetCounterByID(id string, opts ...OptionFunc) (*Counter, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -415,16 +421,16 @@ func (m *MockAutoScaleServiceIface) GetCounterByID(id string, opts ...OptionFunc } // GetCounterByID indicates an expected call of GetCounterByID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetCounterByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetCounterByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCounterByID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetCounterByID), varargs...) } // GetCounterByName mocks base method. func (m *MockAutoScaleServiceIface) GetCounterByName(name string, opts ...OptionFunc) (*Counter, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -436,16 +442,16 @@ func (m *MockAutoScaleServiceIface) GetCounterByName(name string, opts ...Option } // GetCounterByName indicates an expected call of GetCounterByName. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetCounterByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetCounterByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCounterByName", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetCounterByName), varargs...) } // GetCounterID mocks base method. func (m *MockAutoScaleServiceIface) GetCounterID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -457,9 +463,9 @@ func (m *MockAutoScaleServiceIface) GetCounterID(name string, opts ...OptionFunc } // GetCounterID indicates an expected call of GetCounterID. -func (mr *MockAutoScaleServiceIfaceMockRecorder) GetCounterID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) GetCounterID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCounterID", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).GetCounterID), varargs...) } @@ -473,7 +479,7 @@ func (m *MockAutoScaleServiceIface) ListAutoScalePolicies(p *ListAutoScalePolici } // ListAutoScalePolicies indicates an expected call of ListAutoScalePolicies. -func (mr *MockAutoScaleServiceIfaceMockRecorder) ListAutoScalePolicies(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) ListAutoScalePolicies(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAutoScalePolicies", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).ListAutoScalePolicies), p) } @@ -488,7 +494,7 @@ func (m *MockAutoScaleServiceIface) ListAutoScaleVmGroups(p *ListAutoScaleVmGrou } // ListAutoScaleVmGroups indicates an expected call of ListAutoScaleVmGroups. -func (mr *MockAutoScaleServiceIfaceMockRecorder) ListAutoScaleVmGroups(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) ListAutoScaleVmGroups(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAutoScaleVmGroups", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).ListAutoScaleVmGroups), p) } @@ -503,7 +509,7 @@ func (m *MockAutoScaleServiceIface) ListAutoScaleVmProfiles(p *ListAutoScaleVmPr } // ListAutoScaleVmProfiles indicates an expected call of ListAutoScaleVmProfiles. -func (mr *MockAutoScaleServiceIfaceMockRecorder) ListAutoScaleVmProfiles(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) ListAutoScaleVmProfiles(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAutoScaleVmProfiles", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).ListAutoScaleVmProfiles), p) } @@ -518,7 +524,7 @@ func (m *MockAutoScaleServiceIface) ListConditions(p *ListConditionsParams) (*Li } // ListConditions indicates an expected call of ListConditions. -func (mr *MockAutoScaleServiceIfaceMockRecorder) ListConditions(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) ListConditions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListConditions", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).ListConditions), p) } @@ -533,7 +539,7 @@ func (m *MockAutoScaleServiceIface) ListCounters(p *ListCountersParams) (*ListCo } // ListCounters indicates an expected call of ListCounters. -func (mr *MockAutoScaleServiceIfaceMockRecorder) ListCounters(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) ListCounters(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCounters", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).ListCounters), p) } @@ -547,7 +553,7 @@ func (m *MockAutoScaleServiceIface) NewCreateAutoScalePolicyParams(action string } // NewCreateAutoScalePolicyParams indicates an expected call of NewCreateAutoScalePolicyParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateAutoScalePolicyParams(action, conditionids, duration interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateAutoScalePolicyParams(action, conditionids, duration any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateAutoScalePolicyParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewCreateAutoScalePolicyParams), action, conditionids, duration) } @@ -561,7 +567,7 @@ func (m *MockAutoScaleServiceIface) NewCreateAutoScaleVmGroupParams(lbruleid str } // NewCreateAutoScaleVmGroupParams indicates an expected call of NewCreateAutoScaleVmGroupParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateAutoScaleVmGroupParams(lbruleid, maxmembers, minmembers, scaledownpolicyids, scaleuppolicyids, vmprofileid interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateAutoScaleVmGroupParams(lbruleid, maxmembers, minmembers, scaledownpolicyids, scaleuppolicyids, vmprofileid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateAutoScaleVmGroupParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewCreateAutoScaleVmGroupParams), lbruleid, maxmembers, minmembers, scaledownpolicyids, scaleuppolicyids, vmprofileid) } @@ -575,7 +581,7 @@ func (m *MockAutoScaleServiceIface) NewCreateAutoScaleVmProfileParams(serviceoff } // NewCreateAutoScaleVmProfileParams indicates an expected call of NewCreateAutoScaleVmProfileParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateAutoScaleVmProfileParams(serviceofferingid, templateid, zoneid interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateAutoScaleVmProfileParams(serviceofferingid, templateid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateAutoScaleVmProfileParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewCreateAutoScaleVmProfileParams), serviceofferingid, templateid, zoneid) } @@ -589,7 +595,7 @@ func (m *MockAutoScaleServiceIface) NewCreateConditionParams(counterid, relation } // NewCreateConditionParams indicates an expected call of NewCreateConditionParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateConditionParams(counterid, relationaloperator, threshold interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateConditionParams(counterid, relationaloperator, threshold any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateConditionParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewCreateConditionParams), counterid, relationaloperator, threshold) } @@ -603,7 +609,7 @@ func (m *MockAutoScaleServiceIface) NewCreateCounterParams(name, provider, sourc } // NewCreateCounterParams indicates an expected call of NewCreateCounterParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateCounterParams(name, provider, source, value interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewCreateCounterParams(name, provider, source, value any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateCounterParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewCreateCounterParams), name, provider, source, value) } @@ -617,7 +623,7 @@ func (m *MockAutoScaleServiceIface) NewDeleteAutoScalePolicyParams(id string) *D } // NewDeleteAutoScalePolicyParams indicates an expected call of NewDeleteAutoScalePolicyParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteAutoScalePolicyParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteAutoScalePolicyParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteAutoScalePolicyParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewDeleteAutoScalePolicyParams), id) } @@ -631,7 +637,7 @@ func (m *MockAutoScaleServiceIface) NewDeleteAutoScaleVmGroupParams(id string) * } // NewDeleteAutoScaleVmGroupParams indicates an expected call of NewDeleteAutoScaleVmGroupParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteAutoScaleVmGroupParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteAutoScaleVmGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteAutoScaleVmGroupParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewDeleteAutoScaleVmGroupParams), id) } @@ -645,7 +651,7 @@ func (m *MockAutoScaleServiceIface) NewDeleteAutoScaleVmProfileParams(id string) } // NewDeleteAutoScaleVmProfileParams indicates an expected call of NewDeleteAutoScaleVmProfileParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteAutoScaleVmProfileParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteAutoScaleVmProfileParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteAutoScaleVmProfileParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewDeleteAutoScaleVmProfileParams), id) } @@ -659,7 +665,7 @@ func (m *MockAutoScaleServiceIface) NewDeleteConditionParams(id string) *DeleteC } // NewDeleteConditionParams indicates an expected call of NewDeleteConditionParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteConditionParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteConditionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteConditionParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewDeleteConditionParams), id) } @@ -673,7 +679,7 @@ func (m *MockAutoScaleServiceIface) NewDeleteCounterParams(id string) *DeleteCou } // NewDeleteCounterParams indicates an expected call of NewDeleteCounterParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteCounterParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDeleteCounterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteCounterParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewDeleteCounterParams), id) } @@ -687,7 +693,7 @@ func (m *MockAutoScaleServiceIface) NewDisableAutoScaleVmGroupParams(id string) } // NewDisableAutoScaleVmGroupParams indicates an expected call of NewDisableAutoScaleVmGroupParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDisableAutoScaleVmGroupParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewDisableAutoScaleVmGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableAutoScaleVmGroupParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewDisableAutoScaleVmGroupParams), id) } @@ -701,7 +707,7 @@ func (m *MockAutoScaleServiceIface) NewEnableAutoScaleVmGroupParams(id string) * } // NewEnableAutoScaleVmGroupParams indicates an expected call of NewEnableAutoScaleVmGroupParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewEnableAutoScaleVmGroupParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewEnableAutoScaleVmGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableAutoScaleVmGroupParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewEnableAutoScaleVmGroupParams), id) } @@ -785,7 +791,7 @@ func (m *MockAutoScaleServiceIface) NewUpdateAutoScalePolicyParams(id string) *U } // NewUpdateAutoScalePolicyParams indicates an expected call of NewUpdateAutoScalePolicyParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateAutoScalePolicyParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateAutoScalePolicyParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateAutoScalePolicyParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewUpdateAutoScalePolicyParams), id) } @@ -799,7 +805,7 @@ func (m *MockAutoScaleServiceIface) NewUpdateAutoScaleVmGroupParams(id string) * } // NewUpdateAutoScaleVmGroupParams indicates an expected call of NewUpdateAutoScaleVmGroupParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateAutoScaleVmGroupParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateAutoScaleVmGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateAutoScaleVmGroupParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewUpdateAutoScaleVmGroupParams), id) } @@ -813,11 +819,25 @@ func (m *MockAutoScaleServiceIface) NewUpdateAutoScaleVmProfileParams(id string) } // NewUpdateAutoScaleVmProfileParams indicates an expected call of NewUpdateAutoScaleVmProfileParams. -func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateAutoScaleVmProfileParams(id interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateAutoScaleVmProfileParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateAutoScaleVmProfileParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewUpdateAutoScaleVmProfileParams), id) } +// NewUpdateConditionParams mocks base method. +func (m *MockAutoScaleServiceIface) NewUpdateConditionParams(id, relationaloperator string, threshold int64) *UpdateConditionParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateConditionParams", id, relationaloperator, threshold) + ret0, _ := ret[0].(*UpdateConditionParams) + return ret0 +} + +// NewUpdateConditionParams indicates an expected call of NewUpdateConditionParams. +func (mr *MockAutoScaleServiceIfaceMockRecorder) NewUpdateConditionParams(id, relationaloperator, threshold any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateConditionParams", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).NewUpdateConditionParams), id, relationaloperator, threshold) +} + // UpdateAutoScalePolicy mocks base method. func (m *MockAutoScaleServiceIface) UpdateAutoScalePolicy(p *UpdateAutoScalePolicyParams) (*UpdateAutoScalePolicyResponse, error) { m.ctrl.T.Helper() @@ -828,7 +848,7 @@ func (m *MockAutoScaleServiceIface) UpdateAutoScalePolicy(p *UpdateAutoScalePoli } // UpdateAutoScalePolicy indicates an expected call of UpdateAutoScalePolicy. -func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateAutoScalePolicy(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateAutoScalePolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAutoScalePolicy", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).UpdateAutoScalePolicy), p) } @@ -843,7 +863,7 @@ func (m *MockAutoScaleServiceIface) UpdateAutoScaleVmGroup(p *UpdateAutoScaleVmG } // UpdateAutoScaleVmGroup indicates an expected call of UpdateAutoScaleVmGroup. -func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateAutoScaleVmGroup(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateAutoScaleVmGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAutoScaleVmGroup", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).UpdateAutoScaleVmGroup), p) } @@ -858,7 +878,22 @@ func (m *MockAutoScaleServiceIface) UpdateAutoScaleVmProfile(p *UpdateAutoScaleV } // UpdateAutoScaleVmProfile indicates an expected call of UpdateAutoScaleVmProfile. -func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateAutoScaleVmProfile(p interface{}) *gomock.Call { +func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateAutoScaleVmProfile(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAutoScaleVmProfile", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).UpdateAutoScaleVmProfile), p) } + +// UpdateCondition mocks base method. +func (m *MockAutoScaleServiceIface) UpdateCondition(p *UpdateConditionParams) (*UpdateConditionResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateCondition", p) + ret0, _ := ret[0].(*UpdateConditionResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateCondition indicates an expected call of UpdateCondition. +func (mr *MockAutoScaleServiceIfaceMockRecorder) UpdateCondition(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCondition", reflect.TypeOf((*MockAutoScaleServiceIface)(nil).UpdateCondition), p) +} diff --git a/cloudstack/BGPPeerService.go b/cloudstack/BGPPeerService.go new file mode 100644 index 00000000..2947f441 --- /dev/null +++ b/cloudstack/BGPPeerService.go @@ -0,0 +1,1402 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" +) + +type BGPPeerServiceIface interface { + ChangeBgpPeersForVpc(p *ChangeBgpPeersForVpcParams) (*ChangeBgpPeersForVpcResponse, error) + NewChangeBgpPeersForVpcParams(vpcid string) *ChangeBgpPeersForVpcParams + CreateBgpPeer(p *CreateBgpPeerParams) (*CreateBgpPeerResponse, error) + NewCreateBgpPeerParams(asnumber int64, zoneid string) *CreateBgpPeerParams + DedicateBgpPeer(p *DedicateBgpPeerParams) (*DedicateBgpPeerResponse, error) + NewDedicateBgpPeerParams(id string) *DedicateBgpPeerParams + DeleteBgpPeer(p *DeleteBgpPeerParams) (*DeleteBgpPeerResponse, error) + NewDeleteBgpPeerParams(id string) *DeleteBgpPeerParams + ListBgpPeers(p *ListBgpPeersParams) (*ListBgpPeersResponse, error) + NewListBgpPeersParams() *ListBgpPeersParams + GetBgpPeerByID(id string, opts ...OptionFunc) (*BgpPeer, int, error) + ReleaseBgpPeer(p *ReleaseBgpPeerParams) (*ReleaseBgpPeerResponse, error) + NewReleaseBgpPeerParams(id string) *ReleaseBgpPeerParams + UpdateBgpPeer(p *UpdateBgpPeerParams) (*UpdateBgpPeerResponse, error) + NewUpdateBgpPeerParams(id string) *UpdateBgpPeerParams +} + +type ChangeBgpPeersForVpcParams struct { + p map[string]interface{} +} + +func (p *ChangeBgpPeersForVpcParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["bgppeerids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("bgppeerids", vv) + } + if v, found := p.p["vpcid"]; found { + u.Set("vpcid", v.(string)) + } + return u +} + +func (p *ChangeBgpPeersForVpcParams) SetBgppeerids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bgppeerids"] = v +} + +func (p *ChangeBgpPeersForVpcParams) ResetBgppeerids() { + if p.p != nil && p.p["bgppeerids"] != nil { + delete(p.p, "bgppeerids") + } +} + +func (p *ChangeBgpPeersForVpcParams) GetBgppeerids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bgppeerids"].([]string) + return value, ok +} + +func (p *ChangeBgpPeersForVpcParams) SetVpcid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vpcid"] = v +} + +func (p *ChangeBgpPeersForVpcParams) ResetVpcid() { + if p.p != nil && p.p["vpcid"] != nil { + delete(p.p, "vpcid") + } +} + +func (p *ChangeBgpPeersForVpcParams) GetVpcid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vpcid"].(string) + return value, ok +} + +// You should always use this function to get a new ChangeBgpPeersForVpcParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewChangeBgpPeersForVpcParams(vpcid string) *ChangeBgpPeersForVpcParams { + p := &ChangeBgpPeersForVpcParams{} + p.p = make(map[string]interface{}) + p.p["vpcid"] = vpcid + return p +} + +// Change the BGP peers for a VPC. +func (s *BGPPeerService) ChangeBgpPeersForVpc(p *ChangeBgpPeersForVpcParams) (*ChangeBgpPeersForVpcResponse, error) { + resp, err := s.cs.newRequest("changeBgpPeersForVpc", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ChangeBgpPeersForVpcResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ChangeBgpPeersForVpcResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type CreateBgpPeerParams struct { + p map[string]interface{} +} + +func (p *CreateBgpPeerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["asnumber"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("asnumber", 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["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["ip6address"]; found { + u.Set("ip6address", v.(string)) + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["password"]; found { + u.Set("password", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *CreateBgpPeerParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *CreateBgpPeerParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *CreateBgpPeerParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *CreateBgpPeerParams) SetAsnumber(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asnumber"] = v +} + +func (p *CreateBgpPeerParams) ResetAsnumber() { + if p.p != nil && p.p["asnumber"] != nil { + delete(p.p, "asnumber") + } +} + +func (p *CreateBgpPeerParams) GetAsnumber() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asnumber"].(int64) + return value, ok +} + +func (p *CreateBgpPeerParams) SetDetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *CreateBgpPeerParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *CreateBgpPeerParams) 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 *CreateBgpPeerParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *CreateBgpPeerParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *CreateBgpPeerParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *CreateBgpPeerParams) SetIp6address(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ip6address"] = v +} + +func (p *CreateBgpPeerParams) ResetIp6address() { + if p.p != nil && p.p["ip6address"] != nil { + delete(p.p, "ip6address") + } +} + +func (p *CreateBgpPeerParams) GetIp6address() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ip6address"].(string) + return value, ok +} + +func (p *CreateBgpPeerParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *CreateBgpPeerParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *CreateBgpPeerParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *CreateBgpPeerParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *CreateBgpPeerParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *CreateBgpPeerParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +func (p *CreateBgpPeerParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *CreateBgpPeerParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *CreateBgpPeerParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *CreateBgpPeerParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *CreateBgpPeerParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *CreateBgpPeerParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new CreateBgpPeerParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewCreateBgpPeerParams(asnumber int64, zoneid string) *CreateBgpPeerParams { + p := &CreateBgpPeerParams{} + p.p = make(map[string]interface{}) + p.p["asnumber"] = asnumber + p.p["zoneid"] = zoneid + return p +} + +// Creates a Bgp Peer for a zone. +func (s *BGPPeerService) CreateBgpPeer(p *CreateBgpPeerParams) (*CreateBgpPeerResponse, error) { + resp, err := s.cs.newRequest("createBgpPeer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateBgpPeerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateBgpPeerResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type DedicateBgpPeerParams struct { + p map[string]interface{} +} + +func (p *DedicateBgpPeerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + 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 *DedicateBgpPeerParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *DedicateBgpPeerParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *DedicateBgpPeerParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *DedicateBgpPeerParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *DedicateBgpPeerParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *DedicateBgpPeerParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *DedicateBgpPeerParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DedicateBgpPeerParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DedicateBgpPeerParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *DedicateBgpPeerParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *DedicateBgpPeerParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *DedicateBgpPeerParams) 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 DedicateBgpPeerParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewDedicateBgpPeerParams(id string) *DedicateBgpPeerParams { + p := &DedicateBgpPeerParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Dedicates an existing Bgp Peer to an account or a domain. +func (s *BGPPeerService) DedicateBgpPeer(p *DedicateBgpPeerParams) (*DedicateBgpPeerResponse, error) { + resp, err := s.cs.newRequest("dedicateBgpPeer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DedicateBgpPeerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DedicateBgpPeerResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type DeleteBgpPeerParams struct { + p map[string]interface{} +} + +func (p *DeleteBgpPeerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteBgpPeerParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteBgpPeerParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteBgpPeerParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteBgpPeerParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewDeleteBgpPeerParams(id string) *DeleteBgpPeerParams { + p := &DeleteBgpPeerParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes an existing Bgp Peer. +func (s *BGPPeerService) DeleteBgpPeer(p *DeleteBgpPeerParams) (*DeleteBgpPeerResponse, error) { + resp, err := s.cs.newRequest("deleteBgpPeer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteBgpPeerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteBgpPeerResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ListBgpPeersParams struct { + p map[string]interface{} +} + +func (p *ListBgpPeersParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["asnumber"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("asnumber", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["isdedicated"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isdedicated", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListBgpPeersParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListBgpPeersParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListBgpPeersParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListBgpPeersParams) SetAsnumber(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asnumber"] = v +} + +func (p *ListBgpPeersParams) ResetAsnumber() { + if p.p != nil && p.p["asnumber"] != nil { + delete(p.p, "asnumber") + } +} + +func (p *ListBgpPeersParams) GetAsnumber() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asnumber"].(int64) + return value, ok +} + +func (p *ListBgpPeersParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListBgpPeersParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListBgpPeersParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListBgpPeersParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListBgpPeersParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListBgpPeersParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListBgpPeersParams) SetIsdedicated(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isdedicated"] = v +} + +func (p *ListBgpPeersParams) ResetIsdedicated() { + if p.p != nil && p.p["isdedicated"] != nil { + delete(p.p, "isdedicated") + } +} + +func (p *ListBgpPeersParams) GetIsdedicated() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isdedicated"].(bool) + return value, ok +} + +func (p *ListBgpPeersParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListBgpPeersParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListBgpPeersParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListBgpPeersParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListBgpPeersParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListBgpPeersParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListBgpPeersParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListBgpPeersParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListBgpPeersParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListBgpPeersParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *ListBgpPeersParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *ListBgpPeersParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *ListBgpPeersParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListBgpPeersParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListBgpPeersParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListBgpPeersParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewListBgpPeersParams() *ListBgpPeersParams { + p := &ListBgpPeersParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *BGPPeerService) GetBgpPeerByID(id string, opts ...OptionFunc) (*BgpPeer, int, error) { + p := &ListBgpPeersParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListBgpPeers(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.BgpPeers[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for BgpPeer UUID: %s!", id) +} + +// Lists Bgp Peers. +func (s *BGPPeerService) ListBgpPeers(p *ListBgpPeersParams) (*ListBgpPeersResponse, error) { + resp, err := s.cs.newRequest("listBgpPeers", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListBgpPeersResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListBgpPeersResponse struct { + Count int `json:"count"` + BgpPeers []*BgpPeer `json:"bgppeer"` +} + +type BgpPeer struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ReleaseBgpPeerParams struct { + p map[string]interface{} +} + +func (p *ReleaseBgpPeerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *ReleaseBgpPeerParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ReleaseBgpPeerParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ReleaseBgpPeerParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new ReleaseBgpPeerParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewReleaseBgpPeerParams(id string) *ReleaseBgpPeerParams { + p := &ReleaseBgpPeerParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Releases an existing dedicated Bgp Peer. +func (s *BGPPeerService) ReleaseBgpPeer(p *ReleaseBgpPeerParams) (*ReleaseBgpPeerResponse, error) { + resp, err := s.cs.newRequest("releaseBgpPeer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ReleaseBgpPeerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ReleaseBgpPeerResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type UpdateBgpPeerParams struct { + p map[string]interface{} +} + +func (p *UpdateBgpPeerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["asnumber"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("asnumber", vv) + } + if v, found := p.p["cleanupdetails"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("cleanupdetails", 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["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ip6address"]; found { + u.Set("ip6address", v.(string)) + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["password"]; found { + u.Set("password", v.(string)) + } + return u +} + +func (p *UpdateBgpPeerParams) SetAsnumber(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asnumber"] = v +} + +func (p *UpdateBgpPeerParams) ResetAsnumber() { + if p.p != nil && p.p["asnumber"] != nil { + delete(p.p, "asnumber") + } +} + +func (p *UpdateBgpPeerParams) GetAsnumber() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asnumber"].(int64) + return value, ok +} + +func (p *UpdateBgpPeerParams) SetCleanupdetails(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cleanupdetails"] = v +} + +func (p *UpdateBgpPeerParams) ResetCleanupdetails() { + if p.p != nil && p.p["cleanupdetails"] != nil { + delete(p.p, "cleanupdetails") + } +} + +func (p *UpdateBgpPeerParams) GetCleanupdetails() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cleanupdetails"].(bool) + return value, ok +} + +func (p *UpdateBgpPeerParams) SetDetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *UpdateBgpPeerParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *UpdateBgpPeerParams) 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 *UpdateBgpPeerParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateBgpPeerParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateBgpPeerParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateBgpPeerParams) SetIp6address(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ip6address"] = v +} + +func (p *UpdateBgpPeerParams) ResetIp6address() { + if p.p != nil && p.p["ip6address"] != nil { + delete(p.p, "ip6address") + } +} + +func (p *UpdateBgpPeerParams) GetIp6address() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ip6address"].(string) + return value, ok +} + +func (p *UpdateBgpPeerParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *UpdateBgpPeerParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *UpdateBgpPeerParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *UpdateBgpPeerParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *UpdateBgpPeerParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *UpdateBgpPeerParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +// You should always use this function to get a new UpdateBgpPeerParams instance, +// as then you are sure you have configured all required params +func (s *BGPPeerService) NewUpdateBgpPeerParams(id string) *UpdateBgpPeerParams { + p := &UpdateBgpPeerParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Updates an existing Bgp Peer. +func (s *BGPPeerService) UpdateBgpPeer(p *UpdateBgpPeerParams) (*UpdateBgpPeerResponse, error) { + resp, err := s.cs.newRequest("updateBgpPeer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateBgpPeerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type UpdateBgpPeerResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} diff --git a/cloudstack/BGPPeerService_mock.go b/cloudstack/BGPPeerService_mock.go new file mode 100644 index 00000000..3eec37f8 --- /dev/null +++ b/cloudstack/BGPPeerService_mock.go @@ -0,0 +1,283 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/BGPPeerService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/BGPPeerService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/BGPPeerService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockBGPPeerServiceIface is a mock of BGPPeerServiceIface interface. +type MockBGPPeerServiceIface struct { + ctrl *gomock.Controller + recorder *MockBGPPeerServiceIfaceMockRecorder + isgomock struct{} +} + +// MockBGPPeerServiceIfaceMockRecorder is the mock recorder for MockBGPPeerServiceIface. +type MockBGPPeerServiceIfaceMockRecorder struct { + mock *MockBGPPeerServiceIface +} + +// NewMockBGPPeerServiceIface creates a new mock instance. +func NewMockBGPPeerServiceIface(ctrl *gomock.Controller) *MockBGPPeerServiceIface { + mock := &MockBGPPeerServiceIface{ctrl: ctrl} + mock.recorder = &MockBGPPeerServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockBGPPeerServiceIface) EXPECT() *MockBGPPeerServiceIfaceMockRecorder { + return m.recorder +} + +// ChangeBgpPeersForVpc mocks base method. +func (m *MockBGPPeerServiceIface) ChangeBgpPeersForVpc(p *ChangeBgpPeersForVpcParams) (*ChangeBgpPeersForVpcResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChangeBgpPeersForVpc", p) + ret0, _ := ret[0].(*ChangeBgpPeersForVpcResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ChangeBgpPeersForVpc indicates an expected call of ChangeBgpPeersForVpc. +func (mr *MockBGPPeerServiceIfaceMockRecorder) ChangeBgpPeersForVpc(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeBgpPeersForVpc", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).ChangeBgpPeersForVpc), p) +} + +// CreateBgpPeer mocks base method. +func (m *MockBGPPeerServiceIface) CreateBgpPeer(p *CreateBgpPeerParams) (*CreateBgpPeerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateBgpPeer", p) + ret0, _ := ret[0].(*CreateBgpPeerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateBgpPeer indicates an expected call of CreateBgpPeer. +func (mr *MockBGPPeerServiceIfaceMockRecorder) CreateBgpPeer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBgpPeer", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).CreateBgpPeer), p) +} + +// DedicateBgpPeer mocks base method. +func (m *MockBGPPeerServiceIface) DedicateBgpPeer(p *DedicateBgpPeerParams) (*DedicateBgpPeerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DedicateBgpPeer", p) + ret0, _ := ret[0].(*DedicateBgpPeerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DedicateBgpPeer indicates an expected call of DedicateBgpPeer. +func (mr *MockBGPPeerServiceIfaceMockRecorder) DedicateBgpPeer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicateBgpPeer", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).DedicateBgpPeer), p) +} + +// DeleteBgpPeer mocks base method. +func (m *MockBGPPeerServiceIface) DeleteBgpPeer(p *DeleteBgpPeerParams) (*DeleteBgpPeerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteBgpPeer", p) + ret0, _ := ret[0].(*DeleteBgpPeerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteBgpPeer indicates an expected call of DeleteBgpPeer. +func (mr *MockBGPPeerServiceIfaceMockRecorder) DeleteBgpPeer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBgpPeer", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).DeleteBgpPeer), p) +} + +// GetBgpPeerByID mocks base method. +func (m *MockBGPPeerServiceIface) GetBgpPeerByID(id string, opts ...OptionFunc) (*BgpPeer, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetBgpPeerByID", varargs...) + ret0, _ := ret[0].(*BgpPeer) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetBgpPeerByID indicates an expected call of GetBgpPeerByID. +func (mr *MockBGPPeerServiceIfaceMockRecorder) GetBgpPeerByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBgpPeerByID", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).GetBgpPeerByID), varargs...) +} + +// ListBgpPeers mocks base method. +func (m *MockBGPPeerServiceIface) ListBgpPeers(p *ListBgpPeersParams) (*ListBgpPeersResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListBgpPeers", p) + ret0, _ := ret[0].(*ListBgpPeersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListBgpPeers indicates an expected call of ListBgpPeers. +func (mr *MockBGPPeerServiceIfaceMockRecorder) ListBgpPeers(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBgpPeers", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).ListBgpPeers), p) +} + +// NewChangeBgpPeersForVpcParams mocks base method. +func (m *MockBGPPeerServiceIface) NewChangeBgpPeersForVpcParams(vpcid string) *ChangeBgpPeersForVpcParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewChangeBgpPeersForVpcParams", vpcid) + ret0, _ := ret[0].(*ChangeBgpPeersForVpcParams) + return ret0 +} + +// NewChangeBgpPeersForVpcParams indicates an expected call of NewChangeBgpPeersForVpcParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewChangeBgpPeersForVpcParams(vpcid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeBgpPeersForVpcParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewChangeBgpPeersForVpcParams), vpcid) +} + +// NewCreateBgpPeerParams mocks base method. +func (m *MockBGPPeerServiceIface) NewCreateBgpPeerParams(asnumber int64, zoneid string) *CreateBgpPeerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateBgpPeerParams", asnumber, zoneid) + ret0, _ := ret[0].(*CreateBgpPeerParams) + return ret0 +} + +// NewCreateBgpPeerParams indicates an expected call of NewCreateBgpPeerParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewCreateBgpPeerParams(asnumber, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateBgpPeerParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewCreateBgpPeerParams), asnumber, zoneid) +} + +// NewDedicateBgpPeerParams mocks base method. +func (m *MockBGPPeerServiceIface) NewDedicateBgpPeerParams(id string) *DedicateBgpPeerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDedicateBgpPeerParams", id) + ret0, _ := ret[0].(*DedicateBgpPeerParams) + return ret0 +} + +// NewDedicateBgpPeerParams indicates an expected call of NewDedicateBgpPeerParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewDedicateBgpPeerParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicateBgpPeerParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewDedicateBgpPeerParams), id) +} + +// NewDeleteBgpPeerParams mocks base method. +func (m *MockBGPPeerServiceIface) NewDeleteBgpPeerParams(id string) *DeleteBgpPeerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteBgpPeerParams", id) + ret0, _ := ret[0].(*DeleteBgpPeerParams) + return ret0 +} + +// NewDeleteBgpPeerParams indicates an expected call of NewDeleteBgpPeerParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewDeleteBgpPeerParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteBgpPeerParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewDeleteBgpPeerParams), id) +} + +// NewListBgpPeersParams mocks base method. +func (m *MockBGPPeerServiceIface) NewListBgpPeersParams() *ListBgpPeersParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListBgpPeersParams") + ret0, _ := ret[0].(*ListBgpPeersParams) + return ret0 +} + +// NewListBgpPeersParams indicates an expected call of NewListBgpPeersParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewListBgpPeersParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListBgpPeersParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewListBgpPeersParams)) +} + +// NewReleaseBgpPeerParams mocks base method. +func (m *MockBGPPeerServiceIface) NewReleaseBgpPeerParams(id string) *ReleaseBgpPeerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewReleaseBgpPeerParams", id) + ret0, _ := ret[0].(*ReleaseBgpPeerParams) + return ret0 +} + +// NewReleaseBgpPeerParams indicates an expected call of NewReleaseBgpPeerParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewReleaseBgpPeerParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseBgpPeerParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewReleaseBgpPeerParams), id) +} + +// NewUpdateBgpPeerParams mocks base method. +func (m *MockBGPPeerServiceIface) NewUpdateBgpPeerParams(id string) *UpdateBgpPeerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateBgpPeerParams", id) + ret0, _ := ret[0].(*UpdateBgpPeerParams) + return ret0 +} + +// NewUpdateBgpPeerParams indicates an expected call of NewUpdateBgpPeerParams. +func (mr *MockBGPPeerServiceIfaceMockRecorder) NewUpdateBgpPeerParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateBgpPeerParams", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).NewUpdateBgpPeerParams), id) +} + +// ReleaseBgpPeer mocks base method. +func (m *MockBGPPeerServiceIface) ReleaseBgpPeer(p *ReleaseBgpPeerParams) (*ReleaseBgpPeerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReleaseBgpPeer", p) + ret0, _ := ret[0].(*ReleaseBgpPeerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReleaseBgpPeer indicates an expected call of ReleaseBgpPeer. +func (mr *MockBGPPeerServiceIfaceMockRecorder) ReleaseBgpPeer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseBgpPeer", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).ReleaseBgpPeer), p) +} + +// UpdateBgpPeer mocks base method. +func (m *MockBGPPeerServiceIface) UpdateBgpPeer(p *UpdateBgpPeerParams) (*UpdateBgpPeerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateBgpPeer", p) + ret0, _ := ret[0].(*UpdateBgpPeerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateBgpPeer indicates an expected call of UpdateBgpPeer. +func (mr *MockBGPPeerServiceIfaceMockRecorder) UpdateBgpPeer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBgpPeer", reflect.TypeOf((*MockBGPPeerServiceIface)(nil).UpdateBgpPeer), p) +} diff --git a/cloudstack/BaremetalService_mock.go b/cloudstack/BaremetalService_mock.go index eb2dbe10..546ad8a2 100644 --- a/cloudstack/BaremetalService_mock.go +++ b/cloudstack/BaremetalService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/BaremetalService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/BaremetalService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/BaremetalService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockBaremetalServiceIface is a mock of BaremetalServiceIface interface. type MockBaremetalServiceIface struct { ctrl *gomock.Controller recorder *MockBaremetalServiceIfaceMockRecorder + isgomock struct{} } // MockBaremetalServiceIfaceMockRecorder is the mock recorder for MockBaremetalServiceIface. @@ -62,7 +68,7 @@ func (m *MockBaremetalServiceIface) AddBaremetalDhcp(p *AddBaremetalDhcpParams) } // AddBaremetalDhcp indicates an expected call of AddBaremetalDhcp. -func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalDhcp(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalDhcp(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBaremetalDhcp", reflect.TypeOf((*MockBaremetalServiceIface)(nil).AddBaremetalDhcp), p) } @@ -77,7 +83,7 @@ func (m *MockBaremetalServiceIface) AddBaremetalPxeKickStartServer(p *AddBaremet } // AddBaremetalPxeKickStartServer indicates an expected call of AddBaremetalPxeKickStartServer. -func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalPxeKickStartServer(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalPxeKickStartServer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBaremetalPxeKickStartServer", reflect.TypeOf((*MockBaremetalServiceIface)(nil).AddBaremetalPxeKickStartServer), p) } @@ -92,7 +98,7 @@ func (m *MockBaremetalServiceIface) AddBaremetalPxePingServer(p *AddBaremetalPxe } // AddBaremetalPxePingServer indicates an expected call of AddBaremetalPxePingServer. -func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalPxePingServer(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalPxePingServer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBaremetalPxePingServer", reflect.TypeOf((*MockBaremetalServiceIface)(nil).AddBaremetalPxePingServer), p) } @@ -107,7 +113,7 @@ func (m *MockBaremetalServiceIface) AddBaremetalRct(p *AddBaremetalRctParams) (* } // AddBaremetalRct indicates an expected call of AddBaremetalRct. -func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalRct(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) AddBaremetalRct(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBaremetalRct", reflect.TypeOf((*MockBaremetalServiceIface)(nil).AddBaremetalRct), p) } @@ -122,7 +128,7 @@ func (m *MockBaremetalServiceIface) DeleteBaremetalRct(p *DeleteBaremetalRctPara } // DeleteBaremetalRct indicates an expected call of DeleteBaremetalRct. -func (mr *MockBaremetalServiceIfaceMockRecorder) DeleteBaremetalRct(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) DeleteBaremetalRct(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBaremetalRct", reflect.TypeOf((*MockBaremetalServiceIface)(nil).DeleteBaremetalRct), p) } @@ -137,7 +143,7 @@ func (m *MockBaremetalServiceIface) ListBaremetalDhcp(p *ListBaremetalDhcpParams } // ListBaremetalDhcp indicates an expected call of ListBaremetalDhcp. -func (mr *MockBaremetalServiceIfaceMockRecorder) ListBaremetalDhcp(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) ListBaremetalDhcp(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBaremetalDhcp", reflect.TypeOf((*MockBaremetalServiceIface)(nil).ListBaremetalDhcp), p) } @@ -152,7 +158,7 @@ func (m *MockBaremetalServiceIface) ListBaremetalPxeServers(p *ListBaremetalPxeS } // ListBaremetalPxeServers indicates an expected call of ListBaremetalPxeServers. -func (mr *MockBaremetalServiceIfaceMockRecorder) ListBaremetalPxeServers(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) ListBaremetalPxeServers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBaremetalPxeServers", reflect.TypeOf((*MockBaremetalServiceIface)(nil).ListBaremetalPxeServers), p) } @@ -167,7 +173,7 @@ func (m *MockBaremetalServiceIface) ListBaremetalRct(p *ListBaremetalRctParams) } // ListBaremetalRct indicates an expected call of ListBaremetalRct. -func (mr *MockBaremetalServiceIfaceMockRecorder) ListBaremetalRct(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) ListBaremetalRct(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBaremetalRct", reflect.TypeOf((*MockBaremetalServiceIface)(nil).ListBaremetalRct), p) } @@ -181,7 +187,7 @@ func (m *MockBaremetalServiceIface) NewAddBaremetalDhcpParams(dhcpservertype, pa } // NewAddBaremetalDhcpParams indicates an expected call of NewAddBaremetalDhcpParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalDhcpParams(dhcpservertype, password, physicalnetworkid, url, username interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalDhcpParams(dhcpservertype, password, physicalnetworkid, url, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalDhcpParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewAddBaremetalDhcpParams), dhcpservertype, password, physicalnetworkid, url, username) } @@ -195,7 +201,7 @@ func (m *MockBaremetalServiceIface) NewAddBaremetalPxeKickStartServerParams(pass } // NewAddBaremetalPxeKickStartServerParams indicates an expected call of NewAddBaremetalPxeKickStartServerParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalPxeKickStartServerParams(password, physicalnetworkid, pxeservertype, tftpdir, url, username interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalPxeKickStartServerParams(password, physicalnetworkid, pxeservertype, tftpdir, url, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalPxeKickStartServerParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewAddBaremetalPxeKickStartServerParams), password, physicalnetworkid, pxeservertype, tftpdir, url, username) } @@ -209,7 +215,7 @@ func (m *MockBaremetalServiceIface) NewAddBaremetalPxePingServerParams(password, } // NewAddBaremetalPxePingServerParams indicates an expected call of NewAddBaremetalPxePingServerParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalPxePingServerParams(password, physicalnetworkid, pingdir, pingstorageserverip, pxeservertype, tftpdir, url, username interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalPxePingServerParams(password, physicalnetworkid, pingdir, pingstorageserverip, pxeservertype, tftpdir, url, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalPxePingServerParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewAddBaremetalPxePingServerParams), password, physicalnetworkid, pingdir, pingstorageserverip, pxeservertype, tftpdir, url, username) } @@ -223,7 +229,7 @@ func (m *MockBaremetalServiceIface) NewAddBaremetalRctParams(baremetalrcturl str } // NewAddBaremetalRctParams indicates an expected call of NewAddBaremetalRctParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalRctParams(baremetalrcturl interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewAddBaremetalRctParams(baremetalrcturl any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalRctParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewAddBaremetalRctParams), baremetalrcturl) } @@ -237,7 +243,7 @@ func (m *MockBaremetalServiceIface) NewDeleteBaremetalRctParams(id string) *Dele } // NewDeleteBaremetalRctParams indicates an expected call of NewDeleteBaremetalRctParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewDeleteBaremetalRctParams(id interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewDeleteBaremetalRctParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteBaremetalRctParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewDeleteBaremetalRctParams), id) } @@ -251,7 +257,7 @@ func (m *MockBaremetalServiceIface) NewListBaremetalDhcpParams(physicalnetworkid } // NewListBaremetalDhcpParams indicates an expected call of NewListBaremetalDhcpParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewListBaremetalDhcpParams(physicalnetworkid interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewListBaremetalDhcpParams(physicalnetworkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListBaremetalDhcpParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewListBaremetalDhcpParams), physicalnetworkid) } @@ -265,7 +271,7 @@ func (m *MockBaremetalServiceIface) NewListBaremetalPxeServersParams(physicalnet } // NewListBaremetalPxeServersParams indicates an expected call of NewListBaremetalPxeServersParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewListBaremetalPxeServersParams(physicalnetworkid interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewListBaremetalPxeServersParams(physicalnetworkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListBaremetalPxeServersParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewListBaremetalPxeServersParams), physicalnetworkid) } @@ -293,7 +299,7 @@ func (m *MockBaremetalServiceIface) NewNotifyBaremetalProvisionDoneParams(mac st } // NewNotifyBaremetalProvisionDoneParams indicates an expected call of NewNotifyBaremetalProvisionDoneParams. -func (mr *MockBaremetalServiceIfaceMockRecorder) NewNotifyBaremetalProvisionDoneParams(mac interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NewNotifyBaremetalProvisionDoneParams(mac any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewNotifyBaremetalProvisionDoneParams", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NewNotifyBaremetalProvisionDoneParams), mac) } @@ -308,7 +314,7 @@ func (m *MockBaremetalServiceIface) NotifyBaremetalProvisionDone(p *NotifyBareme } // NotifyBaremetalProvisionDone indicates an expected call of NotifyBaremetalProvisionDone. -func (mr *MockBaremetalServiceIfaceMockRecorder) NotifyBaremetalProvisionDone(p interface{}) *gomock.Call { +func (mr *MockBaremetalServiceIfaceMockRecorder) NotifyBaremetalProvisionDone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyBaremetalProvisionDone", reflect.TypeOf((*MockBaremetalServiceIface)(nil).NotifyBaremetalProvisionDone), p) } diff --git a/cloudstack/BigSwitchBCFService_mock.go b/cloudstack/BigSwitchBCFService_mock.go index 77a6235b..5273f33f 100644 --- a/cloudstack/BigSwitchBCFService_mock.go +++ b/cloudstack/BigSwitchBCFService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/BigSwitchBCFService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/BigSwitchBCFService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/BigSwitchBCFService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockBigSwitchBCFServiceIface is a mock of BigSwitchBCFServiceIface interface. type MockBigSwitchBCFServiceIface struct { ctrl *gomock.Controller recorder *MockBigSwitchBCFServiceIfaceMockRecorder + isgomock struct{} } // MockBigSwitchBCFServiceIfaceMockRecorder is the mock recorder for MockBigSwitchBCFServiceIface. @@ -62,7 +68,7 @@ func (m *MockBigSwitchBCFServiceIface) AddBigSwitchBcfDevice(p *AddBigSwitchBcfD } // AddBigSwitchBcfDevice indicates an expected call of AddBigSwitchBcfDevice. -func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) AddBigSwitchBcfDevice(p interface{}) *gomock.Call { +func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) AddBigSwitchBcfDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBigSwitchBcfDevice", reflect.TypeOf((*MockBigSwitchBCFServiceIface)(nil).AddBigSwitchBcfDevice), p) } @@ -77,7 +83,7 @@ func (m *MockBigSwitchBCFServiceIface) DeleteBigSwitchBcfDevice(p *DeleteBigSwit } // DeleteBigSwitchBcfDevice indicates an expected call of DeleteBigSwitchBcfDevice. -func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) DeleteBigSwitchBcfDevice(p interface{}) *gomock.Call { +func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) DeleteBigSwitchBcfDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBigSwitchBcfDevice", reflect.TypeOf((*MockBigSwitchBCFServiceIface)(nil).DeleteBigSwitchBcfDevice), p) } @@ -92,7 +98,7 @@ func (m *MockBigSwitchBCFServiceIface) ListBigSwitchBcfDevices(p *ListBigSwitchB } // ListBigSwitchBcfDevices indicates an expected call of ListBigSwitchBcfDevices. -func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) ListBigSwitchBcfDevices(p interface{}) *gomock.Call { +func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) ListBigSwitchBcfDevices(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBigSwitchBcfDevices", reflect.TypeOf((*MockBigSwitchBCFServiceIface)(nil).ListBigSwitchBcfDevices), p) } @@ -106,7 +112,7 @@ func (m *MockBigSwitchBCFServiceIface) NewAddBigSwitchBcfDeviceParams(hostname s } // NewAddBigSwitchBcfDeviceParams indicates an expected call of NewAddBigSwitchBcfDeviceParams. -func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) NewAddBigSwitchBcfDeviceParams(hostname, nat, password, physicalnetworkid, username interface{}) *gomock.Call { +func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) NewAddBigSwitchBcfDeviceParams(hostname, nat, password, physicalnetworkid, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBigSwitchBcfDeviceParams", reflect.TypeOf((*MockBigSwitchBCFServiceIface)(nil).NewAddBigSwitchBcfDeviceParams), hostname, nat, password, physicalnetworkid, username) } @@ -120,7 +126,7 @@ func (m *MockBigSwitchBCFServiceIface) NewDeleteBigSwitchBcfDeviceParams(bcfdevi } // NewDeleteBigSwitchBcfDeviceParams indicates an expected call of NewDeleteBigSwitchBcfDeviceParams. -func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) NewDeleteBigSwitchBcfDeviceParams(bcfdeviceid interface{}) *gomock.Call { +func (mr *MockBigSwitchBCFServiceIfaceMockRecorder) NewDeleteBigSwitchBcfDeviceParams(bcfdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteBigSwitchBcfDeviceParams", reflect.TypeOf((*MockBigSwitchBCFServiceIface)(nil).NewDeleteBigSwitchBcfDeviceParams), bcfdeviceid) } diff --git a/cloudstack/BrocadeVCSService_mock.go b/cloudstack/BrocadeVCSService_mock.go index 09d00c39..4be2a617 100644 --- a/cloudstack/BrocadeVCSService_mock.go +++ b/cloudstack/BrocadeVCSService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/BrocadeVCSService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/BrocadeVCSService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/BrocadeVCSService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockBrocadeVCSServiceIface is a mock of BrocadeVCSServiceIface interface. type MockBrocadeVCSServiceIface struct { ctrl *gomock.Controller recorder *MockBrocadeVCSServiceIfaceMockRecorder + isgomock struct{} } // MockBrocadeVCSServiceIfaceMockRecorder is the mock recorder for MockBrocadeVCSServiceIface. @@ -62,7 +68,7 @@ func (m *MockBrocadeVCSServiceIface) AddBrocadeVcsDevice(p *AddBrocadeVcsDeviceP } // AddBrocadeVcsDevice indicates an expected call of AddBrocadeVcsDevice. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) AddBrocadeVcsDevice(p interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) AddBrocadeVcsDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBrocadeVcsDevice", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).AddBrocadeVcsDevice), p) } @@ -77,7 +83,7 @@ func (m *MockBrocadeVCSServiceIface) DeleteBrocadeVcsDevice(p *DeleteBrocadeVcsD } // DeleteBrocadeVcsDevice indicates an expected call of DeleteBrocadeVcsDevice. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) DeleteBrocadeVcsDevice(p interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) DeleteBrocadeVcsDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBrocadeVcsDevice", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).DeleteBrocadeVcsDevice), p) } @@ -85,7 +91,7 @@ func (mr *MockBrocadeVCSServiceIfaceMockRecorder) DeleteBrocadeVcsDevice(p inter // GetBrocadeVcsDeviceNetworkID mocks base method. func (m *MockBrocadeVCSServiceIface) GetBrocadeVcsDeviceNetworkID(keyword, vcsdeviceid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, vcsdeviceid} + varargs := []any{keyword, vcsdeviceid} for _, a := range opts { varargs = append(varargs, a) } @@ -97,9 +103,9 @@ func (m *MockBrocadeVCSServiceIface) GetBrocadeVcsDeviceNetworkID(keyword, vcsde } // GetBrocadeVcsDeviceNetworkID indicates an expected call of GetBrocadeVcsDeviceNetworkID. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) GetBrocadeVcsDeviceNetworkID(keyword, vcsdeviceid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) GetBrocadeVcsDeviceNetworkID(keyword, vcsdeviceid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, vcsdeviceid}, opts...) + varargs := append([]any{keyword, vcsdeviceid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBrocadeVcsDeviceNetworkID", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).GetBrocadeVcsDeviceNetworkID), varargs...) } @@ -113,7 +119,7 @@ func (m *MockBrocadeVCSServiceIface) ListBrocadeVcsDeviceNetworks(p *ListBrocade } // ListBrocadeVcsDeviceNetworks indicates an expected call of ListBrocadeVcsDeviceNetworks. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) ListBrocadeVcsDeviceNetworks(p interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) ListBrocadeVcsDeviceNetworks(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBrocadeVcsDeviceNetworks", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).ListBrocadeVcsDeviceNetworks), p) } @@ -128,7 +134,7 @@ func (m *MockBrocadeVCSServiceIface) ListBrocadeVcsDevices(p *ListBrocadeVcsDevi } // ListBrocadeVcsDevices indicates an expected call of ListBrocadeVcsDevices. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) ListBrocadeVcsDevices(p interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) ListBrocadeVcsDevices(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBrocadeVcsDevices", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).ListBrocadeVcsDevices), p) } @@ -142,7 +148,7 @@ func (m *MockBrocadeVCSServiceIface) NewAddBrocadeVcsDeviceParams(hostname, pass } // NewAddBrocadeVcsDeviceParams indicates an expected call of NewAddBrocadeVcsDeviceParams. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) NewAddBrocadeVcsDeviceParams(hostname, password, physicalnetworkid, username interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) NewAddBrocadeVcsDeviceParams(hostname, password, physicalnetworkid, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBrocadeVcsDeviceParams", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).NewAddBrocadeVcsDeviceParams), hostname, password, physicalnetworkid, username) } @@ -156,7 +162,7 @@ func (m *MockBrocadeVCSServiceIface) NewDeleteBrocadeVcsDeviceParams(vcsdeviceid } // NewDeleteBrocadeVcsDeviceParams indicates an expected call of NewDeleteBrocadeVcsDeviceParams. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) NewDeleteBrocadeVcsDeviceParams(vcsdeviceid interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) NewDeleteBrocadeVcsDeviceParams(vcsdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteBrocadeVcsDeviceParams", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).NewDeleteBrocadeVcsDeviceParams), vcsdeviceid) } @@ -170,7 +176,7 @@ func (m *MockBrocadeVCSServiceIface) NewListBrocadeVcsDeviceNetworksParams(vcsde } // NewListBrocadeVcsDeviceNetworksParams indicates an expected call of NewListBrocadeVcsDeviceNetworksParams. -func (mr *MockBrocadeVCSServiceIfaceMockRecorder) NewListBrocadeVcsDeviceNetworksParams(vcsdeviceid interface{}) *gomock.Call { +func (mr *MockBrocadeVCSServiceIfaceMockRecorder) NewListBrocadeVcsDeviceNetworksParams(vcsdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListBrocadeVcsDeviceNetworksParams", reflect.TypeOf((*MockBrocadeVCSServiceIface)(nil).NewListBrocadeVcsDeviceNetworksParams), vcsdeviceid) } diff --git a/cloudstack/CertificateService.go b/cloudstack/CertificateService.go index e0a3dd7a..e959a15f 100644 --- a/cloudstack/CertificateService.go +++ b/cloudstack/CertificateService.go @@ -21,17 +21,1117 @@ package cloudstack import ( "encoding/json" + "fmt" "net/url" "strconv" + "strings" ) type CertificateServiceIface interface { - UploadCustomCertificate(p *UploadCustomCertificateParams) (*UploadCustomCertificateResponse, error) - NewUploadCustomCertificateParams(certificate string, domainsuffix string) *UploadCustomCertificateParams + IssueCertificate(p *IssueCertificateParams) (*IssueCertificateResponse, error) + NewIssueCertificateParams() *IssueCertificateParams ListCAProviders(p *ListCAProvidersParams) (*ListCAProvidersResponse, error) NewListCAProvidersParams() *ListCAProvidersParams + ListCaCertificate(p *ListCaCertificateParams) (*ListCaCertificateResponse, error) + NewListCaCertificateParams() *ListCaCertificateParams + ListTemplateDirectDownloadCertificates(p *ListTemplateDirectDownloadCertificatesParams) (*ListTemplateDirectDownloadCertificatesResponse, error) + NewListTemplateDirectDownloadCertificatesParams() *ListTemplateDirectDownloadCertificatesParams + GetTemplateDirectDownloadCertificateByID(id string, opts ...OptionFunc) (*TemplateDirectDownloadCertificate, int, error) ProvisionCertificate(p *ProvisionCertificateParams) (*ProvisionCertificateResponse, error) NewProvisionCertificateParams(hostid string) *ProvisionCertificateParams + ProvisionTemplateDirectDownloadCertificate(p *ProvisionTemplateDirectDownloadCertificateParams) (*ProvisionTemplateDirectDownloadCertificateResponse, error) + NewProvisionTemplateDirectDownloadCertificateParams(hostid string, id string) *ProvisionTemplateDirectDownloadCertificateParams + RevokeCertificate(p *RevokeCertificateParams) (*RevokeCertificateResponse, error) + NewRevokeCertificateParams(serial string) *RevokeCertificateParams + RevokeTemplateDirectDownloadCertificate(p *RevokeTemplateDirectDownloadCertificateParams) (*RevokeTemplateDirectDownloadCertificateResponse, error) + NewRevokeTemplateDirectDownloadCertificateParams(zoneid string) *RevokeTemplateDirectDownloadCertificateParams + UploadCustomCertificate(p *UploadCustomCertificateParams) (*UploadCustomCertificateResponse, error) + NewUploadCustomCertificateParams(certificate string, domainsuffix string) *UploadCustomCertificateParams + UploadTemplateDirectDownloadCertificate(p *UploadTemplateDirectDownloadCertificateParams) (*UploadTemplateDirectDownloadCertificateResponse, error) + NewUploadTemplateDirectDownloadCertificateParams(certificate string, hypervisor string, name string, zoneid string) *UploadTemplateDirectDownloadCertificateParams +} + +type IssueCertificateParams struct { + p map[string]interface{} +} + +func (p *IssueCertificateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["csr"]; found { + u.Set("csr", v.(string)) + } + if v, found := p.p["domain"]; found { + u.Set("domain", v.(string)) + } + if v, found := p.p["duration"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("duration", vv) + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + return u +} + +func (p *IssueCertificateParams) SetCsr(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["csr"] = v +} + +func (p *IssueCertificateParams) ResetCsr() { + if p.p != nil && p.p["csr"] != nil { + delete(p.p, "csr") + } +} + +func (p *IssueCertificateParams) GetCsr() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["csr"].(string) + return value, ok +} + +func (p *IssueCertificateParams) SetDomain(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domain"] = v +} + +func (p *IssueCertificateParams) ResetDomain() { + if p.p != nil && p.p["domain"] != nil { + delete(p.p, "domain") + } +} + +func (p *IssueCertificateParams) GetDomain() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domain"].(string) + return value, ok +} + +func (p *IssueCertificateParams) SetDuration(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["duration"] = v +} + +func (p *IssueCertificateParams) ResetDuration() { + if p.p != nil && p.p["duration"] != nil { + delete(p.p, "duration") + } +} + +func (p *IssueCertificateParams) GetDuration() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["duration"].(int) + return value, ok +} + +func (p *IssueCertificateParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *IssueCertificateParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *IssueCertificateParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *IssueCertificateParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *IssueCertificateParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *IssueCertificateParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +// You should always use this function to get a new IssueCertificateParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewIssueCertificateParams() *IssueCertificateParams { + p := &IssueCertificateParams{} + p.p = make(map[string]interface{}) + return p +} + +// Issues a client certificate using configured or provided CA plugin +func (s *CertificateService) IssueCertificate(p *IssueCertificateParams) (*IssueCertificateResponse, error) { + resp, err := s.cs.newRequest("issueCertificate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r IssueCertificateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type IssueCertificateResponse struct { + Cacertificates string `json:"cacertificates"` + Certificate string `json:"certificate"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Privatekey string `json:"privatekey"` +} + +type ListCAProvidersParams struct { + p map[string]interface{} +} + +func (p *ListCAProvidersParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + return u +} + +func (p *ListCAProvidersParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListCAProvidersParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListCAProvidersParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +// You should always use this function to get a new ListCAProvidersParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewListCAProvidersParams() *ListCAProvidersParams { + p := &ListCAProvidersParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists available certificate authority providers in CloudStack +func (s *CertificateService) ListCAProviders(p *ListCAProvidersParams) (*ListCAProvidersResponse, error) { + resp, err := s.cs.newRequest("listCAProviders", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListCAProvidersResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListCAProvidersResponse struct { + Count int `json:"count"` + CAProviders []*CAProvider `json:"caprovider"` +} + +type CAProvider struct { + Description string `json:"description"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` +} + +type ListCaCertificateParams struct { + p map[string]interface{} +} + +func (p *ListCaCertificateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + return u +} + +func (p *ListCaCertificateParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *ListCaCertificateParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *ListCaCertificateParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +// You should always use this function to get a new ListCaCertificateParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewListCaCertificateParams() *ListCaCertificateParams { + p := &ListCaCertificateParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists the CA public certificate(s) as support by the configured/provided CA plugin +func (s *CertificateService) ListCaCertificate(p *ListCaCertificateParams) (*ListCaCertificateResponse, error) { + resp, err := s.cs.newRequest("listCaCertificate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListCaCertificateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListCaCertificateResponse struct { + Count int `json:"count"` + CaCertificate []*CaCertificate `json:"cacertificate"` +} + +type CaCertificate struct { + Cacertificates string `json:"cacertificates"` + Certificate string `json:"certificate"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Privatekey string `json:"privatekey"` +} + +type ListTemplateDirectDownloadCertificatesParams struct { + p map[string]interface{} +} + +func (p *ListTemplateDirectDownloadCertificatesParams) 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["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listhosts"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listhosts", vv) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListTemplateDirectDownloadCertificatesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListTemplateDirectDownloadCertificatesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListTemplateDirectDownloadCertificatesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListTemplateDirectDownloadCertificatesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListTemplateDirectDownloadCertificatesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListTemplateDirectDownloadCertificatesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListTemplateDirectDownloadCertificatesParams) SetListhosts(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listhosts"] = v +} + +func (p *ListTemplateDirectDownloadCertificatesParams) ResetListhosts() { + if p.p != nil && p.p["listhosts"] != nil { + delete(p.p, "listhosts") + } +} + +func (p *ListTemplateDirectDownloadCertificatesParams) GetListhosts() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listhosts"].(bool) + return value, ok +} + +func (p *ListTemplateDirectDownloadCertificatesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListTemplateDirectDownloadCertificatesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListTemplateDirectDownloadCertificatesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListTemplateDirectDownloadCertificatesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListTemplateDirectDownloadCertificatesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListTemplateDirectDownloadCertificatesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListTemplateDirectDownloadCertificatesParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListTemplateDirectDownloadCertificatesParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListTemplateDirectDownloadCertificatesParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListTemplateDirectDownloadCertificatesParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewListTemplateDirectDownloadCertificatesParams() *ListTemplateDirectDownloadCertificatesParams { + p := &ListTemplateDirectDownloadCertificatesParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *CertificateService) GetTemplateDirectDownloadCertificateByID(id string, opts ...OptionFunc) (*TemplateDirectDownloadCertificate, int, error) { + p := &ListTemplateDirectDownloadCertificatesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListTemplateDirectDownloadCertificates(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.TemplateDirectDownloadCertificates[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for TemplateDirectDownloadCertificate UUID: %s!", id) +} + +// List the uploaded certificates for direct download templates +func (s *CertificateService) ListTemplateDirectDownloadCertificates(p *ListTemplateDirectDownloadCertificatesParams) (*ListTemplateDirectDownloadCertificatesResponse, error) { + resp, err := s.cs.newRequest("listTemplateDirectDownloadCertificates", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListTemplateDirectDownloadCertificatesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListTemplateDirectDownloadCertificatesResponse struct { + Count int `json:"count"` + TemplateDirectDownloadCertificates []*TemplateDirectDownloadCertificate `json:"templatedirectdownloadcertificate"` +} + +type TemplateDirectDownloadCertificate struct { + Alias string `json:"alias"` + Hostsmap []string `json:"hostsmap"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Issuer string `json:"issuer"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Serialnum string `json:"serialnum"` + Subject string `json:"subject"` + Validity string `json:"validity"` + Version string `json:"version"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ProvisionCertificateParams struct { + p map[string]interface{} +} + +func (p *ProvisionCertificateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + if v, found := p.p["reconnect"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("reconnect", vv) + } + return u +} + +func (p *ProvisionCertificateParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostid"] = v +} + +func (p *ProvisionCertificateParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } +} + +func (p *ProvisionCertificateParams) GetHostid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostid"].(string) + return value, ok +} + +func (p *ProvisionCertificateParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *ProvisionCertificateParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *ProvisionCertificateParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +func (p *ProvisionCertificateParams) SetReconnect(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["reconnect"] = v +} + +func (p *ProvisionCertificateParams) ResetReconnect() { + if p.p != nil && p.p["reconnect"] != nil { + delete(p.p, "reconnect") + } +} + +func (p *ProvisionCertificateParams) GetReconnect() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["reconnect"].(bool) + return value, ok +} + +// You should always use this function to get a new ProvisionCertificateParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewProvisionCertificateParams(hostid string) *ProvisionCertificateParams { + p := &ProvisionCertificateParams{} + p.p = make(map[string]interface{}) + p.p["hostid"] = hostid + return p +} + +// Issues and propagates client certificate on a connected host/agent using configured CA plugin +func (s *CertificateService) ProvisionCertificate(p *ProvisionCertificateParams) (*ProvisionCertificateResponse, error) { + resp, err := s.cs.newRequest("provisionCertificate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ProvisionCertificateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ProvisionCertificateResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ProvisionTemplateDirectDownloadCertificateParams struct { + p map[string]interface{} +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostid"] = v +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) GetHostid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostid"].(string) + return value, ok +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ProvisionTemplateDirectDownloadCertificateParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new ProvisionTemplateDirectDownloadCertificateParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewProvisionTemplateDirectDownloadCertificateParams(hostid string, id string) *ProvisionTemplateDirectDownloadCertificateParams { + p := &ProvisionTemplateDirectDownloadCertificateParams{} + p.p = make(map[string]interface{}) + p.p["hostid"] = hostid + p.p["id"] = id + return p +} + +// Provisions a host with a direct download certificate +func (s *CertificateService) ProvisionTemplateDirectDownloadCertificate(p *ProvisionTemplateDirectDownloadCertificateParams) (*ProvisionTemplateDirectDownloadCertificateResponse, error) { + resp, err := s.cs.newRequest("provisionTemplateDirectDownloadCertificate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ProvisionTemplateDirectDownloadCertificateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ProvisionTemplateDirectDownloadCertificateResponse struct { + Details string `json:"details"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Status string `json:"status"` +} + +type RevokeCertificateParams struct { + p map[string]interface{} +} + +func (p *RevokeCertificateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["cn"]; found { + u.Set("cn", v.(string)) + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + if v, found := p.p["serial"]; found { + u.Set("serial", v.(string)) + } + return u +} + +func (p *RevokeCertificateParams) SetCn(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cn"] = v +} + +func (p *RevokeCertificateParams) ResetCn() { + if p.p != nil && p.p["cn"] != nil { + delete(p.p, "cn") + } +} + +func (p *RevokeCertificateParams) GetCn() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cn"].(string) + return value, ok +} + +func (p *RevokeCertificateParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *RevokeCertificateParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *RevokeCertificateParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +func (p *RevokeCertificateParams) SetSerial(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serial"] = v +} + +func (p *RevokeCertificateParams) ResetSerial() { + if p.p != nil && p.p["serial"] != nil { + delete(p.p, "serial") + } +} + +func (p *RevokeCertificateParams) GetSerial() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serial"].(string) + return value, ok +} + +// You should always use this function to get a new RevokeCertificateParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewRevokeCertificateParams(serial string) *RevokeCertificateParams { + p := &RevokeCertificateParams{} + p.p = make(map[string]interface{}) + p.p["serial"] = serial + return p +} + +// Revokes certificate using configured CA plugin +func (s *CertificateService) RevokeCertificate(p *RevokeCertificateParams) (*RevokeCertificateResponse, error) { + resp, err := s.cs.newRequest("revokeCertificate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RevokeCertificateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type RevokeCertificateResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type RevokeTemplateDirectDownloadCertificateParams struct { + p map[string]interface{} +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } + 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["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostid"] = v +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) GetHostid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostid"].(string) + return value, ok +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) SetHypervisor(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hypervisor"] = v +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") + } +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) GetHypervisor() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hypervisor"].(string) + return value, ok +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *RevokeTemplateDirectDownloadCertificateParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new RevokeTemplateDirectDownloadCertificateParams instance, +// as then you are sure you have configured all required params +func (s *CertificateService) NewRevokeTemplateDirectDownloadCertificateParams(zoneid string) *RevokeTemplateDirectDownloadCertificateParams { + p := &RevokeTemplateDirectDownloadCertificateParams{} + p.p = make(map[string]interface{}) + p.p["zoneid"] = zoneid + return p +} + +// Revoke a direct download certificate from hosts in a zone +func (s *CertificateService) RevokeTemplateDirectDownloadCertificate(p *RevokeTemplateDirectDownloadCertificateParams) (*RevokeTemplateDirectDownloadCertificateResponse, error) { + resp, err := s.cs.newRequest("revokeTemplateDirectDownloadCertificate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RevokeTemplateDirectDownloadCertificateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type RevokeTemplateDirectDownloadCertificateResponse struct { + Details string `json:"details"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Status string `json:"status"` } type UploadCustomCertificateParams struct { @@ -218,204 +1318,177 @@ type UploadCustomCertificateResponse struct { Message string `json:"message"` } -type ListCAProvidersParams struct { +type UploadTemplateDirectDownloadCertificateParams struct { p map[string]interface{} } -func (p *ListCAProvidersParams) toURLValues() url.Values { +func (p *UploadTemplateDirectDownloadCertificateParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } + if v, found := p.p["certificate"]; found { + u.Set("certificate", v.(string)) + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } if v, found := p.p["name"]; found { u.Set("name", v.(string)) } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } return u } -func (p *ListCAProvidersParams) SetName(v string) { +func (p *UploadTemplateDirectDownloadCertificateParams) SetCertificate(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["name"] = v + p.p["certificate"] = v } -func (p *ListCAProvidersParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") +func (p *UploadTemplateDirectDownloadCertificateParams) ResetCertificate() { + if p.p != nil && p.p["certificate"] != nil { + delete(p.p, "certificate") } } -func (p *ListCAProvidersParams) GetName() (string, bool) { +func (p *UploadTemplateDirectDownloadCertificateParams) GetCertificate() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["name"].(string) + value, ok := p.p["certificate"].(string) return value, ok } -// You should always use this function to get a new ListCAProvidersParams instance, -// as then you are sure you have configured all required params -func (s *CertificateService) NewListCAProvidersParams() *ListCAProvidersParams { - p := &ListCAProvidersParams{} - p.p = make(map[string]interface{}) - return p -} - -// Lists available certificate authority providers in CloudStack -func (s *CertificateService) ListCAProviders(p *ListCAProvidersParams) (*ListCAProvidersResponse, error) { - resp, err := s.cs.newRequest("listCAProviders", p.toURLValues()) - if err != nil { - return nil, err - } - - var r ListCAProvidersResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err +func (p *UploadTemplateDirectDownloadCertificateParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - - return &r, nil -} - -type ListCAProvidersResponse struct { - Count int `json:"count"` - CAProviders []*CAProvider `json:"caprovider"` -} - -type CAProvider struct { - Description string `json:"description"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Name string `json:"name"` + p.p["hostid"] = v } -type ProvisionCertificateParams struct { - p map[string]interface{} +func (p *UploadTemplateDirectDownloadCertificateParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } } -func (p *ProvisionCertificateParams) toURLValues() url.Values { - u := url.Values{} +func (p *UploadTemplateDirectDownloadCertificateParams) GetHostid() (string, bool) { if p.p == nil { - return u - } - if v, found := p.p["hostid"]; found { - u.Set("hostid", v.(string)) - } - if v, found := p.p["provider"]; found { - u.Set("provider", v.(string)) - } - if v, found := p.p["reconnect"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("reconnect", vv) + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["hostid"].(string) + return value, ok } -func (p *ProvisionCertificateParams) SetHostid(v string) { +func (p *UploadTemplateDirectDownloadCertificateParams) SetHypervisor(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["hostid"] = v + p.p["hypervisor"] = v } -func (p *ProvisionCertificateParams) ResetHostid() { - if p.p != nil && p.p["hostid"] != nil { - delete(p.p, "hostid") +func (p *UploadTemplateDirectDownloadCertificateParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") } } -func (p *ProvisionCertificateParams) GetHostid() (string, bool) { +func (p *UploadTemplateDirectDownloadCertificateParams) GetHypervisor() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["hostid"].(string) + value, ok := p.p["hypervisor"].(string) return value, ok } -func (p *ProvisionCertificateParams) SetProvider(v string) { +func (p *UploadTemplateDirectDownloadCertificateParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["provider"] = v + p.p["name"] = v } -func (p *ProvisionCertificateParams) ResetProvider() { - if p.p != nil && p.p["provider"] != nil { - delete(p.p, "provider") +func (p *UploadTemplateDirectDownloadCertificateParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") } } -func (p *ProvisionCertificateParams) GetProvider() (string, bool) { +func (p *UploadTemplateDirectDownloadCertificateParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["provider"].(string) + value, ok := p.p["name"].(string) return value, ok } -func (p *ProvisionCertificateParams) SetReconnect(v bool) { +func (p *UploadTemplateDirectDownloadCertificateParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["reconnect"] = v + p.p["zoneid"] = v } -func (p *ProvisionCertificateParams) ResetReconnect() { - if p.p != nil && p.p["reconnect"] != nil { - delete(p.p, "reconnect") +func (p *UploadTemplateDirectDownloadCertificateParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") } } -func (p *ProvisionCertificateParams) GetReconnect() (bool, bool) { +func (p *UploadTemplateDirectDownloadCertificateParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["reconnect"].(bool) + value, ok := p.p["zoneid"].(string) return value, ok } -// You should always use this function to get a new ProvisionCertificateParams instance, +// You should always use this function to get a new UploadTemplateDirectDownloadCertificateParams instance, // as then you are sure you have configured all required params -func (s *CertificateService) NewProvisionCertificateParams(hostid string) *ProvisionCertificateParams { - p := &ProvisionCertificateParams{} +func (s *CertificateService) NewUploadTemplateDirectDownloadCertificateParams(certificate string, hypervisor string, name string, zoneid string) *UploadTemplateDirectDownloadCertificateParams { + p := &UploadTemplateDirectDownloadCertificateParams{} p.p = make(map[string]interface{}) - p.p["hostid"] = hostid + p.p["certificate"] = certificate + p.p["hypervisor"] = hypervisor + p.p["name"] = name + p.p["zoneid"] = zoneid return p } -// Issues and propagates client certificate on a connected host/agent using configured CA plugin -func (s *CertificateService) ProvisionCertificate(p *ProvisionCertificateParams) (*ProvisionCertificateResponse, error) { - resp, err := s.cs.newRequest("provisionCertificate", p.toURLValues()) +// Upload a certificate for HTTPS direct template download on KVM hosts +func (s *CertificateService) UploadTemplateDirectDownloadCertificate(p *UploadTemplateDirectDownloadCertificateParams) (*UploadTemplateDirectDownloadCertificateResponse, error) { + resp, err := s.cs.newRequest("uploadTemplateDirectDownloadCertificate", p.toURLValues()) if err != nil { return nil, err } - var r ProvisionCertificateResponse + var r UploadTemplateDirectDownloadCertificateResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } - - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } - } - return &r, nil } -type ProvisionCertificateResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` +type UploadTemplateDirectDownloadCertificateResponse struct { + Alias string `json:"alias"` + Hostsmap []string `json:"hostsmap"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Issuer string `json:"issuer"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Serialnum string `json:"serialnum"` + Subject string `json:"subject"` + Validity string `json:"validity"` + Version string `json:"version"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } diff --git a/cloudstack/CertificateService_mock.go b/cloudstack/CertificateService_mock.go index dfd51592..88ccc93e 100644 --- a/cloudstack/CertificateService_mock.go +++ b/cloudstack/CertificateService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/CertificateService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/CertificateService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/CertificateService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockCertificateServiceIface is a mock of CertificateServiceIface interface. type MockCertificateServiceIface struct { ctrl *gomock.Controller recorder *MockCertificateServiceIfaceMockRecorder + isgomock struct{} } // MockCertificateServiceIfaceMockRecorder is the mock recorder for MockCertificateServiceIface. @@ -52,6 +58,42 @@ func (m *MockCertificateServiceIface) EXPECT() *MockCertificateServiceIfaceMockR return m.recorder } +// GetTemplateDirectDownloadCertificateByID mocks base method. +func (m *MockCertificateServiceIface) GetTemplateDirectDownloadCertificateByID(id string, opts ...OptionFunc) (*TemplateDirectDownloadCertificate, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetTemplateDirectDownloadCertificateByID", varargs...) + ret0, _ := ret[0].(*TemplateDirectDownloadCertificate) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetTemplateDirectDownloadCertificateByID indicates an expected call of GetTemplateDirectDownloadCertificateByID. +func (mr *MockCertificateServiceIfaceMockRecorder) GetTemplateDirectDownloadCertificateByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateDirectDownloadCertificateByID", reflect.TypeOf((*MockCertificateServiceIface)(nil).GetTemplateDirectDownloadCertificateByID), varargs...) +} + +// IssueCertificate mocks base method. +func (m *MockCertificateServiceIface) IssueCertificate(p *IssueCertificateParams) (*IssueCertificateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IssueCertificate", p) + ret0, _ := ret[0].(*IssueCertificateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IssueCertificate indicates an expected call of IssueCertificate. +func (mr *MockCertificateServiceIfaceMockRecorder) IssueCertificate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IssueCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).IssueCertificate), p) +} + // ListCAProviders mocks base method. func (m *MockCertificateServiceIface) ListCAProviders(p *ListCAProvidersParams) (*ListCAProvidersResponse, error) { m.ctrl.T.Helper() @@ -62,11 +104,55 @@ func (m *MockCertificateServiceIface) ListCAProviders(p *ListCAProvidersParams) } // ListCAProviders indicates an expected call of ListCAProviders. -func (mr *MockCertificateServiceIfaceMockRecorder) ListCAProviders(p interface{}) *gomock.Call { +func (mr *MockCertificateServiceIfaceMockRecorder) ListCAProviders(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCAProviders", reflect.TypeOf((*MockCertificateServiceIface)(nil).ListCAProviders), p) } +// ListCaCertificate mocks base method. +func (m *MockCertificateServiceIface) ListCaCertificate(p *ListCaCertificateParams) (*ListCaCertificateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListCaCertificate", p) + ret0, _ := ret[0].(*ListCaCertificateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListCaCertificate indicates an expected call of ListCaCertificate. +func (mr *MockCertificateServiceIfaceMockRecorder) ListCaCertificate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCaCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).ListCaCertificate), p) +} + +// ListTemplateDirectDownloadCertificates mocks base method. +func (m *MockCertificateServiceIface) ListTemplateDirectDownloadCertificates(p *ListTemplateDirectDownloadCertificatesParams) (*ListTemplateDirectDownloadCertificatesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListTemplateDirectDownloadCertificates", p) + ret0, _ := ret[0].(*ListTemplateDirectDownloadCertificatesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListTemplateDirectDownloadCertificates indicates an expected call of ListTemplateDirectDownloadCertificates. +func (mr *MockCertificateServiceIfaceMockRecorder) ListTemplateDirectDownloadCertificates(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTemplateDirectDownloadCertificates", reflect.TypeOf((*MockCertificateServiceIface)(nil).ListTemplateDirectDownloadCertificates), p) +} + +// NewIssueCertificateParams mocks base method. +func (m *MockCertificateServiceIface) NewIssueCertificateParams() *IssueCertificateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewIssueCertificateParams") + ret0, _ := ret[0].(*IssueCertificateParams) + return ret0 +} + +// NewIssueCertificateParams indicates an expected call of NewIssueCertificateParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewIssueCertificateParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewIssueCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewIssueCertificateParams)) +} + // NewListCAProvidersParams mocks base method. func (m *MockCertificateServiceIface) NewListCAProvidersParams() *ListCAProvidersParams { m.ctrl.T.Helper() @@ -81,6 +167,34 @@ func (mr *MockCertificateServiceIfaceMockRecorder) NewListCAProvidersParams() *g return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListCAProvidersParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewListCAProvidersParams)) } +// NewListCaCertificateParams mocks base method. +func (m *MockCertificateServiceIface) NewListCaCertificateParams() *ListCaCertificateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListCaCertificateParams") + ret0, _ := ret[0].(*ListCaCertificateParams) + return ret0 +} + +// NewListCaCertificateParams indicates an expected call of NewListCaCertificateParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewListCaCertificateParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListCaCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewListCaCertificateParams)) +} + +// NewListTemplateDirectDownloadCertificatesParams mocks base method. +func (m *MockCertificateServiceIface) NewListTemplateDirectDownloadCertificatesParams() *ListTemplateDirectDownloadCertificatesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListTemplateDirectDownloadCertificatesParams") + ret0, _ := ret[0].(*ListTemplateDirectDownloadCertificatesParams) + return ret0 +} + +// NewListTemplateDirectDownloadCertificatesParams indicates an expected call of NewListTemplateDirectDownloadCertificatesParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewListTemplateDirectDownloadCertificatesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListTemplateDirectDownloadCertificatesParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewListTemplateDirectDownloadCertificatesParams)) +} + // NewProvisionCertificateParams mocks base method. func (m *MockCertificateServiceIface) NewProvisionCertificateParams(hostid string) *ProvisionCertificateParams { m.ctrl.T.Helper() @@ -90,11 +204,53 @@ func (m *MockCertificateServiceIface) NewProvisionCertificateParams(hostid strin } // NewProvisionCertificateParams indicates an expected call of NewProvisionCertificateParams. -func (mr *MockCertificateServiceIfaceMockRecorder) NewProvisionCertificateParams(hostid interface{}) *gomock.Call { +func (mr *MockCertificateServiceIfaceMockRecorder) NewProvisionCertificateParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewProvisionCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewProvisionCertificateParams), hostid) } +// NewProvisionTemplateDirectDownloadCertificateParams mocks base method. +func (m *MockCertificateServiceIface) NewProvisionTemplateDirectDownloadCertificateParams(hostid, id string) *ProvisionTemplateDirectDownloadCertificateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewProvisionTemplateDirectDownloadCertificateParams", hostid, id) + ret0, _ := ret[0].(*ProvisionTemplateDirectDownloadCertificateParams) + return ret0 +} + +// NewProvisionTemplateDirectDownloadCertificateParams indicates an expected call of NewProvisionTemplateDirectDownloadCertificateParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewProvisionTemplateDirectDownloadCertificateParams(hostid, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewProvisionTemplateDirectDownloadCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewProvisionTemplateDirectDownloadCertificateParams), hostid, id) +} + +// NewRevokeCertificateParams mocks base method. +func (m *MockCertificateServiceIface) NewRevokeCertificateParams(serial string) *RevokeCertificateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRevokeCertificateParams", serial) + ret0, _ := ret[0].(*RevokeCertificateParams) + return ret0 +} + +// NewRevokeCertificateParams indicates an expected call of NewRevokeCertificateParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewRevokeCertificateParams(serial any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRevokeCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewRevokeCertificateParams), serial) +} + +// NewRevokeTemplateDirectDownloadCertificateParams mocks base method. +func (m *MockCertificateServiceIface) NewRevokeTemplateDirectDownloadCertificateParams(zoneid string) *RevokeTemplateDirectDownloadCertificateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRevokeTemplateDirectDownloadCertificateParams", zoneid) + ret0, _ := ret[0].(*RevokeTemplateDirectDownloadCertificateParams) + return ret0 +} + +// NewRevokeTemplateDirectDownloadCertificateParams indicates an expected call of NewRevokeTemplateDirectDownloadCertificateParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewRevokeTemplateDirectDownloadCertificateParams(zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRevokeTemplateDirectDownloadCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewRevokeTemplateDirectDownloadCertificateParams), zoneid) +} + // NewUploadCustomCertificateParams mocks base method. func (m *MockCertificateServiceIface) NewUploadCustomCertificateParams(certificate, domainsuffix string) *UploadCustomCertificateParams { m.ctrl.T.Helper() @@ -104,11 +260,25 @@ func (m *MockCertificateServiceIface) NewUploadCustomCertificateParams(certifica } // NewUploadCustomCertificateParams indicates an expected call of NewUploadCustomCertificateParams. -func (mr *MockCertificateServiceIfaceMockRecorder) NewUploadCustomCertificateParams(certificate, domainsuffix interface{}) *gomock.Call { +func (mr *MockCertificateServiceIfaceMockRecorder) NewUploadCustomCertificateParams(certificate, domainsuffix any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUploadCustomCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewUploadCustomCertificateParams), certificate, domainsuffix) } +// NewUploadTemplateDirectDownloadCertificateParams mocks base method. +func (m *MockCertificateServiceIface) NewUploadTemplateDirectDownloadCertificateParams(certificate, hypervisor, name, zoneid string) *UploadTemplateDirectDownloadCertificateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUploadTemplateDirectDownloadCertificateParams", certificate, hypervisor, name, zoneid) + ret0, _ := ret[0].(*UploadTemplateDirectDownloadCertificateParams) + return ret0 +} + +// NewUploadTemplateDirectDownloadCertificateParams indicates an expected call of NewUploadTemplateDirectDownloadCertificateParams. +func (mr *MockCertificateServiceIfaceMockRecorder) NewUploadTemplateDirectDownloadCertificateParams(certificate, hypervisor, name, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUploadTemplateDirectDownloadCertificateParams", reflect.TypeOf((*MockCertificateServiceIface)(nil).NewUploadTemplateDirectDownloadCertificateParams), certificate, hypervisor, name, zoneid) +} + // ProvisionCertificate mocks base method. func (m *MockCertificateServiceIface) ProvisionCertificate(p *ProvisionCertificateParams) (*ProvisionCertificateResponse, error) { m.ctrl.T.Helper() @@ -119,11 +289,56 @@ func (m *MockCertificateServiceIface) ProvisionCertificate(p *ProvisionCertifica } // ProvisionCertificate indicates an expected call of ProvisionCertificate. -func (mr *MockCertificateServiceIfaceMockRecorder) ProvisionCertificate(p interface{}) *gomock.Call { +func (mr *MockCertificateServiceIfaceMockRecorder) ProvisionCertificate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProvisionCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).ProvisionCertificate), p) } +// ProvisionTemplateDirectDownloadCertificate mocks base method. +func (m *MockCertificateServiceIface) ProvisionTemplateDirectDownloadCertificate(p *ProvisionTemplateDirectDownloadCertificateParams) (*ProvisionTemplateDirectDownloadCertificateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ProvisionTemplateDirectDownloadCertificate", p) + ret0, _ := ret[0].(*ProvisionTemplateDirectDownloadCertificateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ProvisionTemplateDirectDownloadCertificate indicates an expected call of ProvisionTemplateDirectDownloadCertificate. +func (mr *MockCertificateServiceIfaceMockRecorder) ProvisionTemplateDirectDownloadCertificate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProvisionTemplateDirectDownloadCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).ProvisionTemplateDirectDownloadCertificate), p) +} + +// RevokeCertificate mocks base method. +func (m *MockCertificateServiceIface) RevokeCertificate(p *RevokeCertificateParams) (*RevokeCertificateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RevokeCertificate", p) + ret0, _ := ret[0].(*RevokeCertificateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RevokeCertificate indicates an expected call of RevokeCertificate. +func (mr *MockCertificateServiceIfaceMockRecorder) RevokeCertificate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevokeCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).RevokeCertificate), p) +} + +// RevokeTemplateDirectDownloadCertificate mocks base method. +func (m *MockCertificateServiceIface) RevokeTemplateDirectDownloadCertificate(p *RevokeTemplateDirectDownloadCertificateParams) (*RevokeTemplateDirectDownloadCertificateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RevokeTemplateDirectDownloadCertificate", p) + ret0, _ := ret[0].(*RevokeTemplateDirectDownloadCertificateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RevokeTemplateDirectDownloadCertificate indicates an expected call of RevokeTemplateDirectDownloadCertificate. +func (mr *MockCertificateServiceIfaceMockRecorder) RevokeTemplateDirectDownloadCertificate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevokeTemplateDirectDownloadCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).RevokeTemplateDirectDownloadCertificate), p) +} + // UploadCustomCertificate mocks base method. func (m *MockCertificateServiceIface) UploadCustomCertificate(p *UploadCustomCertificateParams) (*UploadCustomCertificateResponse, error) { m.ctrl.T.Helper() @@ -134,7 +349,22 @@ func (m *MockCertificateServiceIface) UploadCustomCertificate(p *UploadCustomCer } // UploadCustomCertificate indicates an expected call of UploadCustomCertificate. -func (mr *MockCertificateServiceIfaceMockRecorder) UploadCustomCertificate(p interface{}) *gomock.Call { +func (mr *MockCertificateServiceIfaceMockRecorder) UploadCustomCertificate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadCustomCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).UploadCustomCertificate), p) } + +// UploadTemplateDirectDownloadCertificate mocks base method. +func (m *MockCertificateServiceIface) UploadTemplateDirectDownloadCertificate(p *UploadTemplateDirectDownloadCertificateParams) (*UploadTemplateDirectDownloadCertificateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UploadTemplateDirectDownloadCertificate", p) + ret0, _ := ret[0].(*UploadTemplateDirectDownloadCertificateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UploadTemplateDirectDownloadCertificate indicates an expected call of UploadTemplateDirectDownloadCertificate. +func (mr *MockCertificateServiceIfaceMockRecorder) UploadTemplateDirectDownloadCertificate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadTemplateDirectDownloadCertificate", reflect.TypeOf((*MockCertificateServiceIface)(nil).UploadTemplateDirectDownloadCertificate), p) +} diff --git a/cloudstack/CloudIdentifierService_mock.go b/cloudstack/CloudIdentifierService_mock.go index 49711728..18fcecb3 100644 --- a/cloudstack/CloudIdentifierService_mock.go +++ b/cloudstack/CloudIdentifierService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/CloudIdentifierService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/CloudIdentifierService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/CloudIdentifierService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockCloudIdentifierServiceIface is a mock of CloudIdentifierServiceIface interface. type MockCloudIdentifierServiceIface struct { ctrl *gomock.Controller recorder *MockCloudIdentifierServiceIfaceMockRecorder + isgomock struct{} } // MockCloudIdentifierServiceIfaceMockRecorder is the mock recorder for MockCloudIdentifierServiceIface. @@ -62,7 +68,7 @@ func (m *MockCloudIdentifierServiceIface) GetCloudIdentifier(p *GetCloudIdentifi } // GetCloudIdentifier indicates an expected call of GetCloudIdentifier. -func (mr *MockCloudIdentifierServiceIfaceMockRecorder) GetCloudIdentifier(p interface{}) *gomock.Call { +func (mr *MockCloudIdentifierServiceIfaceMockRecorder) GetCloudIdentifier(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCloudIdentifier", reflect.TypeOf((*MockCloudIdentifierServiceIface)(nil).GetCloudIdentifier), p) } @@ -76,7 +82,7 @@ func (m *MockCloudIdentifierServiceIface) NewGetCloudIdentifierParams(userid str } // NewGetCloudIdentifierParams indicates an expected call of NewGetCloudIdentifierParams. -func (mr *MockCloudIdentifierServiceIfaceMockRecorder) NewGetCloudIdentifierParams(userid interface{}) *gomock.Call { +func (mr *MockCloudIdentifierServiceIfaceMockRecorder) NewGetCloudIdentifierParams(userid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetCloudIdentifierParams", reflect.TypeOf((*MockCloudIdentifierServiceIface)(nil).NewGetCloudIdentifierParams), userid) } diff --git a/cloudstack/CloudianService.go b/cloudstack/CloudianService.go new file mode 100644 index 00000000..9d32a316 --- /dev/null +++ b/cloudstack/CloudianService.go @@ -0,0 +1,72 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" +) + +type CloudianServiceIface interface { + CloudianIsEnabled(p *CloudianIsEnabledParams) (*CloudianIsEnabledResponse, error) + NewCloudianIsEnabledParams() *CloudianIsEnabledParams +} + +type CloudianIsEnabledParams struct { + p map[string]interface{} +} + +func (p *CloudianIsEnabledParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + return u +} + +// You should always use this function to get a new CloudianIsEnabledParams instance, +// as then you are sure you have configured all required params +func (s *CloudianService) NewCloudianIsEnabledParams() *CloudianIsEnabledParams { + p := &CloudianIsEnabledParams{} + p.p = make(map[string]interface{}) + return p +} + +// Checks if the Cloudian Connector is enabled +func (s *CloudianService) CloudianIsEnabled(p *CloudianIsEnabledParams) (*CloudianIsEnabledResponse, error) { + resp, err := s.cs.newRequest("cloudianIsEnabled", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CloudianIsEnabledResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type CloudianIsEnabledResponse struct { + Enabled bool `json:"enabled"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Url string `json:"url"` +} diff --git a/cloudstack/CloudianService_mock.go b/cloudstack/CloudianService_mock.go new file mode 100644 index 00000000..d1ee70cc --- /dev/null +++ b/cloudstack/CloudianService_mock.go @@ -0,0 +1,88 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/CloudianService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/CloudianService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/CloudianService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockCloudianServiceIface is a mock of CloudianServiceIface interface. +type MockCloudianServiceIface struct { + ctrl *gomock.Controller + recorder *MockCloudianServiceIfaceMockRecorder + isgomock struct{} +} + +// MockCloudianServiceIfaceMockRecorder is the mock recorder for MockCloudianServiceIface. +type MockCloudianServiceIfaceMockRecorder struct { + mock *MockCloudianServiceIface +} + +// NewMockCloudianServiceIface creates a new mock instance. +func NewMockCloudianServiceIface(ctrl *gomock.Controller) *MockCloudianServiceIface { + mock := &MockCloudianServiceIface{ctrl: ctrl} + mock.recorder = &MockCloudianServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockCloudianServiceIface) EXPECT() *MockCloudianServiceIfaceMockRecorder { + return m.recorder +} + +// CloudianIsEnabled mocks base method. +func (m *MockCloudianServiceIface) CloudianIsEnabled(p *CloudianIsEnabledParams) (*CloudianIsEnabledResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CloudianIsEnabled", p) + ret0, _ := ret[0].(*CloudianIsEnabledResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CloudianIsEnabled indicates an expected call of CloudianIsEnabled. +func (mr *MockCloudianServiceIfaceMockRecorder) CloudianIsEnabled(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloudianIsEnabled", reflect.TypeOf((*MockCloudianServiceIface)(nil).CloudianIsEnabled), p) +} + +// NewCloudianIsEnabledParams mocks base method. +func (m *MockCloudianServiceIface) NewCloudianIsEnabledParams() *CloudianIsEnabledParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCloudianIsEnabledParams") + ret0, _ := ret[0].(*CloudianIsEnabledParams) + return ret0 +} + +// NewCloudianIsEnabledParams indicates an expected call of NewCloudianIsEnabledParams. +func (mr *MockCloudianServiceIfaceMockRecorder) NewCloudianIsEnabledParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCloudianIsEnabledParams", reflect.TypeOf((*MockCloudianServiceIface)(nil).NewCloudianIsEnabledParams)) +} diff --git a/cloudstack/ClusterService.go b/cloudstack/ClusterService.go index 219ef404..1b370bf6 100644 --- a/cloudstack/ClusterService.go +++ b/cloudstack/ClusterService.go @@ -40,6 +40,10 @@ type ClusterServiceIface interface { NewEnableOutOfBandManagementForClusterParams(clusterid string) *EnableOutOfBandManagementForClusterParams EnableHAForCluster(p *EnableHAForClusterParams) (*EnableHAForClusterResponse, error) NewEnableHAForClusterParams(clusterid string) *EnableHAForClusterParams + ExecuteClusterDrsPlan(p *ExecuteClusterDrsPlanParams) (*ExecuteClusterDrsPlanResponse, error) + NewExecuteClusterDrsPlanParams(id string) *ExecuteClusterDrsPlanParams + GenerateClusterDrsPlan(p *GenerateClusterDrsPlanParams) (*GenerateClusterDrsPlanResponse, error) + NewGenerateClusterDrsPlanParams(id string) *GenerateClusterDrsPlanParams DisableHAForCluster(p *DisableHAForClusterParams) (*DisableHAForClusterResponse, error) NewDisableHAForClusterParams(clusterid string) *DisableHAForClusterParams ListClusters(p *ListClustersParams) (*ListClustersResponse, error) @@ -47,6 +51,9 @@ type ClusterServiceIface interface { GetClusterID(name string, opts ...OptionFunc) (string, int, error) GetClusterByName(name string, opts ...OptionFunc) (*Cluster, int, error) GetClusterByID(id string, opts ...OptionFunc) (*Cluster, int, error) + ListClusterDrsPlan(p *ListClusterDrsPlanParams) (*ListClusterDrsPlanResponse, error) + NewListClusterDrsPlanParams() *ListClusterDrsPlanParams + GetClusterDrsPlanByID(id string, opts ...OptionFunc) (*ClusterDrsPlan, int, error) ListClustersMetrics(p *ListClustersMetricsParams) (*ListClustersMetricsResponse, error) NewListClustersMetricsParams() *ListClustersMetricsParams GetClustersMetricID(name string, opts ...OptionFunc) (string, int, error) @@ -1130,6 +1137,221 @@ type EnableHAForClusterResponse struct { Success bool `json:"success"` } +type ExecuteClusterDrsPlanParams struct { + p map[string]interface{} +} + +func (p *ExecuteClusterDrsPlanParams) 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["migrateto"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("migrateto[%d].key", i), k) + u.Set(fmt.Sprintf("migrateto[%d].value", i), m[k]) + } + } + return u +} + +func (p *ExecuteClusterDrsPlanParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ExecuteClusterDrsPlanParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ExecuteClusterDrsPlanParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ExecuteClusterDrsPlanParams) SetMigrateto(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["migrateto"] = v +} + +func (p *ExecuteClusterDrsPlanParams) ResetMigrateto() { + if p.p != nil && p.p["migrateto"] != nil { + delete(p.p, "migrateto") + } +} + +func (p *ExecuteClusterDrsPlanParams) GetMigrateto() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["migrateto"].(map[string]string) + return value, ok +} + +// You should always use this function to get a new ExecuteClusterDrsPlanParams instance, +// as then you are sure you have configured all required params +func (s *ClusterService) NewExecuteClusterDrsPlanParams(id string) *ExecuteClusterDrsPlanParams { + p := &ExecuteClusterDrsPlanParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Execute DRS for a cluster. If there is another plan in progress for the same cluster, this command will fail. +func (s *ClusterService) ExecuteClusterDrsPlan(p *ExecuteClusterDrsPlanParams) (*ExecuteClusterDrsPlanResponse, error) { + resp, err := s.cs.newRequest("executeClusterDrsPlan", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ExecuteClusterDrsPlanResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ExecuteClusterDrsPlanResponse struct { + Clusterid string `json:"clusterid"` + Eventid string `json:"eventid"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Migrations []string `json:"migrations"` + Status string `json:"status"` + Type string `json:"type"` +} + +type GenerateClusterDrsPlanParams struct { + p map[string]interface{} +} + +func (p *GenerateClusterDrsPlanParams) 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["migrations"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("migrations", vv) + } + return u +} + +func (p *GenerateClusterDrsPlanParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *GenerateClusterDrsPlanParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *GenerateClusterDrsPlanParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *GenerateClusterDrsPlanParams) SetMigrations(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["migrations"] = v +} + +func (p *GenerateClusterDrsPlanParams) ResetMigrations() { + if p.p != nil && p.p["migrations"] != nil { + delete(p.p, "migrations") + } +} + +func (p *GenerateClusterDrsPlanParams) GetMigrations() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["migrations"].(int) + return value, ok +} + +// You should always use this function to get a new GenerateClusterDrsPlanParams instance, +// as then you are sure you have configured all required params +func (s *ClusterService) NewGenerateClusterDrsPlanParams(id string) *GenerateClusterDrsPlanParams { + p := &GenerateClusterDrsPlanParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Generate DRS plan for a cluster +func (s *ClusterService) GenerateClusterDrsPlan(p *GenerateClusterDrsPlanParams) (*GenerateClusterDrsPlanResponse, error) { + resp, err := s.cs.newRequest("generateClusterDrsPlan", p.toURLValues()) + if err != nil { + return nil, err + } + + var r GenerateClusterDrsPlanResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type GenerateClusterDrsPlanResponse struct { + Clusterid string `json:"clusterid"` + Eventid string `json:"eventid"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Migrations []string `json:"migrations"` + Status string `json:"status"` + Type string `json:"type"` +} + type DisableHAForClusterParams struct { p map[string]interface{} } @@ -1664,6 +1886,212 @@ type ClusterCapacity struct { Zonename string `json:"zonename"` } +type ListClusterDrsPlanParams struct { + p map[string]interface{} +} + +func (p *ListClusterDrsPlanParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["clusterid"]; found { + u.Set("clusterid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + return u +} + +func (p *ListClusterDrsPlanParams) SetClusterid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["clusterid"] = v +} + +func (p *ListClusterDrsPlanParams) ResetClusterid() { + if p.p != nil && p.p["clusterid"] != nil { + delete(p.p, "clusterid") + } +} + +func (p *ListClusterDrsPlanParams) GetClusterid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["clusterid"].(string) + return value, ok +} + +func (p *ListClusterDrsPlanParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListClusterDrsPlanParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListClusterDrsPlanParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListClusterDrsPlanParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListClusterDrsPlanParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListClusterDrsPlanParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListClusterDrsPlanParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListClusterDrsPlanParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListClusterDrsPlanParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListClusterDrsPlanParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListClusterDrsPlanParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListClusterDrsPlanParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +// You should always use this function to get a new ListClusterDrsPlanParams instance, +// as then you are sure you have configured all required params +func (s *ClusterService) NewListClusterDrsPlanParams() *ListClusterDrsPlanParams { + p := &ListClusterDrsPlanParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ClusterService) GetClusterDrsPlanByID(id string, opts ...OptionFunc) (*ClusterDrsPlan, int, error) { + p := &ListClusterDrsPlanParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListClusterDrsPlan(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.ClusterDrsPlan[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for ClusterDrsPlan UUID: %s!", id) +} + +// List DRS plans for a clusters +func (s *ClusterService) ListClusterDrsPlan(p *ListClusterDrsPlanParams) (*ListClusterDrsPlanResponse, error) { + resp, err := s.cs.newRequest("listClusterDrsPlan", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListClusterDrsPlanResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListClusterDrsPlanResponse struct { + Count int `json:"count"` + ClusterDrsPlan []*ClusterDrsPlan `json:"clusterdrsplan"` +} + +type ClusterDrsPlan struct { + Clusterid string `json:"clusterid"` + Eventid string `json:"eventid"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Migrations []string `json:"migrations"` + Status string `json:"status"` + Type string `json:"type"` +} + type ListClustersMetricsParams struct { p map[string]interface{} } diff --git a/cloudstack/ClusterService_mock.go b/cloudstack/ClusterService_mock.go index c9fd7b0e..cf8c374c 100644 --- a/cloudstack/ClusterService_mock.go +++ b/cloudstack/ClusterService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ClusterService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ClusterService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ClusterService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockClusterServiceIface is a mock of ClusterServiceIface interface. type MockClusterServiceIface struct { ctrl *gomock.Controller recorder *MockClusterServiceIfaceMockRecorder + isgomock struct{} } // MockClusterServiceIfaceMockRecorder is the mock recorder for MockClusterServiceIface. @@ -62,7 +68,7 @@ func (m *MockClusterServiceIface) AddCluster(p *AddClusterParams) (*AddClusterRe } // AddCluster indicates an expected call of AddCluster. -func (mr *MockClusterServiceIfaceMockRecorder) AddCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) AddCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).AddCluster), p) } @@ -77,7 +83,7 @@ func (m *MockClusterServiceIface) DedicateCluster(p *DedicateClusterParams) (*De } // DedicateCluster indicates an expected call of DedicateCluster. -func (mr *MockClusterServiceIfaceMockRecorder) DedicateCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) DedicateCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicateCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).DedicateCluster), p) } @@ -92,7 +98,7 @@ func (m *MockClusterServiceIface) DeleteCluster(p *DeleteClusterParams) (*Delete } // DeleteCluster indicates an expected call of DeleteCluster. -func (mr *MockClusterServiceIfaceMockRecorder) DeleteCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) DeleteCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).DeleteCluster), p) } @@ -107,7 +113,7 @@ func (m *MockClusterServiceIface) DisableHAForCluster(p *DisableHAForClusterPara } // DisableHAForCluster indicates an expected call of DisableHAForCluster. -func (mr *MockClusterServiceIfaceMockRecorder) DisableHAForCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) DisableHAForCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableHAForCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).DisableHAForCluster), p) } @@ -122,7 +128,7 @@ func (m *MockClusterServiceIface) DisableOutOfBandManagementForCluster(p *Disabl } // DisableOutOfBandManagementForCluster indicates an expected call of DisableOutOfBandManagementForCluster. -func (mr *MockClusterServiceIfaceMockRecorder) DisableOutOfBandManagementForCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) DisableOutOfBandManagementForCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableOutOfBandManagementForCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).DisableOutOfBandManagementForCluster), p) } @@ -137,7 +143,7 @@ func (m *MockClusterServiceIface) EnableHAForCluster(p *EnableHAForClusterParams } // EnableHAForCluster indicates an expected call of EnableHAForCluster. -func (mr *MockClusterServiceIfaceMockRecorder) EnableHAForCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) EnableHAForCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableHAForCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).EnableHAForCluster), p) } @@ -152,15 +158,45 @@ func (m *MockClusterServiceIface) EnableOutOfBandManagementForCluster(p *EnableO } // EnableOutOfBandManagementForCluster indicates an expected call of EnableOutOfBandManagementForCluster. -func (mr *MockClusterServiceIfaceMockRecorder) EnableOutOfBandManagementForCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) EnableOutOfBandManagementForCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableOutOfBandManagementForCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).EnableOutOfBandManagementForCluster), p) } +// ExecuteClusterDrsPlan mocks base method. +func (m *MockClusterServiceIface) ExecuteClusterDrsPlan(p *ExecuteClusterDrsPlanParams) (*ExecuteClusterDrsPlanResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExecuteClusterDrsPlan", p) + ret0, _ := ret[0].(*ExecuteClusterDrsPlanResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ExecuteClusterDrsPlan indicates an expected call of ExecuteClusterDrsPlan. +func (mr *MockClusterServiceIfaceMockRecorder) ExecuteClusterDrsPlan(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExecuteClusterDrsPlan", reflect.TypeOf((*MockClusterServiceIface)(nil).ExecuteClusterDrsPlan), p) +} + +// GenerateClusterDrsPlan mocks base method. +func (m *MockClusterServiceIface) GenerateClusterDrsPlan(p *GenerateClusterDrsPlanParams) (*GenerateClusterDrsPlanResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GenerateClusterDrsPlan", p) + ret0, _ := ret[0].(*GenerateClusterDrsPlanResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GenerateClusterDrsPlan indicates an expected call of GenerateClusterDrsPlan. +func (mr *MockClusterServiceIfaceMockRecorder) GenerateClusterDrsPlan(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateClusterDrsPlan", reflect.TypeOf((*MockClusterServiceIface)(nil).GenerateClusterDrsPlan), p) +} + // GetClusterByID mocks base method. func (m *MockClusterServiceIface) GetClusterByID(id string, opts ...OptionFunc) (*Cluster, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -172,16 +208,16 @@ func (m *MockClusterServiceIface) GetClusterByID(id string, opts ...OptionFunc) } // GetClusterByID indicates an expected call of GetClusterByID. -func (mr *MockClusterServiceIfaceMockRecorder) GetClusterByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) GetClusterByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClusterByID", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClusterByID), varargs...) } // GetClusterByName mocks base method. func (m *MockClusterServiceIface) GetClusterByName(name string, opts ...OptionFunc) (*Cluster, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -193,16 +229,37 @@ func (m *MockClusterServiceIface) GetClusterByName(name string, opts ...OptionFu } // GetClusterByName indicates an expected call of GetClusterByName. -func (mr *MockClusterServiceIfaceMockRecorder) GetClusterByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) GetClusterByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClusterByName", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClusterByName), varargs...) } +// GetClusterDrsPlanByID mocks base method. +func (m *MockClusterServiceIface) GetClusterDrsPlanByID(id string, opts ...OptionFunc) (*ClusterDrsPlan, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetClusterDrsPlanByID", varargs...) + ret0, _ := ret[0].(*ClusterDrsPlan) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetClusterDrsPlanByID indicates an expected call of GetClusterDrsPlanByID. +func (mr *MockClusterServiceIfaceMockRecorder) GetClusterDrsPlanByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClusterDrsPlanByID", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClusterDrsPlanByID), varargs...) +} + // GetClusterID mocks base method. func (m *MockClusterServiceIface) GetClusterID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -214,16 +271,16 @@ func (m *MockClusterServiceIface) GetClusterID(name string, opts ...OptionFunc) } // GetClusterID indicates an expected call of GetClusterID. -func (mr *MockClusterServiceIfaceMockRecorder) GetClusterID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) GetClusterID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClusterID", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClusterID), varargs...) } // GetClustersMetricByID mocks base method. func (m *MockClusterServiceIface) GetClustersMetricByID(id string, opts ...OptionFunc) (*ClustersMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -235,16 +292,16 @@ func (m *MockClusterServiceIface) GetClustersMetricByID(id string, opts ...Optio } // GetClustersMetricByID indicates an expected call of GetClustersMetricByID. -func (mr *MockClusterServiceIfaceMockRecorder) GetClustersMetricByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) GetClustersMetricByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClustersMetricByID", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClustersMetricByID), varargs...) } // GetClustersMetricByName mocks base method. func (m *MockClusterServiceIface) GetClustersMetricByName(name string, opts ...OptionFunc) (*ClustersMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -256,16 +313,16 @@ func (m *MockClusterServiceIface) GetClustersMetricByName(name string, opts ...O } // GetClustersMetricByName indicates an expected call of GetClustersMetricByName. -func (mr *MockClusterServiceIfaceMockRecorder) GetClustersMetricByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) GetClustersMetricByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClustersMetricByName", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClustersMetricByName), varargs...) } // GetClustersMetricID mocks base method. func (m *MockClusterServiceIface) GetClustersMetricID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -277,12 +334,27 @@ func (m *MockClusterServiceIface) GetClustersMetricID(name string, opts ...Optio } // GetClustersMetricID indicates an expected call of GetClustersMetricID. -func (mr *MockClusterServiceIfaceMockRecorder) GetClustersMetricID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) GetClustersMetricID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClustersMetricID", reflect.TypeOf((*MockClusterServiceIface)(nil).GetClustersMetricID), varargs...) } +// ListClusterDrsPlan mocks base method. +func (m *MockClusterServiceIface) ListClusterDrsPlan(p *ListClusterDrsPlanParams) (*ListClusterDrsPlanResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListClusterDrsPlan", p) + ret0, _ := ret[0].(*ListClusterDrsPlanResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListClusterDrsPlan indicates an expected call of ListClusterDrsPlan. +func (mr *MockClusterServiceIfaceMockRecorder) ListClusterDrsPlan(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListClusterDrsPlan", reflect.TypeOf((*MockClusterServiceIface)(nil).ListClusterDrsPlan), p) +} + // ListClusters mocks base method. func (m *MockClusterServiceIface) ListClusters(p *ListClustersParams) (*ListClustersResponse, error) { m.ctrl.T.Helper() @@ -293,7 +365,7 @@ func (m *MockClusterServiceIface) ListClusters(p *ListClustersParams) (*ListClus } // ListClusters indicates an expected call of ListClusters. -func (mr *MockClusterServiceIfaceMockRecorder) ListClusters(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) ListClusters(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListClusters", reflect.TypeOf((*MockClusterServiceIface)(nil).ListClusters), p) } @@ -308,7 +380,7 @@ func (m *MockClusterServiceIface) ListClustersMetrics(p *ListClustersMetricsPara } // ListClustersMetrics indicates an expected call of ListClustersMetrics. -func (mr *MockClusterServiceIfaceMockRecorder) ListClustersMetrics(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) ListClustersMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListClustersMetrics", reflect.TypeOf((*MockClusterServiceIface)(nil).ListClustersMetrics), p) } @@ -323,7 +395,7 @@ func (m *MockClusterServiceIface) ListDedicatedClusters(p *ListDedicatedClusters } // ListDedicatedClusters indicates an expected call of ListDedicatedClusters. -func (mr *MockClusterServiceIfaceMockRecorder) ListDedicatedClusters(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) ListDedicatedClusters(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDedicatedClusters", reflect.TypeOf((*MockClusterServiceIface)(nil).ListDedicatedClusters), p) } @@ -337,7 +409,7 @@ func (m *MockClusterServiceIface) NewAddClusterParams(clustername, clustertype, } // NewAddClusterParams indicates an expected call of NewAddClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewAddClusterParams(clustername, clustertype, hypervisor, podid, zoneid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewAddClusterParams(clustername, clustertype, hypervisor, podid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewAddClusterParams), clustername, clustertype, hypervisor, podid, zoneid) } @@ -351,7 +423,7 @@ func (m *MockClusterServiceIface) NewDedicateClusterParams(clusterid, domainid s } // NewDedicateClusterParams indicates an expected call of NewDedicateClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewDedicateClusterParams(clusterid, domainid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewDedicateClusterParams(clusterid, domainid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicateClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewDedicateClusterParams), clusterid, domainid) } @@ -365,7 +437,7 @@ func (m *MockClusterServiceIface) NewDeleteClusterParams(id string) *DeleteClust } // NewDeleteClusterParams indicates an expected call of NewDeleteClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewDeleteClusterParams(id interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewDeleteClusterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewDeleteClusterParams), id) } @@ -379,7 +451,7 @@ func (m *MockClusterServiceIface) NewDisableHAForClusterParams(clusterid string) } // NewDisableHAForClusterParams indicates an expected call of NewDisableHAForClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewDisableHAForClusterParams(clusterid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewDisableHAForClusterParams(clusterid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableHAForClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewDisableHAForClusterParams), clusterid) } @@ -393,7 +465,7 @@ func (m *MockClusterServiceIface) NewDisableOutOfBandManagementForClusterParams( } // NewDisableOutOfBandManagementForClusterParams indicates an expected call of NewDisableOutOfBandManagementForClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewDisableOutOfBandManagementForClusterParams(clusterid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewDisableOutOfBandManagementForClusterParams(clusterid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableOutOfBandManagementForClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewDisableOutOfBandManagementForClusterParams), clusterid) } @@ -407,7 +479,7 @@ func (m *MockClusterServiceIface) NewEnableHAForClusterParams(clusterid string) } // NewEnableHAForClusterParams indicates an expected call of NewEnableHAForClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewEnableHAForClusterParams(clusterid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewEnableHAForClusterParams(clusterid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableHAForClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewEnableHAForClusterParams), clusterid) } @@ -421,11 +493,53 @@ func (m *MockClusterServiceIface) NewEnableOutOfBandManagementForClusterParams(c } // NewEnableOutOfBandManagementForClusterParams indicates an expected call of NewEnableOutOfBandManagementForClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewEnableOutOfBandManagementForClusterParams(clusterid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewEnableOutOfBandManagementForClusterParams(clusterid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableOutOfBandManagementForClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewEnableOutOfBandManagementForClusterParams), clusterid) } +// NewExecuteClusterDrsPlanParams mocks base method. +func (m *MockClusterServiceIface) NewExecuteClusterDrsPlanParams(id string) *ExecuteClusterDrsPlanParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewExecuteClusterDrsPlanParams", id) + ret0, _ := ret[0].(*ExecuteClusterDrsPlanParams) + return ret0 +} + +// NewExecuteClusterDrsPlanParams indicates an expected call of NewExecuteClusterDrsPlanParams. +func (mr *MockClusterServiceIfaceMockRecorder) NewExecuteClusterDrsPlanParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExecuteClusterDrsPlanParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewExecuteClusterDrsPlanParams), id) +} + +// NewGenerateClusterDrsPlanParams mocks base method. +func (m *MockClusterServiceIface) NewGenerateClusterDrsPlanParams(id string) *GenerateClusterDrsPlanParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewGenerateClusterDrsPlanParams", id) + ret0, _ := ret[0].(*GenerateClusterDrsPlanParams) + return ret0 +} + +// NewGenerateClusterDrsPlanParams indicates an expected call of NewGenerateClusterDrsPlanParams. +func (mr *MockClusterServiceIfaceMockRecorder) NewGenerateClusterDrsPlanParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGenerateClusterDrsPlanParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewGenerateClusterDrsPlanParams), id) +} + +// NewListClusterDrsPlanParams mocks base method. +func (m *MockClusterServiceIface) NewListClusterDrsPlanParams() *ListClusterDrsPlanParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListClusterDrsPlanParams") + ret0, _ := ret[0].(*ListClusterDrsPlanParams) + return ret0 +} + +// NewListClusterDrsPlanParams indicates an expected call of NewListClusterDrsPlanParams. +func (mr *MockClusterServiceIfaceMockRecorder) NewListClusterDrsPlanParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListClusterDrsPlanParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewListClusterDrsPlanParams)) +} + // NewListClustersMetricsParams mocks base method. func (m *MockClusterServiceIface) NewListClustersMetricsParams() *ListClustersMetricsParams { m.ctrl.T.Helper() @@ -477,7 +591,7 @@ func (m *MockClusterServiceIface) NewReleaseDedicatedClusterParams(clusterid str } // NewReleaseDedicatedClusterParams indicates an expected call of NewReleaseDedicatedClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewReleaseDedicatedClusterParams(clusterid interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewReleaseDedicatedClusterParams(clusterid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseDedicatedClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewReleaseDedicatedClusterParams), clusterid) } @@ -491,7 +605,7 @@ func (m *MockClusterServiceIface) NewUpdateClusterParams(id string) *UpdateClust } // NewUpdateClusterParams indicates an expected call of NewUpdateClusterParams. -func (mr *MockClusterServiceIfaceMockRecorder) NewUpdateClusterParams(id interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) NewUpdateClusterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateClusterParams", reflect.TypeOf((*MockClusterServiceIface)(nil).NewUpdateClusterParams), id) } @@ -506,7 +620,7 @@ func (m *MockClusterServiceIface) ReleaseDedicatedCluster(p *ReleaseDedicatedClu } // ReleaseDedicatedCluster indicates an expected call of ReleaseDedicatedCluster. -func (mr *MockClusterServiceIfaceMockRecorder) ReleaseDedicatedCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) ReleaseDedicatedCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseDedicatedCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).ReleaseDedicatedCluster), p) } @@ -521,7 +635,7 @@ func (m *MockClusterServiceIface) UpdateCluster(p *UpdateClusterParams) (*Update } // UpdateCluster indicates an expected call of UpdateCluster. -func (mr *MockClusterServiceIfaceMockRecorder) UpdateCluster(p interface{}) *gomock.Call { +func (mr *MockClusterServiceIfaceMockRecorder) UpdateCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCluster", reflect.TypeOf((*MockClusterServiceIface)(nil).UpdateCluster), p) } diff --git a/cloudstack/ConfigurationService.go b/cloudstack/ConfigurationService.go index eb6d94a1..5fa60aec 100644 --- a/cloudstack/ConfigurationService.go +++ b/cloudstack/ConfigurationService.go @@ -28,6 +28,8 @@ import ( type ConfigurationServiceIface interface { ListCapabilities(p *ListCapabilitiesParams) (*ListCapabilitiesResponse, error) NewListCapabilitiesParams() *ListCapabilitiesParams + ListConfigurationGroups(p *ListConfigurationGroupsParams) (*ListConfigurationGroupsResponse, error) + NewListConfigurationGroupsParams() *ListConfigurationGroupsParams ListConfigurations(p *ListConfigurationsParams) (*ListConfigurationsResponse, error) NewListConfigurationsParams() *ListConfigurationsParams ListDeploymentPlanners(p *ListDeploymentPlannersParams) (*ListDeploymentPlannersResponse, error) @@ -112,6 +114,158 @@ type Capability struct { Userpublictemplateenabled bool `json:"userpublictemplateenabled"` } +type ListConfigurationGroupsParams struct { + p map[string]interface{} +} + +func (p *ListConfigurationGroupsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["group"]; found { + u.Set("group", v.(string)) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + return u +} + +func (p *ListConfigurationGroupsParams) SetGroup(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["group"] = v +} + +func (p *ListConfigurationGroupsParams) ResetGroup() { + if p.p != nil && p.p["group"] != nil { + delete(p.p, "group") + } +} + +func (p *ListConfigurationGroupsParams) GetGroup() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["group"].(string) + return value, ok +} + +func (p *ListConfigurationGroupsParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListConfigurationGroupsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListConfigurationGroupsParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListConfigurationGroupsParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListConfigurationGroupsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListConfigurationGroupsParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListConfigurationGroupsParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListConfigurationGroupsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListConfigurationGroupsParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +// You should always use this function to get a new ListConfigurationGroupsParams instance, +// as then you are sure you have configured all required params +func (s *ConfigurationService) NewListConfigurationGroupsParams() *ListConfigurationGroupsParams { + p := &ListConfigurationGroupsParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists all configuration groups (primarily used for UI). +func (s *ConfigurationService) ListConfigurationGroups(p *ListConfigurationGroupsParams) (*ListConfigurationGroupsResponse, error) { + resp, err := s.cs.newRequest("listConfigurationGroups", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListConfigurationGroupsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListConfigurationGroupsResponse struct { + Count int `json:"count"` + ConfigurationGroups []*ConfigurationGroup `json:"configurationgroup"` +} + +type ConfigurationGroup struct { + Description string `json:"description"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Precedence int64 `json:"precedence"` + Subgroup []ConfigurationGroupSubgroup `json:"subgroup"` +} + +type ConfigurationGroupSubgroup struct { + Name string `json:"name"` + Precedence int64 `json:"precedence"` +} + type ListConfigurationsParams struct { p map[string]interface{} } @@ -1182,7 +1336,9 @@ type UpdateStorageCapabilitiesResponse struct { Istagarule bool `json:"istagarule"` JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` + Managed bool `json:"managed"` Name string `json:"name"` + Nfsmountopts string `json:"nfsmountopts"` Overprovisionfactor string `json:"overprovisionfactor"` Path string `json:"path"` Podid string `json:"podid"` @@ -1191,6 +1347,7 @@ type UpdateStorageCapabilitiesResponse struct { Scope string `json:"scope"` State string `json:"state"` Storagecapabilities map[string]string `json:"storagecapabilities"` + Storagecustomstats map[string]string `json:"storagecustomstats"` Suitableformigration bool `json:"suitableformigration"` Tags string `json:"tags"` Type string `json:"type"` diff --git a/cloudstack/ConfigurationService_mock.go b/cloudstack/ConfigurationService_mock.go index 891178bd..e7efe3ea 100644 --- a/cloudstack/ConfigurationService_mock.go +++ b/cloudstack/ConfigurationService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ConfigurationService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ConfigurationService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ConfigurationService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockConfigurationServiceIface is a mock of ConfigurationServiceIface interface. type MockConfigurationServiceIface struct { ctrl *gomock.Controller recorder *MockConfigurationServiceIfaceMockRecorder + isgomock struct{} } // MockConfigurationServiceIfaceMockRecorder is the mock recorder for MockConfigurationServiceIface. @@ -62,11 +68,26 @@ func (m *MockConfigurationServiceIface) ListCapabilities(p *ListCapabilitiesPara } // ListCapabilities indicates an expected call of ListCapabilities. -func (mr *MockConfigurationServiceIfaceMockRecorder) ListCapabilities(p interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) ListCapabilities(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCapabilities", reflect.TypeOf((*MockConfigurationServiceIface)(nil).ListCapabilities), p) } +// ListConfigurationGroups mocks base method. +func (m *MockConfigurationServiceIface) ListConfigurationGroups(p *ListConfigurationGroupsParams) (*ListConfigurationGroupsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListConfigurationGroups", p) + ret0, _ := ret[0].(*ListConfigurationGroupsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListConfigurationGroups indicates an expected call of ListConfigurationGroups. +func (mr *MockConfigurationServiceIfaceMockRecorder) ListConfigurationGroups(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListConfigurationGroups", reflect.TypeOf((*MockConfigurationServiceIface)(nil).ListConfigurationGroups), p) +} + // ListConfigurations mocks base method. func (m *MockConfigurationServiceIface) ListConfigurations(p *ListConfigurationsParams) (*ListConfigurationsResponse, error) { m.ctrl.T.Helper() @@ -77,7 +98,7 @@ func (m *MockConfigurationServiceIface) ListConfigurations(p *ListConfigurations } // ListConfigurations indicates an expected call of ListConfigurations. -func (mr *MockConfigurationServiceIfaceMockRecorder) ListConfigurations(p interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) ListConfigurations(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListConfigurations", reflect.TypeOf((*MockConfigurationServiceIface)(nil).ListConfigurations), p) } @@ -92,7 +113,7 @@ func (m *MockConfigurationServiceIface) ListDeploymentPlanners(p *ListDeployment } // ListDeploymentPlanners indicates an expected call of ListDeploymentPlanners. -func (mr *MockConfigurationServiceIfaceMockRecorder) ListDeploymentPlanners(p interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) ListDeploymentPlanners(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDeploymentPlanners", reflect.TypeOf((*MockConfigurationServiceIface)(nil).ListDeploymentPlanners), p) } @@ -111,6 +132,20 @@ func (mr *MockConfigurationServiceIfaceMockRecorder) NewListCapabilitiesParams() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListCapabilitiesParams", reflect.TypeOf((*MockConfigurationServiceIface)(nil).NewListCapabilitiesParams)) } +// NewListConfigurationGroupsParams mocks base method. +func (m *MockConfigurationServiceIface) NewListConfigurationGroupsParams() *ListConfigurationGroupsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListConfigurationGroupsParams") + ret0, _ := ret[0].(*ListConfigurationGroupsParams) + return ret0 +} + +// NewListConfigurationGroupsParams indicates an expected call of NewListConfigurationGroupsParams. +func (mr *MockConfigurationServiceIfaceMockRecorder) NewListConfigurationGroupsParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListConfigurationGroupsParams", reflect.TypeOf((*MockConfigurationServiceIface)(nil).NewListConfigurationGroupsParams)) +} + // NewListConfigurationsParams mocks base method. func (m *MockConfigurationServiceIface) NewListConfigurationsParams() *ListConfigurationsParams { m.ctrl.T.Helper() @@ -148,7 +183,7 @@ func (m *MockConfigurationServiceIface) NewResetConfigurationParams(name string) } // NewResetConfigurationParams indicates an expected call of NewResetConfigurationParams. -func (mr *MockConfigurationServiceIfaceMockRecorder) NewResetConfigurationParams(name interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) NewResetConfigurationParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResetConfigurationParams", reflect.TypeOf((*MockConfigurationServiceIface)(nil).NewResetConfigurationParams), name) } @@ -162,7 +197,7 @@ func (m *MockConfigurationServiceIface) NewUpdateConfigurationParams(name string } // NewUpdateConfigurationParams indicates an expected call of NewUpdateConfigurationParams. -func (mr *MockConfigurationServiceIfaceMockRecorder) NewUpdateConfigurationParams(name interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) NewUpdateConfigurationParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateConfigurationParams", reflect.TypeOf((*MockConfigurationServiceIface)(nil).NewUpdateConfigurationParams), name) } @@ -176,7 +211,7 @@ func (m *MockConfigurationServiceIface) NewUpdateStorageCapabilitiesParams(id st } // NewUpdateStorageCapabilitiesParams indicates an expected call of NewUpdateStorageCapabilitiesParams. -func (mr *MockConfigurationServiceIfaceMockRecorder) NewUpdateStorageCapabilitiesParams(id interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) NewUpdateStorageCapabilitiesParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateStorageCapabilitiesParams", reflect.TypeOf((*MockConfigurationServiceIface)(nil).NewUpdateStorageCapabilitiesParams), id) } @@ -191,7 +226,7 @@ func (m *MockConfigurationServiceIface) ResetConfiguration(p *ResetConfiguration } // ResetConfiguration indicates an expected call of ResetConfiguration. -func (mr *MockConfigurationServiceIfaceMockRecorder) ResetConfiguration(p interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) ResetConfiguration(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetConfiguration", reflect.TypeOf((*MockConfigurationServiceIface)(nil).ResetConfiguration), p) } @@ -206,7 +241,7 @@ func (m *MockConfigurationServiceIface) UpdateConfiguration(p *UpdateConfigurati } // UpdateConfiguration indicates an expected call of UpdateConfiguration. -func (mr *MockConfigurationServiceIfaceMockRecorder) UpdateConfiguration(p interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) UpdateConfiguration(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateConfiguration", reflect.TypeOf((*MockConfigurationServiceIface)(nil).UpdateConfiguration), p) } @@ -221,7 +256,7 @@ func (m *MockConfigurationServiceIface) UpdateStorageCapabilities(p *UpdateStora } // UpdateStorageCapabilities indicates an expected call of UpdateStorageCapabilities. -func (mr *MockConfigurationServiceIfaceMockRecorder) UpdateStorageCapabilities(p interface{}) *gomock.Call { +func (mr *MockConfigurationServiceIfaceMockRecorder) UpdateStorageCapabilities(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateStorageCapabilities", reflect.TypeOf((*MockConfigurationServiceIface)(nil).UpdateStorageCapabilities), p) } diff --git a/cloudstack/ConsoleEndpointService_mock.go b/cloudstack/ConsoleEndpointService_mock.go index eae0f8bb..2f231aed 100644 --- a/cloudstack/ConsoleEndpointService_mock.go +++ b/cloudstack/ConsoleEndpointService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ConsoleEndpointService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ConsoleEndpointService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ConsoleEndpointService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockConsoleEndpointServiceIface is a mock of ConsoleEndpointServiceIface interface. type MockConsoleEndpointServiceIface struct { ctrl *gomock.Controller recorder *MockConsoleEndpointServiceIfaceMockRecorder + isgomock struct{} } // MockConsoleEndpointServiceIfaceMockRecorder is the mock recorder for MockConsoleEndpointServiceIface. @@ -62,7 +68,7 @@ func (m *MockConsoleEndpointServiceIface) CreateConsoleEndpoint(p *CreateConsole } // CreateConsoleEndpoint indicates an expected call of CreateConsoleEndpoint. -func (mr *MockConsoleEndpointServiceIfaceMockRecorder) CreateConsoleEndpoint(p interface{}) *gomock.Call { +func (mr *MockConsoleEndpointServiceIfaceMockRecorder) CreateConsoleEndpoint(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateConsoleEndpoint", reflect.TypeOf((*MockConsoleEndpointServiceIface)(nil).CreateConsoleEndpoint), p) } @@ -76,7 +82,7 @@ func (m *MockConsoleEndpointServiceIface) NewCreateConsoleEndpointParams(virtual } // NewCreateConsoleEndpointParams indicates an expected call of NewCreateConsoleEndpointParams. -func (mr *MockConsoleEndpointServiceIfaceMockRecorder) NewCreateConsoleEndpointParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockConsoleEndpointServiceIfaceMockRecorder) NewCreateConsoleEndpointParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateConsoleEndpointParams", reflect.TypeOf((*MockConsoleEndpointServiceIface)(nil).NewCreateConsoleEndpointParams), virtualmachineid) } diff --git a/cloudstack/CustomService_mock.go b/cloudstack/CustomService_mock.go index 31a53e80..a9230d49 100644 --- a/cloudstack/CustomService_mock.go +++ b/cloudstack/CustomService_mock.go @@ -19,18 +19,24 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/CustomService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/CustomService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/CustomService.go +// // Package cloudstack is a generated GoMock package. package cloudstack import ( - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockCustomServiceIface is a mock of CustomServiceIface interface. type MockCustomServiceIface struct { ctrl *gomock.Controller recorder *MockCustomServiceIfaceMockRecorder + isgomock struct{} } // MockCustomServiceIfaceMockRecorder is the mock recorder for MockCustomServiceIface. diff --git a/cloudstack/DiagnosticsService.go b/cloudstack/DiagnosticsService.go index f45f82d4..3657df62 100644 --- a/cloudstack/DiagnosticsService.go +++ b/cloudstack/DiagnosticsService.go @@ -28,6 +28,8 @@ import ( type DiagnosticsServiceIface interface { GetDiagnosticsData(p *GetDiagnosticsDataParams) (*GetDiagnosticsDataResponse, error) NewGetDiagnosticsDataParams(targetid string) *GetDiagnosticsDataParams + RunDiagnostics(p *RunDiagnosticsParams) (*RunDiagnosticsResponse, error) + NewRunDiagnosticsParams(ipaddress string, targetid string, diagnosticsType string) *RunDiagnosticsParams } type GetDiagnosticsDataParams struct { @@ -140,3 +142,165 @@ type GetDiagnosticsDataResponse struct { Jobstatus int `json:"jobstatus"` Url string `json:"url"` } + +type RunDiagnosticsParams struct { + p map[string]interface{} +} + +func (p *RunDiagnosticsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["params"]; found { + u.Set("params", v.(string)) + } + if v, found := p.p["targetid"]; found { + u.Set("targetid", v.(string)) + } + if v, found := p.p["type"]; found { + u.Set("type", v.(string)) + } + return u +} + +func (p *RunDiagnosticsParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *RunDiagnosticsParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *RunDiagnosticsParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *RunDiagnosticsParams) SetParams(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["params"] = v +} + +func (p *RunDiagnosticsParams) ResetParams() { + if p.p != nil && p.p["params"] != nil { + delete(p.p, "params") + } +} + +func (p *RunDiagnosticsParams) GetParams() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["params"].(string) + return value, ok +} + +func (p *RunDiagnosticsParams) SetTargetid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["targetid"] = v +} + +func (p *RunDiagnosticsParams) ResetTargetid() { + if p.p != nil && p.p["targetid"] != nil { + delete(p.p, "targetid") + } +} + +func (p *RunDiagnosticsParams) GetTargetid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["targetid"].(string) + return value, ok +} + +func (p *RunDiagnosticsParams) SetType(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["type"] = v +} + +func (p *RunDiagnosticsParams) ResetType() { + if p.p != nil && p.p["type"] != nil { + delete(p.p, "type") + } +} + +func (p *RunDiagnosticsParams) GetType() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["type"].(string) + return value, ok +} + +// You should always use this function to get a new RunDiagnosticsParams instance, +// as then you are sure you have configured all required params +func (s *DiagnosticsService) NewRunDiagnosticsParams(ipaddress string, targetid string, diagnosticsType string) *RunDiagnosticsParams { + p := &RunDiagnosticsParams{} + p.p = make(map[string]interface{}) + p.p["ipaddress"] = ipaddress + p.p["targetid"] = targetid + p.p["type"] = diagnosticsType + return p +} + +// Execute network-utility command (ping/arping/tracert) on system VMs remotely +func (s *DiagnosticsService) RunDiagnostics(p *RunDiagnosticsParams) (*RunDiagnosticsResponse, error) { + resp, err := s.cs.newRequest("runDiagnostics", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RunDiagnosticsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type RunDiagnosticsResponse struct { + Exitcode string `json:"exitcode"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Stderr string `json:"stderr"` + Stdout string `json:"stdout"` +} diff --git a/cloudstack/DiagnosticsService_mock.go b/cloudstack/DiagnosticsService_mock.go index 678e39f3..1fdcbfa6 100644 --- a/cloudstack/DiagnosticsService_mock.go +++ b/cloudstack/DiagnosticsService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/DiagnosticsService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/DiagnosticsService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/DiagnosticsService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockDiagnosticsServiceIface is a mock of DiagnosticsServiceIface interface. type MockDiagnosticsServiceIface struct { ctrl *gomock.Controller recorder *MockDiagnosticsServiceIfaceMockRecorder + isgomock struct{} } // MockDiagnosticsServiceIfaceMockRecorder is the mock recorder for MockDiagnosticsServiceIface. @@ -62,7 +68,7 @@ func (m *MockDiagnosticsServiceIface) GetDiagnosticsData(p *GetDiagnosticsDataPa } // GetDiagnosticsData indicates an expected call of GetDiagnosticsData. -func (mr *MockDiagnosticsServiceIfaceMockRecorder) GetDiagnosticsData(p interface{}) *gomock.Call { +func (mr *MockDiagnosticsServiceIfaceMockRecorder) GetDiagnosticsData(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDiagnosticsData", reflect.TypeOf((*MockDiagnosticsServiceIface)(nil).GetDiagnosticsData), p) } @@ -76,7 +82,36 @@ func (m *MockDiagnosticsServiceIface) NewGetDiagnosticsDataParams(targetid strin } // NewGetDiagnosticsDataParams indicates an expected call of NewGetDiagnosticsDataParams. -func (mr *MockDiagnosticsServiceIfaceMockRecorder) NewGetDiagnosticsDataParams(targetid interface{}) *gomock.Call { +func (mr *MockDiagnosticsServiceIfaceMockRecorder) NewGetDiagnosticsDataParams(targetid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetDiagnosticsDataParams", reflect.TypeOf((*MockDiagnosticsServiceIface)(nil).NewGetDiagnosticsDataParams), targetid) } + +// NewRunDiagnosticsParams mocks base method. +func (m *MockDiagnosticsServiceIface) NewRunDiagnosticsParams(ipaddress, targetid, diagnosticsType string) *RunDiagnosticsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRunDiagnosticsParams", ipaddress, targetid, diagnosticsType) + ret0, _ := ret[0].(*RunDiagnosticsParams) + return ret0 +} + +// NewRunDiagnosticsParams indicates an expected call of NewRunDiagnosticsParams. +func (mr *MockDiagnosticsServiceIfaceMockRecorder) NewRunDiagnosticsParams(ipaddress, targetid, diagnosticsType any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRunDiagnosticsParams", reflect.TypeOf((*MockDiagnosticsServiceIface)(nil).NewRunDiagnosticsParams), ipaddress, targetid, diagnosticsType) +} + +// RunDiagnostics mocks base method. +func (m *MockDiagnosticsServiceIface) RunDiagnostics(p *RunDiagnosticsParams) (*RunDiagnosticsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RunDiagnostics", p) + ret0, _ := ret[0].(*RunDiagnosticsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RunDiagnostics indicates an expected call of RunDiagnostics. +func (mr *MockDiagnosticsServiceIfaceMockRecorder) RunDiagnostics(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RunDiagnostics", reflect.TypeOf((*MockDiagnosticsServiceIface)(nil).RunDiagnostics), p) +} diff --git a/cloudstack/DiskOfferingService_mock.go b/cloudstack/DiskOfferingService_mock.go index 07706bf4..eb8d9651 100644 --- a/cloudstack/DiskOfferingService_mock.go +++ b/cloudstack/DiskOfferingService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/DiskOfferingService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/DiskOfferingService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/DiskOfferingService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockDiskOfferingServiceIface is a mock of DiskOfferingServiceIface interface. type MockDiskOfferingServiceIface struct { ctrl *gomock.Controller recorder *MockDiskOfferingServiceIfaceMockRecorder + isgomock struct{} } // MockDiskOfferingServiceIfaceMockRecorder is the mock recorder for MockDiskOfferingServiceIface. @@ -62,7 +68,7 @@ func (m *MockDiskOfferingServiceIface) CreateDiskOffering(p *CreateDiskOfferingP } // CreateDiskOffering indicates an expected call of CreateDiskOffering. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) CreateDiskOffering(p interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) CreateDiskOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDiskOffering", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).CreateDiskOffering), p) } @@ -77,7 +83,7 @@ func (m *MockDiskOfferingServiceIface) DeleteDiskOffering(p *DeleteDiskOfferingP } // DeleteDiskOffering indicates an expected call of DeleteDiskOffering. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) DeleteDiskOffering(p interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) DeleteDiskOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDiskOffering", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).DeleteDiskOffering), p) } @@ -85,7 +91,7 @@ func (mr *MockDiskOfferingServiceIfaceMockRecorder) DeleteDiskOffering(p interfa // GetDiskOfferingByID mocks base method. func (m *MockDiskOfferingServiceIface) GetDiskOfferingByID(id string, opts ...OptionFunc) (*DiskOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockDiskOfferingServiceIface) GetDiskOfferingByID(id string, opts ...Op } // GetDiskOfferingByID indicates an expected call of GetDiskOfferingByID. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) GetDiskOfferingByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) GetDiskOfferingByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDiskOfferingByID", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).GetDiskOfferingByID), varargs...) } // GetDiskOfferingByName mocks base method. func (m *MockDiskOfferingServiceIface) GetDiskOfferingByName(name string, opts ...OptionFunc) (*DiskOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockDiskOfferingServiceIface) GetDiskOfferingByName(name string, opts . } // GetDiskOfferingByName indicates an expected call of GetDiskOfferingByName. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) GetDiskOfferingByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) GetDiskOfferingByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDiskOfferingByName", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).GetDiskOfferingByName), varargs...) } // GetDiskOfferingID mocks base method. func (m *MockDiskOfferingServiceIface) GetDiskOfferingID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockDiskOfferingServiceIface) GetDiskOfferingID(name string, opts ...Op } // GetDiskOfferingID indicates an expected call of GetDiskOfferingID. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) GetDiskOfferingID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) GetDiskOfferingID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDiskOfferingID", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).GetDiskOfferingID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockDiskOfferingServiceIface) ListDiskOfferings(p *ListDiskOfferingsPar } // ListDiskOfferings indicates an expected call of ListDiskOfferings. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) ListDiskOfferings(p interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) ListDiskOfferings(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDiskOfferings", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).ListDiskOfferings), p) } @@ -169,7 +175,7 @@ func (m *MockDiskOfferingServiceIface) NewCreateDiskOfferingParams(displaytext, } // NewCreateDiskOfferingParams indicates an expected call of NewCreateDiskOfferingParams. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) NewCreateDiskOfferingParams(displaytext, name interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) NewCreateDiskOfferingParams(displaytext, name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateDiskOfferingParams", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).NewCreateDiskOfferingParams), displaytext, name) } @@ -183,7 +189,7 @@ func (m *MockDiskOfferingServiceIface) NewDeleteDiskOfferingParams(id string) *D } // NewDeleteDiskOfferingParams indicates an expected call of NewDeleteDiskOfferingParams. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) NewDeleteDiskOfferingParams(id interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) NewDeleteDiskOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteDiskOfferingParams", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).NewDeleteDiskOfferingParams), id) } @@ -211,7 +217,7 @@ func (m *MockDiskOfferingServiceIface) NewUpdateDiskOfferingParams(id string) *U } // NewUpdateDiskOfferingParams indicates an expected call of NewUpdateDiskOfferingParams. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) NewUpdateDiskOfferingParams(id interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) NewUpdateDiskOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateDiskOfferingParams", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).NewUpdateDiskOfferingParams), id) } @@ -226,7 +232,7 @@ func (m *MockDiskOfferingServiceIface) UpdateDiskOffering(p *UpdateDiskOfferingP } // UpdateDiskOffering indicates an expected call of UpdateDiskOffering. -func (mr *MockDiskOfferingServiceIfaceMockRecorder) UpdateDiskOffering(p interface{}) *gomock.Call { +func (mr *MockDiskOfferingServiceIfaceMockRecorder) UpdateDiskOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDiskOffering", reflect.TypeOf((*MockDiskOfferingServiceIface)(nil).UpdateDiskOffering), p) } diff --git a/cloudstack/DomainService.go b/cloudstack/DomainService.go index d6adbe8a..c69860d0 100644 --- a/cloudstack/DomainService.go +++ b/cloudstack/DomainService.go @@ -42,6 +42,8 @@ type DomainServiceIface interface { GetDomainID(name string, opts ...OptionFunc) (string, int, error) GetDomainByName(name string, opts ...OptionFunc) (*Domain, int, error) GetDomainByID(id string, opts ...OptionFunc) (*Domain, int, error) + MoveDomain(p *MoveDomainParams) (*MoveDomainResponse, error) + NewMoveDomainParams(domainid string, parentdomainid string) *MoveDomainParams UpdateDomain(p *UpdateDomainParams) (*UpdateDomainResponse, error) NewUpdateDomainParams(id string) *UpdateDomainParams } @@ -1143,6 +1145,146 @@ type Domain struct { Vpctotal int64 `json:"vpctotal"` } +type MoveDomainParams struct { + p map[string]interface{} +} + +func (p *MoveDomainParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["parentdomainid"]; found { + u.Set("parentdomainid", v.(string)) + } + return u +} + +func (p *MoveDomainParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *MoveDomainParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *MoveDomainParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *MoveDomainParams) SetParentdomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["parentdomainid"] = v +} + +func (p *MoveDomainParams) ResetParentdomainid() { + if p.p != nil && p.p["parentdomainid"] != nil { + delete(p.p, "parentdomainid") + } +} + +func (p *MoveDomainParams) GetParentdomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["parentdomainid"].(string) + return value, ok +} + +// You should always use this function to get a new MoveDomainParams instance, +// as then you are sure you have configured all required params +func (s *DomainService) NewMoveDomainParams(domainid string, parentdomainid string) *MoveDomainParams { + p := &MoveDomainParams{} + p.p = make(map[string]interface{}) + p.p["domainid"] = domainid + p.p["parentdomainid"] = parentdomainid + return p +} + +// Moves a domain and its children to a new parent domain. +func (s *DomainService) MoveDomain(p *MoveDomainParams) (*MoveDomainResponse, error) { + resp, err := s.cs.newRequest("moveDomain", p.toURLValues()) + if err != nil { + return nil, err + } + + var r MoveDomainResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type MoveDomainResponse struct { + 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 interface{} `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"` + Taggedresources []string `json:"taggedresources"` + 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 { p map[string]interface{} } diff --git a/cloudstack/DomainService_mock.go b/cloudstack/DomainService_mock.go index 94e4029f..570eadf8 100644 --- a/cloudstack/DomainService_mock.go +++ b/cloudstack/DomainService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/DomainService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/DomainService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/DomainService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockDomainServiceIface is a mock of DomainServiceIface interface. type MockDomainServiceIface struct { ctrl *gomock.Controller recorder *MockDomainServiceIfaceMockRecorder + isgomock struct{} } // MockDomainServiceIfaceMockRecorder is the mock recorder for MockDomainServiceIface. @@ -62,7 +68,7 @@ func (m *MockDomainServiceIface) CreateDomain(p *CreateDomainParams) (*CreateDom } // CreateDomain indicates an expected call of CreateDomain. -func (mr *MockDomainServiceIfaceMockRecorder) CreateDomain(p interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) CreateDomain(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDomain", reflect.TypeOf((*MockDomainServiceIface)(nil).CreateDomain), p) } @@ -77,7 +83,7 @@ func (m *MockDomainServiceIface) DeleteDomain(p *DeleteDomainParams) (*DeleteDom } // DeleteDomain indicates an expected call of DeleteDomain. -func (mr *MockDomainServiceIfaceMockRecorder) DeleteDomain(p interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) DeleteDomain(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDomain", reflect.TypeOf((*MockDomainServiceIface)(nil).DeleteDomain), p) } @@ -85,7 +91,7 @@ func (mr *MockDomainServiceIfaceMockRecorder) DeleteDomain(p interface{}) *gomoc // GetDomainByID mocks base method. func (m *MockDomainServiceIface) GetDomainByID(id string, opts ...OptionFunc) (*Domain, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockDomainServiceIface) GetDomainByID(id string, opts ...OptionFunc) (* } // GetDomainByID indicates an expected call of GetDomainByID. -func (mr *MockDomainServiceIfaceMockRecorder) GetDomainByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) GetDomainByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomainByID", reflect.TypeOf((*MockDomainServiceIface)(nil).GetDomainByID), varargs...) } // GetDomainByName mocks base method. func (m *MockDomainServiceIface) GetDomainByName(name string, opts ...OptionFunc) (*Domain, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockDomainServiceIface) GetDomainByName(name string, opts ...OptionFunc } // GetDomainByName indicates an expected call of GetDomainByName. -func (mr *MockDomainServiceIfaceMockRecorder) GetDomainByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) GetDomainByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomainByName", reflect.TypeOf((*MockDomainServiceIface)(nil).GetDomainByName), varargs...) } // GetDomainChildrenByID mocks base method. func (m *MockDomainServiceIface) GetDomainChildrenByID(id string, opts ...OptionFunc) (*DomainChildren, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -139,16 +145,16 @@ func (m *MockDomainServiceIface) GetDomainChildrenByID(id string, opts ...Option } // GetDomainChildrenByID indicates an expected call of GetDomainChildrenByID. -func (mr *MockDomainServiceIfaceMockRecorder) GetDomainChildrenByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) GetDomainChildrenByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomainChildrenByID", reflect.TypeOf((*MockDomainServiceIface)(nil).GetDomainChildrenByID), varargs...) } // GetDomainChildrenByName mocks base method. func (m *MockDomainServiceIface) GetDomainChildrenByName(name string, opts ...OptionFunc) (*DomainChildren, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -160,16 +166,16 @@ func (m *MockDomainServiceIface) GetDomainChildrenByName(name string, opts ...Op } // GetDomainChildrenByName indicates an expected call of GetDomainChildrenByName. -func (mr *MockDomainServiceIfaceMockRecorder) GetDomainChildrenByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) GetDomainChildrenByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomainChildrenByName", reflect.TypeOf((*MockDomainServiceIface)(nil).GetDomainChildrenByName), varargs...) } // GetDomainChildrenID mocks base method. func (m *MockDomainServiceIface) GetDomainChildrenID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -181,16 +187,16 @@ func (m *MockDomainServiceIface) GetDomainChildrenID(name string, opts ...Option } // GetDomainChildrenID indicates an expected call of GetDomainChildrenID. -func (mr *MockDomainServiceIfaceMockRecorder) GetDomainChildrenID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) GetDomainChildrenID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomainChildrenID", reflect.TypeOf((*MockDomainServiceIface)(nil).GetDomainChildrenID), varargs...) } // GetDomainID mocks base method. func (m *MockDomainServiceIface) GetDomainID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -202,9 +208,9 @@ func (m *MockDomainServiceIface) GetDomainID(name string, opts ...OptionFunc) (s } // GetDomainID indicates an expected call of GetDomainID. -func (mr *MockDomainServiceIfaceMockRecorder) GetDomainID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) GetDomainID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomainID", reflect.TypeOf((*MockDomainServiceIface)(nil).GetDomainID), varargs...) } @@ -218,7 +224,7 @@ func (m *MockDomainServiceIface) ListDomainChildren(p *ListDomainChildrenParams) } // ListDomainChildren indicates an expected call of ListDomainChildren. -func (mr *MockDomainServiceIfaceMockRecorder) ListDomainChildren(p interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) ListDomainChildren(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDomainChildren", reflect.TypeOf((*MockDomainServiceIface)(nil).ListDomainChildren), p) } @@ -233,11 +239,26 @@ func (m *MockDomainServiceIface) ListDomains(p *ListDomainsParams) (*ListDomains } // ListDomains indicates an expected call of ListDomains. -func (mr *MockDomainServiceIfaceMockRecorder) ListDomains(p interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) ListDomains(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDomains", reflect.TypeOf((*MockDomainServiceIface)(nil).ListDomains), p) } +// MoveDomain mocks base method. +func (m *MockDomainServiceIface) MoveDomain(p *MoveDomainParams) (*MoveDomainResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MoveDomain", p) + ret0, _ := ret[0].(*MoveDomainResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MoveDomain indicates an expected call of MoveDomain. +func (mr *MockDomainServiceIfaceMockRecorder) MoveDomain(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MoveDomain", reflect.TypeOf((*MockDomainServiceIface)(nil).MoveDomain), p) +} + // NewCreateDomainParams mocks base method. func (m *MockDomainServiceIface) NewCreateDomainParams(name string) *CreateDomainParams { m.ctrl.T.Helper() @@ -247,7 +268,7 @@ func (m *MockDomainServiceIface) NewCreateDomainParams(name string) *CreateDomai } // NewCreateDomainParams indicates an expected call of NewCreateDomainParams. -func (mr *MockDomainServiceIfaceMockRecorder) NewCreateDomainParams(name interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) NewCreateDomainParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateDomainParams", reflect.TypeOf((*MockDomainServiceIface)(nil).NewCreateDomainParams), name) } @@ -261,7 +282,7 @@ func (m *MockDomainServiceIface) NewDeleteDomainParams(id string) *DeleteDomainP } // NewDeleteDomainParams indicates an expected call of NewDeleteDomainParams. -func (mr *MockDomainServiceIfaceMockRecorder) NewDeleteDomainParams(id interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) NewDeleteDomainParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteDomainParams", reflect.TypeOf((*MockDomainServiceIface)(nil).NewDeleteDomainParams), id) } @@ -294,6 +315,20 @@ func (mr *MockDomainServiceIfaceMockRecorder) NewListDomainsParams() *gomock.Cal return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListDomainsParams", reflect.TypeOf((*MockDomainServiceIface)(nil).NewListDomainsParams)) } +// NewMoveDomainParams mocks base method. +func (m *MockDomainServiceIface) NewMoveDomainParams(domainid, parentdomainid string) *MoveDomainParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewMoveDomainParams", domainid, parentdomainid) + ret0, _ := ret[0].(*MoveDomainParams) + return ret0 +} + +// NewMoveDomainParams indicates an expected call of NewMoveDomainParams. +func (mr *MockDomainServiceIfaceMockRecorder) NewMoveDomainParams(domainid, parentdomainid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMoveDomainParams", reflect.TypeOf((*MockDomainServiceIface)(nil).NewMoveDomainParams), domainid, parentdomainid) +} + // NewUpdateDomainParams mocks base method. func (m *MockDomainServiceIface) NewUpdateDomainParams(id string) *UpdateDomainParams { m.ctrl.T.Helper() @@ -303,7 +338,7 @@ func (m *MockDomainServiceIface) NewUpdateDomainParams(id string) *UpdateDomainP } // NewUpdateDomainParams indicates an expected call of NewUpdateDomainParams. -func (mr *MockDomainServiceIfaceMockRecorder) NewUpdateDomainParams(id interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) NewUpdateDomainParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateDomainParams", reflect.TypeOf((*MockDomainServiceIface)(nil).NewUpdateDomainParams), id) } @@ -318,7 +353,7 @@ func (m *MockDomainServiceIface) UpdateDomain(p *UpdateDomainParams) (*UpdateDom } // UpdateDomain indicates an expected call of UpdateDomain. -func (mr *MockDomainServiceIfaceMockRecorder) UpdateDomain(p interface{}) *gomock.Call { +func (mr *MockDomainServiceIfaceMockRecorder) UpdateDomain(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDomain", reflect.TypeOf((*MockDomainServiceIface)(nil).UpdateDomain), p) } diff --git a/cloudstack/EventService_mock.go b/cloudstack/EventService_mock.go index 14e21b20..9dd44901 100644 --- a/cloudstack/EventService_mock.go +++ b/cloudstack/EventService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/EventService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/EventService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/EventService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockEventServiceIface is a mock of EventServiceIface interface. type MockEventServiceIface struct { ctrl *gomock.Controller recorder *MockEventServiceIfaceMockRecorder + isgomock struct{} } // MockEventServiceIfaceMockRecorder is the mock recorder for MockEventServiceIface. @@ -62,7 +68,7 @@ func (m *MockEventServiceIface) ArchiveEvents(p *ArchiveEventsParams) (*ArchiveE } // ArchiveEvents indicates an expected call of ArchiveEvents. -func (mr *MockEventServiceIfaceMockRecorder) ArchiveEvents(p interface{}) *gomock.Call { +func (mr *MockEventServiceIfaceMockRecorder) ArchiveEvents(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ArchiveEvents", reflect.TypeOf((*MockEventServiceIface)(nil).ArchiveEvents), p) } @@ -77,7 +83,7 @@ func (m *MockEventServiceIface) DeleteEvents(p *DeleteEventsParams) (*DeleteEven } // DeleteEvents indicates an expected call of DeleteEvents. -func (mr *MockEventServiceIfaceMockRecorder) DeleteEvents(p interface{}) *gomock.Call { +func (mr *MockEventServiceIfaceMockRecorder) DeleteEvents(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteEvents", reflect.TypeOf((*MockEventServiceIface)(nil).DeleteEvents), p) } @@ -85,7 +91,7 @@ func (mr *MockEventServiceIfaceMockRecorder) DeleteEvents(p interface{}) *gomock // GetEventByID mocks base method. func (m *MockEventServiceIface) GetEventByID(id string, opts ...OptionFunc) (*Event, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,9 +103,9 @@ func (m *MockEventServiceIface) GetEventByID(id string, opts ...OptionFunc) (*Ev } // GetEventByID indicates an expected call of GetEventByID. -func (mr *MockEventServiceIfaceMockRecorder) GetEventByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockEventServiceIfaceMockRecorder) GetEventByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEventByID", reflect.TypeOf((*MockEventServiceIface)(nil).GetEventByID), varargs...) } @@ -113,7 +119,7 @@ func (m *MockEventServiceIface) ListEventTypes(p *ListEventTypesParams) (*ListEv } // ListEventTypes indicates an expected call of ListEventTypes. -func (mr *MockEventServiceIfaceMockRecorder) ListEventTypes(p interface{}) *gomock.Call { +func (mr *MockEventServiceIfaceMockRecorder) ListEventTypes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEventTypes", reflect.TypeOf((*MockEventServiceIface)(nil).ListEventTypes), p) } @@ -128,7 +134,7 @@ func (m *MockEventServiceIface) ListEvents(p *ListEventsParams) (*ListEventsResp } // ListEvents indicates an expected call of ListEvents. -func (mr *MockEventServiceIfaceMockRecorder) ListEvents(p interface{}) *gomock.Call { +func (mr *MockEventServiceIfaceMockRecorder) ListEvents(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvents", reflect.TypeOf((*MockEventServiceIface)(nil).ListEvents), p) } diff --git a/cloudstack/FirewallService.go b/cloudstack/FirewallService.go index 6aa94f17..84c01c1f 100644 --- a/cloudstack/FirewallService.go +++ b/cloudstack/FirewallService.go @@ -88,6 +88,8 @@ type FirewallServiceIface interface { NewCreateFirewallRuleParams(ipaddressid string, protocol string) *CreateFirewallRuleParams CreatePortForwardingRule(p *CreatePortForwardingRuleParams) (*CreatePortForwardingRuleResponse, error) NewCreatePortForwardingRuleParams(ipaddressid string, privateport int, protocol string, publicport int, virtualmachineid string) *CreatePortForwardingRuleParams + CreateRoutingFirewallRule(p *CreateRoutingFirewallRuleParams) (*CreateRoutingFirewallRuleResponse, error) + NewCreateRoutingFirewallRuleParams(networkid string, protocol string) *CreateRoutingFirewallRuleParams DeleteEgressFirewallRule(p *DeleteEgressFirewallRuleParams) (*DeleteEgressFirewallRuleResponse, error) NewDeleteEgressFirewallRuleParams(id string) *DeleteEgressFirewallRuleParams DeleteFirewallRule(p *DeleteFirewallRuleParams) (*DeleteFirewallRuleResponse, error) @@ -96,6 +98,8 @@ type FirewallServiceIface interface { NewDeletePaloAltoFirewallParams(fwdeviceid string) *DeletePaloAltoFirewallParams DeletePortForwardingRule(p *DeletePortForwardingRuleParams) (*DeletePortForwardingRuleResponse, error) NewDeletePortForwardingRuleParams(id string) *DeletePortForwardingRuleParams + DeleteRoutingFirewallRule(p *DeleteRoutingFirewallRuleParams) (*DeleteRoutingFirewallRuleResponse, error) + NewDeleteRoutingFirewallRuleParams(id string) *DeleteRoutingFirewallRuleParams ListEgressFirewallRules(p *ListEgressFirewallRulesParams) (*ListEgressFirewallRulesResponse, error) NewListEgressFirewallRulesParams() *ListEgressFirewallRulesParams GetEgressFirewallRuleByID(id string, opts ...OptionFunc) (*EgressFirewallRule, int, error) @@ -107,6 +111,9 @@ type FirewallServiceIface interface { ListPortForwardingRules(p *ListPortForwardingRulesParams) (*ListPortForwardingRulesResponse, error) NewListPortForwardingRulesParams() *ListPortForwardingRulesParams GetPortForwardingRuleByID(id string, opts ...OptionFunc) (*PortForwardingRule, int, error) + ListRoutingFirewallRules(p *ListRoutingFirewallRulesParams) (*ListRoutingFirewallRulesResponse, error) + NewListRoutingFirewallRulesParams() *ListRoutingFirewallRulesParams + GetRoutingFirewallRuleByID(id string, opts ...OptionFunc) (*RoutingFirewallRule, int, error) UpdateEgressFirewallRule(p *UpdateEgressFirewallRuleParams) (*UpdateEgressFirewallRuleResponse, error) NewUpdateEgressFirewallRuleParams(id string) *UpdateEgressFirewallRuleParams UpdateFirewallRule(p *UpdateFirewallRuleParams) (*UpdateFirewallRuleResponse, error) @@ -122,6 +129,8 @@ type FirewallServiceIface interface { NewUpdateIpv6FirewallRuleParams(id string) *UpdateIpv6FirewallRuleParams DeleteIpv6FirewallRule(p *DeleteIpv6FirewallRuleParams) (*DeleteIpv6FirewallRuleResponse, error) NewDeleteIpv6FirewallRuleParams(id string) *DeleteIpv6FirewallRuleParams + UpdateRoutingFirewallRule(p *UpdateRoutingFirewallRuleParams) (*UpdateRoutingFirewallRuleResponse, error) + NewUpdateRoutingFirewallRuleParams(id string) *UpdateRoutingFirewallRuleParams } type AddPaloAltoFirewallParams struct { @@ -1476,11 +1485,603 @@ type CreatePortForwardingRuleResponse struct { Vmguestip string `json:"vmguestip"` } +type CreateRoutingFirewallRuleParams struct { + p map[string]interface{} +} + +func (p *CreateRoutingFirewallRuleParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["cidrlist"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("cidrlist", vv) + } + if v, found := p.p["destcidrlist"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("destcidrlist", vv) + } + if v, found := p.p["endport"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("endport", vv) + } + if v, found := p.p["fordisplay"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("fordisplay", vv) + } + if v, found := p.p["icmpcode"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("icmpcode", vv) + } + if v, found := p.p["icmptype"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("icmptype", vv) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["protocol"]; found { + u.Set("protocol", v.(string)) + } + if v, found := p.p["startport"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("startport", vv) + } + if v, found := p.p["traffictype"]; found { + u.Set("traffictype", v.(string)) + } + return u +} + +func (p *CreateRoutingFirewallRuleParams) SetCidrlist(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cidrlist"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetCidrlist() { + if p.p != nil && p.p["cidrlist"] != nil { + delete(p.p, "cidrlist") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetCidrlist() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cidrlist"].([]string) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetDestcidrlist(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["destcidrlist"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetDestcidrlist() { + if p.p != nil && p.p["destcidrlist"] != nil { + delete(p.p, "destcidrlist") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetDestcidrlist() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["destcidrlist"].([]string) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetEndport(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["endport"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetEndport() { + if p.p != nil && p.p["endport"] != nil { + delete(p.p, "endport") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetEndport() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["endport"].(int) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetFordisplay(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["fordisplay"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetFordisplay() { + if p.p != nil && p.p["fordisplay"] != nil { + delete(p.p, "fordisplay") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetFordisplay() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["fordisplay"].(bool) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetIcmpcode(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["icmpcode"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetIcmpcode() { + if p.p != nil && p.p["icmpcode"] != nil { + delete(p.p, "icmpcode") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetIcmpcode() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["icmpcode"].(int) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetIcmptype(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["icmptype"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetIcmptype() { + if p.p != nil && p.p["icmptype"] != nil { + delete(p.p, "icmptype") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetIcmptype() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["icmptype"].(int) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetProtocol(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["protocol"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetProtocol() { + if p.p != nil && p.p["protocol"] != nil { + delete(p.p, "protocol") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetProtocol() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["protocol"].(string) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetStartport(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startport"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetStartport() { + if p.p != nil && p.p["startport"] != nil { + delete(p.p, "startport") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetStartport() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startport"].(int) + return value, ok +} + +func (p *CreateRoutingFirewallRuleParams) SetTraffictype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["traffictype"] = v +} + +func (p *CreateRoutingFirewallRuleParams) ResetTraffictype() { + if p.p != nil && p.p["traffictype"] != nil { + delete(p.p, "traffictype") + } +} + +func (p *CreateRoutingFirewallRuleParams) GetTraffictype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["traffictype"].(string) + return value, ok +} + +// You should always use this function to get a new CreateRoutingFirewallRuleParams instance, +// as then you are sure you have configured all required params +func (s *FirewallService) NewCreateRoutingFirewallRuleParams(networkid string, protocol string) *CreateRoutingFirewallRuleParams { + p := &CreateRoutingFirewallRuleParams{} + p.p = make(map[string]interface{}) + p.p["networkid"] = networkid + p.p["protocol"] = protocol + return p +} + +// Creates a routing firewall rule in the given network in ROUTED mode +func (s *FirewallService) CreateRoutingFirewallRule(p *CreateRoutingFirewallRuleParams) (*CreateRoutingFirewallRuleResponse, error) { + resp, err := s.cs.newRequest("createRoutingFirewallRule", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateRoutingFirewallRuleResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + b, err = convertFirewallServiceResponse(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateRoutingFirewallRuleResponse struct { + Cidrlist string `json:"cidrlist"` + Fordisplay bool `json:"fordisplay"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + Ipaddressid string `json:"ipaddressid"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Networkid string `json:"networkid"` + Privateendport string `json:"privateendport"` + Privateport string `json:"privateport"` + Protocol string `json:"protocol"` + Publicendport string `json:"publicendport"` + Publicport string `json:"publicport"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Virtualmachinedisplayname string `json:"virtualmachinedisplayname"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualmachinename string `json:"virtualmachinename"` + Vmguestip string `json:"vmguestip"` +} + type DeleteEgressFirewallRuleParams struct { p map[string]interface{} } -func (p *DeleteEgressFirewallRuleParams) toURLValues() url.Values { +func (p *DeleteEgressFirewallRuleParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteEgressFirewallRuleParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteEgressFirewallRuleParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteEgressFirewallRuleParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteEgressFirewallRuleParams instance, +// as then you are sure you have configured all required params +func (s *FirewallService) NewDeleteEgressFirewallRuleParams(id string) *DeleteEgressFirewallRuleParams { + p := &DeleteEgressFirewallRuleParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes an egress firewall rule +func (s *FirewallService) DeleteEgressFirewallRule(p *DeleteEgressFirewallRuleParams) (*DeleteEgressFirewallRuleResponse, error) { + resp, err := s.cs.newRequest("deleteEgressFirewallRule", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteEgressFirewallRuleResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = convertFirewallServiceResponse(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteEgressFirewallRuleResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type DeleteFirewallRuleParams struct { + p map[string]interface{} +} + +func (p *DeleteFirewallRuleParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteFirewallRuleParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteFirewallRuleParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteFirewallRuleParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteFirewallRuleParams instance, +// as then you are sure you have configured all required params +func (s *FirewallService) NewDeleteFirewallRuleParams(id string) *DeleteFirewallRuleParams { + p := &DeleteFirewallRuleParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes a firewall rule +func (s *FirewallService) DeleteFirewallRule(p *DeleteFirewallRuleParams) (*DeleteFirewallRuleResponse, error) { + resp, err := s.cs.newRequest("deleteFirewallRule", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteFirewallRuleResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = convertFirewallServiceResponse(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteFirewallRuleResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type DeletePaloAltoFirewallParams struct { + p map[string]interface{} +} + +func (p *DeletePaloAltoFirewallParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["fwdeviceid"]; found { + u.Set("fwdeviceid", v.(string)) + } + return u +} + +func (p *DeletePaloAltoFirewallParams) SetFwdeviceid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["fwdeviceid"] = v +} + +func (p *DeletePaloAltoFirewallParams) ResetFwdeviceid() { + if p.p != nil && p.p["fwdeviceid"] != nil { + delete(p.p, "fwdeviceid") + } +} + +func (p *DeletePaloAltoFirewallParams) GetFwdeviceid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["fwdeviceid"].(string) + return value, ok +} + +// You should always use this function to get a new DeletePaloAltoFirewallParams instance, +// as then you are sure you have configured all required params +func (s *FirewallService) NewDeletePaloAltoFirewallParams(fwdeviceid string) *DeletePaloAltoFirewallParams { + p := &DeletePaloAltoFirewallParams{} + p.p = make(map[string]interface{}) + p.p["fwdeviceid"] = fwdeviceid + return p +} + +// delete a Palo Alto firewall device +func (s *FirewallService) DeletePaloAltoFirewall(p *DeletePaloAltoFirewallParams) (*DeletePaloAltoFirewallResponse, error) { + resp, err := s.cs.newRequest("deletePaloAltoFirewall", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeletePaloAltoFirewallResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = convertFirewallServiceResponse(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeletePaloAltoFirewallResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type DeletePortForwardingRuleParams struct { + p map[string]interface{} +} + +func (p *DeletePortForwardingRuleParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -1491,20 +2092,20 @@ func (p *DeleteEgressFirewallRuleParams) toURLValues() url.Values { return u } -func (p *DeleteEgressFirewallRuleParams) SetId(v string) { +func (p *DeletePortForwardingRuleParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *DeleteEgressFirewallRuleParams) ResetId() { +func (p *DeletePortForwardingRuleParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *DeleteEgressFirewallRuleParams) GetId() (string, bool) { +func (p *DeletePortForwardingRuleParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1512,23 +2113,23 @@ func (p *DeleteEgressFirewallRuleParams) GetId() (string, bool) { return value, ok } -// You should always use this function to get a new DeleteEgressFirewallRuleParams instance, +// You should always use this function to get a new DeletePortForwardingRuleParams instance, // as then you are sure you have configured all required params -func (s *FirewallService) NewDeleteEgressFirewallRuleParams(id string) *DeleteEgressFirewallRuleParams { - p := &DeleteEgressFirewallRuleParams{} +func (s *FirewallService) NewDeletePortForwardingRuleParams(id string) *DeletePortForwardingRuleParams { + p := &DeletePortForwardingRuleParams{} p.p = make(map[string]interface{}) p.p["id"] = id return p } -// Deletes an egress firewall rule -func (s *FirewallService) DeleteEgressFirewallRule(p *DeleteEgressFirewallRuleParams) (*DeleteEgressFirewallRuleResponse, error) { - resp, err := s.cs.newRequest("deleteEgressFirewallRule", p.toURLValues()) +// Deletes a port forwarding rule +func (s *FirewallService) DeletePortForwardingRule(p *DeletePortForwardingRuleParams) (*DeletePortForwardingRuleResponse, error) { + resp, err := s.cs.newRequest("deletePortForwardingRule", p.toURLValues()) if err != nil { return nil, err } - var r DeleteEgressFirewallRuleResponse + var r DeletePortForwardingRuleResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -1556,18 +2157,18 @@ func (s *FirewallService) DeleteEgressFirewallRule(p *DeleteEgressFirewallRulePa return &r, nil } -type DeleteEgressFirewallRuleResponse struct { +type DeletePortForwardingRuleResponse struct { Displaytext string `json:"displaytext"` JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` Success bool `json:"success"` } -type DeleteFirewallRuleParams struct { +type DeleteRoutingFirewallRuleParams struct { p map[string]interface{} } -func (p *DeleteFirewallRuleParams) toURLValues() url.Values { +func (p *DeleteRoutingFirewallRuleParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -1578,20 +2179,20 @@ func (p *DeleteFirewallRuleParams) toURLValues() url.Values { return u } -func (p *DeleteFirewallRuleParams) SetId(v string) { +func (p *DeleteRoutingFirewallRuleParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *DeleteFirewallRuleParams) ResetId() { +func (p *DeleteRoutingFirewallRuleParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *DeleteFirewallRuleParams) GetId() (string, bool) { +func (p *DeleteRoutingFirewallRuleParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1599,23 +2200,23 @@ func (p *DeleteFirewallRuleParams) GetId() (string, bool) { return value, ok } -// You should always use this function to get a new DeleteFirewallRuleParams instance, +// You should always use this function to get a new DeleteRoutingFirewallRuleParams instance, // as then you are sure you have configured all required params -func (s *FirewallService) NewDeleteFirewallRuleParams(id string) *DeleteFirewallRuleParams { - p := &DeleteFirewallRuleParams{} +func (s *FirewallService) NewDeleteRoutingFirewallRuleParams(id string) *DeleteRoutingFirewallRuleParams { + p := &DeleteRoutingFirewallRuleParams{} p.p = make(map[string]interface{}) p.p["id"] = id return p } -// Deletes a firewall rule -func (s *FirewallService) DeleteFirewallRule(p *DeleteFirewallRuleParams) (*DeleteFirewallRuleResponse, error) { - resp, err := s.cs.newRequest("deleteFirewallRule", p.toURLValues()) +// Deletes a routing firewall rule +func (s *FirewallService) DeleteRoutingFirewallRule(p *DeleteRoutingFirewallRuleParams) (*DeleteRoutingFirewallRuleResponse, error) { + resp, err := s.cs.newRequest("deleteRoutingFirewallRule", p.toURLValues()) if err != nil { return nil, err } - var r DeleteFirewallRuleResponse + var r DeleteRoutingFirewallRuleResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -1639,196 +2240,441 @@ func (s *FirewallService) DeleteFirewallRule(p *DeleteFirewallRuleParams) (*Dele return nil, err } } - - return &r, nil + + return &r, nil +} + +type DeleteRoutingFirewallRuleResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ListEgressFirewallRulesParams struct { + p map[string]interface{} +} + +func (p *ListEgressFirewallRulesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["fordisplay"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("fordisplay", vv) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ipaddressid"]; found { + u.Set("ipaddressid", v.(string)) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + return u +} + +func (p *ListEgressFirewallRulesParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListEgressFirewallRulesParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListEgressFirewallRulesParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListEgressFirewallRulesParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListEgressFirewallRulesParams) SetFordisplay(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["fordisplay"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetFordisplay() { + if p.p != nil && p.p["fordisplay"] != nil { + delete(p.p, "fordisplay") + } +} + +func (p *ListEgressFirewallRulesParams) GetFordisplay() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["fordisplay"].(bool) + return value, ok +} + +func (p *ListEgressFirewallRulesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListEgressFirewallRulesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListEgressFirewallRulesParams) SetIpaddressid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddressid"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetIpaddressid() { + if p.p != nil && p.p["ipaddressid"] != nil { + delete(p.p, "ipaddressid") + } +} + +func (p *ListEgressFirewallRulesParams) GetIpaddressid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddressid"].(string) + return value, ok +} + +func (p *ListEgressFirewallRulesParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } +} + +func (p *ListEgressFirewallRulesParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok +} + +func (p *ListEgressFirewallRulesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListEgressFirewallRulesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListEgressFirewallRulesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok } -type DeleteFirewallRuleResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` +func (p *ListEgressFirewallRulesParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listall"] = v } -type DeletePaloAltoFirewallParams struct { - p map[string]interface{} +func (p *ListEgressFirewallRulesParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") + } } -func (p *DeletePaloAltoFirewallParams) toURLValues() url.Values { - u := url.Values{} +func (p *ListEgressFirewallRulesParams) GetListall() (bool, bool) { if p.p == nil { - return u - } - if v, found := p.p["fwdeviceid"]; found { - u.Set("fwdeviceid", v.(string)) + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["listall"].(bool) + return value, ok } -func (p *DeletePaloAltoFirewallParams) SetFwdeviceid(v string) { +func (p *ListEgressFirewallRulesParams) SetNetworkid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["fwdeviceid"] = v + p.p["networkid"] = v } -func (p *DeletePaloAltoFirewallParams) ResetFwdeviceid() { - if p.p != nil && p.p["fwdeviceid"] != nil { - delete(p.p, "fwdeviceid") +func (p *ListEgressFirewallRulesParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") } } -func (p *DeletePaloAltoFirewallParams) GetFwdeviceid() (string, bool) { +func (p *ListEgressFirewallRulesParams) GetNetworkid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["fwdeviceid"].(string) + value, ok := p.p["networkid"].(string) return value, ok } -// You should always use this function to get a new DeletePaloAltoFirewallParams instance, -// as then you are sure you have configured all required params -func (s *FirewallService) NewDeletePaloAltoFirewallParams(fwdeviceid string) *DeletePaloAltoFirewallParams { - p := &DeletePaloAltoFirewallParams{} - p.p = make(map[string]interface{}) - p.p["fwdeviceid"] = fwdeviceid - return p +func (p *ListEgressFirewallRulesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v } -// delete a Palo Alto firewall device -func (s *FirewallService) DeletePaloAltoFirewall(p *DeletePaloAltoFirewallParams) (*DeletePaloAltoFirewallResponse, error) { - resp, err := s.cs.newRequest("deletePaloAltoFirewall", p.toURLValues()) - if err != nil { - return nil, err +func (p *ListEgressFirewallRulesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") } +} - var r DeletePaloAltoFirewallResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err +func (p *ListEgressFirewallRulesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } + value, ok := p.p["page"].(int) + return value, ok +} - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } - - b, err = convertFirewallServiceResponse(b) - if err != nil { - return nil, err - } +func (p *ListEgressFirewallRulesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } +func (p *ListEgressFirewallRulesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") } +} - return &r, nil +func (p *ListEgressFirewallRulesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok } -type DeletePaloAltoFirewallResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` +func (p *ListEgressFirewallRulesParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v } -type DeletePortForwardingRuleParams struct { - p map[string]interface{} +func (p *ListEgressFirewallRulesParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } } -func (p *DeletePortForwardingRuleParams) toURLValues() url.Values { - u := url.Values{} +func (p *ListEgressFirewallRulesParams) GetProjectid() (string, bool) { if p.p == nil { - return u - } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["projectid"].(string) + return value, ok } -func (p *DeletePortForwardingRuleParams) SetId(v string) { +func (p *ListEgressFirewallRulesParams) SetTags(v map[string]string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["tags"] = v } -func (p *DeletePortForwardingRuleParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *ListEgressFirewallRulesParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") } } -func (p *DeletePortForwardingRuleParams) GetId() (string, bool) { +func (p *ListEgressFirewallRulesParams) GetTags() (map[string]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["tags"].(map[string]string) return value, ok } -// You should always use this function to get a new DeletePortForwardingRuleParams instance, +// You should always use this function to get a new ListEgressFirewallRulesParams instance, // as then you are sure you have configured all required params -func (s *FirewallService) NewDeletePortForwardingRuleParams(id string) *DeletePortForwardingRuleParams { - p := &DeletePortForwardingRuleParams{} +func (s *FirewallService) NewListEgressFirewallRulesParams() *ListEgressFirewallRulesParams { + p := &ListEgressFirewallRulesParams{} p.p = make(map[string]interface{}) - p.p["id"] = id return p } -// Deletes a port forwarding rule -func (s *FirewallService) DeletePortForwardingRule(p *DeletePortForwardingRuleParams) (*DeletePortForwardingRuleResponse, error) { - resp, err := s.cs.newRequest("deletePortForwardingRule", p.toURLValues()) +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *FirewallService) GetEgressFirewallRuleByID(id string, opts ...OptionFunc) (*EgressFirewallRule, int, error) { + p := &ListEgressFirewallRulesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListEgressFirewallRules(p) if err != nil { - return nil, err + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err } - var r DeletePortForwardingRuleResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) } - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } + if l.Count == 1 { + return l.EgressFirewallRules[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for EgressFirewallRule UUID: %s!", id) +} - b, err = convertFirewallServiceResponse(b) - if err != nil { - return nil, err - } +// Lists all egress firewall rules for network ID. +func (s *FirewallService) ListEgressFirewallRules(p *ListEgressFirewallRulesParams) (*ListEgressFirewallRulesResponse, error) { + resp, err := s.cs.newRequest("listEgressFirewallRules", p.toURLValues()) + if err != nil { + return nil, err + } - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } + resp, err = convertFirewallServiceResponse(resp) + if err != nil { + return nil, err + } + + var r ListEgressFirewallRulesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } return &r, nil } -type DeletePortForwardingRuleResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` +type ListEgressFirewallRulesResponse struct { + Count int `json:"count"` + EgressFirewallRules []*EgressFirewallRule `json:"firewallrule"` } -type ListEgressFirewallRulesParams struct { +type EgressFirewallRule struct { + Cidrlist string `json:"cidrlist"` + Destcidrlist string `json:"destcidrlist"` + Endport int `json:"endport"` + Fordisplay bool `json:"fordisplay"` + Icmpcode int `json:"icmpcode"` + Icmptype int `json:"icmptype"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + Ipaddressid string `json:"ipaddressid"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Networkid string `json:"networkid"` + Protocol string `json:"protocol"` + Startport int `json:"startport"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Traffictype string `json:"traffictype"` +} + +type ListFirewallRulesParams struct { p map[string]interface{} } -func (p *ListEgressFirewallRulesParams) toURLValues() url.Values { +func (p *ListFirewallRulesParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -1884,20 +2730,20 @@ func (p *ListEgressFirewallRulesParams) toURLValues() url.Values { return u } -func (p *ListEgressFirewallRulesParams) SetAccount(v string) { +func (p *ListFirewallRulesParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["account"] = v } -func (p *ListEgressFirewallRulesParams) ResetAccount() { +func (p *ListFirewallRulesParams) ResetAccount() { if p.p != nil && p.p["account"] != nil { delete(p.p, "account") } } -func (p *ListEgressFirewallRulesParams) GetAccount() (string, bool) { +func (p *ListFirewallRulesParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1905,20 +2751,20 @@ func (p *ListEgressFirewallRulesParams) GetAccount() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetDomainid(v string) { +func (p *ListFirewallRulesParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["domainid"] = v } -func (p *ListEgressFirewallRulesParams) ResetDomainid() { +func (p *ListFirewallRulesParams) ResetDomainid() { if p.p != nil && p.p["domainid"] != nil { delete(p.p, "domainid") } } -func (p *ListEgressFirewallRulesParams) GetDomainid() (string, bool) { +func (p *ListFirewallRulesParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1926,20 +2772,20 @@ func (p *ListEgressFirewallRulesParams) GetDomainid() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetFordisplay(v bool) { +func (p *ListFirewallRulesParams) SetFordisplay(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["fordisplay"] = v } -func (p *ListEgressFirewallRulesParams) ResetFordisplay() { +func (p *ListFirewallRulesParams) ResetFordisplay() { if p.p != nil && p.p["fordisplay"] != nil { delete(p.p, "fordisplay") } } -func (p *ListEgressFirewallRulesParams) GetFordisplay() (bool, bool) { +func (p *ListFirewallRulesParams) GetFordisplay() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1947,20 +2793,20 @@ func (p *ListEgressFirewallRulesParams) GetFordisplay() (bool, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetId(v string) { +func (p *ListFirewallRulesParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *ListEgressFirewallRulesParams) ResetId() { +func (p *ListFirewallRulesParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *ListEgressFirewallRulesParams) GetId() (string, bool) { +func (p *ListFirewallRulesParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1968,20 +2814,20 @@ func (p *ListEgressFirewallRulesParams) GetId() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetIpaddressid(v string) { +func (p *ListFirewallRulesParams) SetIpaddressid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["ipaddressid"] = v } -func (p *ListEgressFirewallRulesParams) ResetIpaddressid() { +func (p *ListFirewallRulesParams) ResetIpaddressid() { if p.p != nil && p.p["ipaddressid"] != nil { delete(p.p, "ipaddressid") } } -func (p *ListEgressFirewallRulesParams) GetIpaddressid() (string, bool) { +func (p *ListFirewallRulesParams) GetIpaddressid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1989,20 +2835,20 @@ func (p *ListEgressFirewallRulesParams) GetIpaddressid() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetIsrecursive(v bool) { +func (p *ListFirewallRulesParams) SetIsrecursive(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["isrecursive"] = v } -func (p *ListEgressFirewallRulesParams) ResetIsrecursive() { +func (p *ListFirewallRulesParams) ResetIsrecursive() { if p.p != nil && p.p["isrecursive"] != nil { delete(p.p, "isrecursive") } } -func (p *ListEgressFirewallRulesParams) GetIsrecursive() (bool, bool) { +func (p *ListFirewallRulesParams) GetIsrecursive() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2010,20 +2856,20 @@ func (p *ListEgressFirewallRulesParams) GetIsrecursive() (bool, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetKeyword(v string) { +func (p *ListFirewallRulesParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListEgressFirewallRulesParams) ResetKeyword() { +func (p *ListFirewallRulesParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListEgressFirewallRulesParams) GetKeyword() (string, bool) { +func (p *ListFirewallRulesParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2031,20 +2877,20 @@ func (p *ListEgressFirewallRulesParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetListall(v bool) { +func (p *ListFirewallRulesParams) SetListall(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["listall"] = v } -func (p *ListEgressFirewallRulesParams) ResetListall() { +func (p *ListFirewallRulesParams) ResetListall() { if p.p != nil && p.p["listall"] != nil { delete(p.p, "listall") } } -func (p *ListEgressFirewallRulesParams) GetListall() (bool, bool) { +func (p *ListFirewallRulesParams) GetListall() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2052,20 +2898,20 @@ func (p *ListEgressFirewallRulesParams) GetListall() (bool, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetNetworkid(v string) { +func (p *ListFirewallRulesParams) SetNetworkid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["networkid"] = v } -func (p *ListEgressFirewallRulesParams) ResetNetworkid() { +func (p *ListFirewallRulesParams) ResetNetworkid() { if p.p != nil && p.p["networkid"] != nil { delete(p.p, "networkid") } } -func (p *ListEgressFirewallRulesParams) GetNetworkid() (string, bool) { +func (p *ListFirewallRulesParams) GetNetworkid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2073,20 +2919,20 @@ func (p *ListEgressFirewallRulesParams) GetNetworkid() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetPage(v int) { +func (p *ListFirewallRulesParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["page"] = v } -func (p *ListEgressFirewallRulesParams) ResetPage() { +func (p *ListFirewallRulesParams) ResetPage() { if p.p != nil && p.p["page"] != nil { delete(p.p, "page") } } -func (p *ListEgressFirewallRulesParams) GetPage() (int, bool) { +func (p *ListFirewallRulesParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2094,20 +2940,20 @@ func (p *ListEgressFirewallRulesParams) GetPage() (int, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetPagesize(v int) { +func (p *ListFirewallRulesParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["pagesize"] = v } -func (p *ListEgressFirewallRulesParams) ResetPagesize() { +func (p *ListFirewallRulesParams) ResetPagesize() { if p.p != nil && p.p["pagesize"] != nil { delete(p.p, "pagesize") } } -func (p *ListEgressFirewallRulesParams) GetPagesize() (int, bool) { +func (p *ListFirewallRulesParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2115,20 +2961,20 @@ func (p *ListEgressFirewallRulesParams) GetPagesize() (int, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetProjectid(v string) { +func (p *ListFirewallRulesParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["projectid"] = v } -func (p *ListEgressFirewallRulesParams) ResetProjectid() { +func (p *ListFirewallRulesParams) ResetProjectid() { if p.p != nil && p.p["projectid"] != nil { delete(p.p, "projectid") } } -func (p *ListEgressFirewallRulesParams) GetProjectid() (string, bool) { +func (p *ListFirewallRulesParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2136,20 +2982,20 @@ func (p *ListEgressFirewallRulesParams) GetProjectid() (string, bool) { return value, ok } -func (p *ListEgressFirewallRulesParams) SetTags(v map[string]string) { +func (p *ListFirewallRulesParams) SetTags(v map[string]string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["tags"] = v } -func (p *ListEgressFirewallRulesParams) ResetTags() { +func (p *ListFirewallRulesParams) ResetTags() { if p.p != nil && p.p["tags"] != nil { delete(p.p, "tags") } } -func (p *ListEgressFirewallRulesParams) GetTags() (map[string]string, bool) { +func (p *ListFirewallRulesParams) GetTags() (map[string]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2157,17 +3003,17 @@ func (p *ListEgressFirewallRulesParams) GetTags() (map[string]string, bool) { return value, ok } -// You should always use this function to get a new ListEgressFirewallRulesParams instance, +// You should always use this function to get a new ListFirewallRulesParams instance, // as then you are sure you have configured all required params -func (s *FirewallService) NewListEgressFirewallRulesParams() *ListEgressFirewallRulesParams { - p := &ListEgressFirewallRulesParams{} +func (s *FirewallService) NewListFirewallRulesParams() *ListFirewallRulesParams { + p := &ListFirewallRulesParams{} p.p = make(map[string]interface{}) return p } // This is a courtesy helper function, which in some cases may not work as expected! -func (s *FirewallService) GetEgressFirewallRuleByID(id string, opts ...OptionFunc) (*EgressFirewallRule, int, error) { - p := &ListEgressFirewallRulesParams{} +func (s *FirewallService) GetFirewallRuleByID(id string, opts ...OptionFunc) (*FirewallRule, int, error) { + p := &ListFirewallRulesParams{} p.p = make(map[string]interface{}) p.p["id"] = id @@ -2178,7 +3024,7 @@ func (s *FirewallService) GetEgressFirewallRuleByID(id string, opts ...OptionFun } } - l, err := s.ListEgressFirewallRules(p) + l, err := s.ListFirewallRules(p) if err != nil { if strings.Contains(err.Error(), fmt.Sprintf( "Invalid parameter id value=%s due to incorrect long value format, "+ @@ -2193,14 +3039,14 @@ func (s *FirewallService) GetEgressFirewallRuleByID(id string, opts ...OptionFun } if l.Count == 1 { - return l.EgressFirewallRules[0], l.Count, nil + return l.FirewallRules[0], l.Count, nil } - return nil, l.Count, fmt.Errorf("There is more then one result for EgressFirewallRule UUID: %s!", id) + return nil, l.Count, fmt.Errorf("There is more then one result for FirewallRule UUID: %s!", id) } -// Lists all egress firewall rules for network ID. -func (s *FirewallService) ListEgressFirewallRules(p *ListEgressFirewallRulesParams) (*ListEgressFirewallRulesResponse, error) { - resp, err := s.cs.newRequest("listEgressFirewallRules", p.toURLValues()) +// Lists all firewall rules for an IP address. +func (s *FirewallService) ListFirewallRules(p *ListFirewallRulesParams) (*ListFirewallRulesResponse, error) { + resp, err := s.cs.newRequest("listFirewallRules", p.toURLValues()) if err != nil { return nil, err } @@ -2210,7 +3056,7 @@ func (s *FirewallService) ListEgressFirewallRules(p *ListEgressFirewallRulesPara return nil, err } - var r ListEgressFirewallRulesResponse + var r ListFirewallRulesResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -2218,12 +3064,12 @@ func (s *FirewallService) ListEgressFirewallRules(p *ListEgressFirewallRulesPara return &r, nil } -type ListEgressFirewallRulesResponse struct { - Count int `json:"count"` - EgressFirewallRules []*EgressFirewallRule `json:"firewallrule"` +type ListFirewallRulesResponse struct { + Count int `json:"count"` + FirewallRules []*FirewallRule `json:"firewallrule"` } -type EgressFirewallRule struct { +type FirewallRule struct { Cidrlist string `json:"cidrlist"` Destcidrlist string `json:"destcidrlist"` Endport int `json:"endport"` @@ -2243,45 +3089,21 @@ type EgressFirewallRule struct { Traffictype string `json:"traffictype"` } -type ListFirewallRulesParams struct { +type ListPaloAltoFirewallsParams struct { p map[string]interface{} } -func (p *ListFirewallRulesParams) toURLValues() url.Values { +func (p *ListPaloAltoFirewallsParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) - } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) - } - if v, found := p.p["fordisplay"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("fordisplay", vv) - } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) - } - if v, found := p.p["ipaddressid"]; found { - u.Set("ipaddressid", v.(string)) - } - if v, found := p.p["isrecursive"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("isrecursive", vv) + if v, found := p.p["fwdeviceid"]; found { + u.Set("fwdeviceid", v.(string)) } if v, found := p.p["keyword"]; found { u.Set("keyword", v.(string)) } - if v, found := p.p["listall"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("listall", vv) - } - if v, found := p.p["networkid"]; found { - u.Set("networkid", v.(string)) - } if v, found := p.p["page"]; found { vv := strconv.Itoa(v.(int)) u.Set("page", vv) @@ -2290,159 +3112,47 @@ func (p *ListFirewallRulesParams) toURLValues() url.Values { vv := strconv.Itoa(v.(int)) u.Set("pagesize", vv) } - if v, found := p.p["projectid"]; found { - u.Set("projectid", v.(string)) - } - if v, found := p.p["tags"]; found { - m := v.(map[string]string) - for i, k := range getSortedKeysFromMap(m) { - u.Set(fmt.Sprintf("tags[%d].key", i), k) - u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) - } + if v, found := p.p["physicalnetworkid"]; found { + u.Set("physicalnetworkid", v.(string)) } return u } -func (p *ListFirewallRulesParams) SetAccount(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["account"] = v -} - -func (p *ListFirewallRulesParams) ResetAccount() { - if p.p != nil && p.p["account"] != nil { - delete(p.p, "account") - } -} - -func (p *ListFirewallRulesParams) GetAccount() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["account"].(string) - return value, ok -} - -func (p *ListFirewallRulesParams) SetDomainid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["domainid"] = v -} - -func (p *ListFirewallRulesParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") - } -} - -func (p *ListFirewallRulesParams) GetDomainid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["domainid"].(string) - return value, ok -} - -func (p *ListFirewallRulesParams) SetFordisplay(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["fordisplay"] = v -} - -func (p *ListFirewallRulesParams) ResetFordisplay() { - if p.p != nil && p.p["fordisplay"] != nil { - delete(p.p, "fordisplay") - } -} - -func (p *ListFirewallRulesParams) GetFordisplay() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["fordisplay"].(bool) - return value, ok -} - -func (p *ListFirewallRulesParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["id"] = v -} - -func (p *ListFirewallRulesParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") - } -} - -func (p *ListFirewallRulesParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["id"].(string) - return value, ok -} - -func (p *ListFirewallRulesParams) SetIpaddressid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["ipaddressid"] = v -} - -func (p *ListFirewallRulesParams) ResetIpaddressid() { - if p.p != nil && p.p["ipaddressid"] != nil { - delete(p.p, "ipaddressid") - } -} - -func (p *ListFirewallRulesParams) GetIpaddressid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["ipaddressid"].(string) - return value, ok -} - -func (p *ListFirewallRulesParams) SetIsrecursive(v bool) { +func (p *ListPaloAltoFirewallsParams) SetFwdeviceid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["isrecursive"] = v + p.p["fwdeviceid"] = v } -func (p *ListFirewallRulesParams) ResetIsrecursive() { - if p.p != nil && p.p["isrecursive"] != nil { - delete(p.p, "isrecursive") +func (p *ListPaloAltoFirewallsParams) ResetFwdeviceid() { + if p.p != nil && p.p["fwdeviceid"] != nil { + delete(p.p, "fwdeviceid") } } -func (p *ListFirewallRulesParams) GetIsrecursive() (bool, bool) { +func (p *ListPaloAltoFirewallsParams) GetFwdeviceid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["isrecursive"].(bool) + value, ok := p.p["fwdeviceid"].(string) return value, ok } -func (p *ListFirewallRulesParams) SetKeyword(v string) { +func (p *ListPaloAltoFirewallsParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListFirewallRulesParams) ResetKeyword() { +func (p *ListPaloAltoFirewallsParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListFirewallRulesParams) GetKeyword() (string, bool) { +func (p *ListPaloAltoFirewallsParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2450,303 +3160,386 @@ func (p *ListFirewallRulesParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListFirewallRulesParams) SetListall(v bool) { +func (p *ListPaloAltoFirewallsParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["listall"] = v + p.p["page"] = v } -func (p *ListFirewallRulesParams) ResetListall() { - if p.p != nil && p.p["listall"] != nil { - delete(p.p, "listall") +func (p *ListPaloAltoFirewallsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") } } -func (p *ListFirewallRulesParams) GetListall() (bool, bool) { +func (p *ListPaloAltoFirewallsParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["listall"].(bool) + value, ok := p.p["page"].(int) return value, ok } -func (p *ListFirewallRulesParams) SetNetworkid(v string) { +func (p *ListPaloAltoFirewallsParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["networkid"] = v + p.p["pagesize"] = v } -func (p *ListFirewallRulesParams) ResetNetworkid() { - if p.p != nil && p.p["networkid"] != nil { - delete(p.p, "networkid") +func (p *ListPaloAltoFirewallsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") } } -func (p *ListFirewallRulesParams) GetNetworkid() (string, bool) { +func (p *ListPaloAltoFirewallsParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["networkid"].(string) + value, ok := p.p["pagesize"].(int) return value, ok } -func (p *ListFirewallRulesParams) SetPage(v int) { +func (p *ListPaloAltoFirewallsParams) SetPhysicalnetworkid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["page"] = v + p.p["physicalnetworkid"] = v } -func (p *ListFirewallRulesParams) ResetPage() { - if p.p != nil && p.p["page"] != nil { - delete(p.p, "page") +func (p *ListPaloAltoFirewallsParams) ResetPhysicalnetworkid() { + if p.p != nil && p.p["physicalnetworkid"] != nil { + delete(p.p, "physicalnetworkid") } } -func (p *ListFirewallRulesParams) GetPage() (int, bool) { +func (p *ListPaloAltoFirewallsParams) GetPhysicalnetworkid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["page"].(int) + value, ok := p.p["physicalnetworkid"].(string) return value, ok } -func (p *ListFirewallRulesParams) SetPagesize(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["pagesize"] = v +// You should always use this function to get a new ListPaloAltoFirewallsParams instance, +// as then you are sure you have configured all required params +func (s *FirewallService) NewListPaloAltoFirewallsParams() *ListPaloAltoFirewallsParams { + p := &ListPaloAltoFirewallsParams{} + p.p = make(map[string]interface{}) + return p } -func (p *ListFirewallRulesParams) ResetPagesize() { - if p.p != nil && p.p["pagesize"] != nil { - delete(p.p, "pagesize") +// lists Palo Alto firewall devices in a physical network +func (s *FirewallService) ListPaloAltoFirewalls(p *ListPaloAltoFirewallsParams) (*ListPaloAltoFirewallsResponse, error) { + resp, err := s.cs.newRequest("listPaloAltoFirewalls", p.toURLValues()) + if err != nil { + return nil, err + } + + resp, err = convertFirewallServiceResponse(resp) + if err != nil { + return nil, err + } + + var r ListPaloAltoFirewallsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } + + return &r, nil } -func (p *ListFirewallRulesParams) GetPagesize() (int, bool) { +type ListPaloAltoFirewallsResponse struct { + Count int `json:"count"` + PaloAltoFirewalls []*PaloAltoFirewall `json:"paloaltofirewall"` +} + +type PaloAltoFirewall struct { + Fwdevicecapacity int64 `json:"fwdevicecapacity"` + Fwdeviceid string `json:"fwdeviceid"` + Fwdevicename string `json:"fwdevicename"` + Fwdevicestate string `json:"fwdevicestate"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Numretries string `json:"numretries"` + Physicalnetworkid string `json:"physicalnetworkid"` + Privateinterface string `json:"privateinterface"` + Privatezone string `json:"privatezone"` + Provider string `json:"provider"` + Publicinterface string `json:"publicinterface"` + Publiczone string `json:"publiczone"` + Timeout string `json:"timeout"` + Usageinterface string `json:"usageinterface"` + Username string `json:"username"` + Zoneid string `json:"zoneid"` +} + +type ListPortForwardingRulesParams struct { + p map[string]interface{} +} + +func (p *ListPortForwardingRulesParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["pagesize"].(int) - return value, ok + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["fordisplay"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("fordisplay", vv) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ipaddressid"]; found { + u.Set("ipaddressid", v.(string)) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + return u } -func (p *ListFirewallRulesParams) SetProjectid(v string) { +func (p *ListPortForwardingRulesParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["projectid"] = v + p.p["account"] = v } -func (p *ListFirewallRulesParams) ResetProjectid() { - if p.p != nil && p.p["projectid"] != nil { - delete(p.p, "projectid") +func (p *ListPortForwardingRulesParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *ListFirewallRulesParams) GetProjectid() (string, bool) { +func (p *ListPortForwardingRulesParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["projectid"].(string) + value, ok := p.p["account"].(string) return value, ok } -func (p *ListFirewallRulesParams) SetTags(v map[string]string) { +func (p *ListPortForwardingRulesParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["tags"] = v + p.p["domainid"] = v } -func (p *ListFirewallRulesParams) ResetTags() { - if p.p != nil && p.p["tags"] != nil { - delete(p.p, "tags") +func (p *ListPortForwardingRulesParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") } } -func (p *ListFirewallRulesParams) GetTags() (map[string]string, bool) { +func (p *ListPortForwardingRulesParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["tags"].(map[string]string) + value, ok := p.p["domainid"].(string) return value, ok } -// You should always use this function to get a new ListFirewallRulesParams instance, -// as then you are sure you have configured all required params -func (s *FirewallService) NewListFirewallRulesParams() *ListFirewallRulesParams { - p := &ListFirewallRulesParams{} - p.p = make(map[string]interface{}) - return p +func (p *ListPortForwardingRulesParams) SetFordisplay(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["fordisplay"] = v } -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *FirewallService) GetFirewallRuleByID(id string, opts ...OptionFunc) (*FirewallRule, int, error) { - p := &ListFirewallRulesParams{} - p.p = make(map[string]interface{}) - - p.p["id"] = id +func (p *ListPortForwardingRulesParams) ResetFordisplay() { + if p.p != nil && p.p["fordisplay"] != nil { + delete(p.p, "fordisplay") + } +} - for _, fn := range append(s.cs.options, opts...) { - if err := fn(s.cs, p); err != nil { - return nil, -1, err - } +func (p *ListPortForwardingRulesParams) GetFordisplay() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } + value, ok := p.p["fordisplay"].(bool) + return value, ok +} - l, err := s.ListFirewallRules(p) - if err != nil { - if strings.Contains(err.Error(), fmt.Sprintf( - "Invalid parameter id value=%s due to incorrect long value format, "+ - "or entity does not exist", id)) { - return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) - } - return nil, -1, err +func (p *ListPortForwardingRulesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } + p.p["id"] = v +} - if l.Count == 0 { - return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) +func (p *ListPortForwardingRulesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } +} - if l.Count == 1 { - return l.FirewallRules[0], l.Count, nil +func (p *ListPortForwardingRulesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return nil, l.Count, fmt.Errorf("There is more then one result for FirewallRule UUID: %s!", id) + value, ok := p.p["id"].(string) + return value, ok } -// Lists all firewall rules for an IP address. -func (s *FirewallService) ListFirewallRules(p *ListFirewallRulesParams) (*ListFirewallRulesResponse, error) { - resp, err := s.cs.newRequest("listFirewallRules", p.toURLValues()) - if err != nil { - return nil, err +func (p *ListPortForwardingRulesParams) SetIpaddressid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } + p.p["ipaddressid"] = v +} - resp, err = convertFirewallServiceResponse(resp) - if err != nil { - return nil, err +func (p *ListPortForwardingRulesParams) ResetIpaddressid() { + if p.p != nil && p.p["ipaddressid"] != nil { + delete(p.p, "ipaddressid") } +} - var r ListFirewallRulesResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err +func (p *ListPortForwardingRulesParams) GetIpaddressid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - - return &r, nil + value, ok := p.p["ipaddressid"].(string) + return value, ok } -type ListFirewallRulesResponse struct { - Count int `json:"count"` - FirewallRules []*FirewallRule `json:"firewallrule"` +func (p *ListPortForwardingRulesParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v } -type FirewallRule struct { - Cidrlist string `json:"cidrlist"` - Destcidrlist string `json:"destcidrlist"` - Endport int `json:"endport"` - Fordisplay bool `json:"fordisplay"` - Icmpcode int `json:"icmpcode"` - Icmptype int `json:"icmptype"` - Id string `json:"id"` - Ipaddress string `json:"ipaddress"` - Ipaddressid string `json:"ipaddressid"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Networkid string `json:"networkid"` - Protocol string `json:"protocol"` - Startport int `json:"startport"` - State string `json:"state"` - Tags []Tags `json:"tags"` - Traffictype string `json:"traffictype"` +func (p *ListPortForwardingRulesParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } } -type ListPaloAltoFirewallsParams struct { - p map[string]interface{} +func (p *ListPortForwardingRulesParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok } -func (p *ListPaloAltoFirewallsParams) toURLValues() url.Values { - u := url.Values{} +func (p *ListPortForwardingRulesParams) SetKeyword(v string) { if p.p == nil { - return u - } - if v, found := p.p["fwdeviceid"]; found { - u.Set("fwdeviceid", v.(string)) - } - if v, found := p.p["keyword"]; found { - u.Set("keyword", v.(string)) - } - if v, found := p.p["page"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("page", vv) + p.p = make(map[string]interface{}) } - if v, found := p.p["pagesize"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("pagesize", vv) + p.p["keyword"] = v +} + +func (p *ListPortForwardingRulesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") } - if v, found := p.p["physicalnetworkid"]; found { - u.Set("physicalnetworkid", v.(string)) +} + +func (p *ListPortForwardingRulesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["keyword"].(string) + return value, ok } -func (p *ListPaloAltoFirewallsParams) SetFwdeviceid(v string) { +func (p *ListPortForwardingRulesParams) SetListall(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["fwdeviceid"] = v + p.p["listall"] = v } -func (p *ListPaloAltoFirewallsParams) ResetFwdeviceid() { - if p.p != nil && p.p["fwdeviceid"] != nil { - delete(p.p, "fwdeviceid") +func (p *ListPortForwardingRulesParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") } } -func (p *ListPaloAltoFirewallsParams) GetFwdeviceid() (string, bool) { +func (p *ListPortForwardingRulesParams) GetListall() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["fwdeviceid"].(string) + value, ok := p.p["listall"].(bool) return value, ok } -func (p *ListPaloAltoFirewallsParams) SetKeyword(v string) { +func (p *ListPortForwardingRulesParams) SetNetworkid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["keyword"] = v + p.p["networkid"] = v } -func (p *ListPaloAltoFirewallsParams) ResetKeyword() { - if p.p != nil && p.p["keyword"] != nil { - delete(p.p, "keyword") +func (p *ListPortForwardingRulesParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") } } -func (p *ListPaloAltoFirewallsParams) GetKeyword() (string, bool) { +func (p *ListPortForwardingRulesParams) GetNetworkid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["keyword"].(string) + value, ok := p.p["networkid"].(string) return value, ok } -func (p *ListPaloAltoFirewallsParams) SetPage(v int) { +func (p *ListPortForwardingRulesParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["page"] = v } -func (p *ListPaloAltoFirewallsParams) ResetPage() { +func (p *ListPortForwardingRulesParams) ResetPage() { if p.p != nil && p.p["page"] != nil { delete(p.p, "page") } } -func (p *ListPaloAltoFirewallsParams) GetPage() (int, bool) { +func (p *ListPortForwardingRulesParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2754,20 +3547,20 @@ func (p *ListPaloAltoFirewallsParams) GetPage() (int, bool) { return value, ok } -func (p *ListPaloAltoFirewallsParams) SetPagesize(v int) { +func (p *ListPortForwardingRulesParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["pagesize"] = v } -func (p *ListPaloAltoFirewallsParams) ResetPagesize() { +func (p *ListPortForwardingRulesParams) ResetPagesize() { if p.p != nil && p.p["pagesize"] != nil { delete(p.p, "pagesize") } } -func (p *ListPaloAltoFirewallsParams) GetPagesize() (int, bool) { +func (p *ListPortForwardingRulesParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2775,38 +3568,92 @@ func (p *ListPaloAltoFirewallsParams) GetPagesize() (int, bool) { return value, ok } -func (p *ListPaloAltoFirewallsParams) SetPhysicalnetworkid(v string) { +func (p *ListPortForwardingRulesParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["physicalnetworkid"] = v + p.p["projectid"] = v } -func (p *ListPaloAltoFirewallsParams) ResetPhysicalnetworkid() { - if p.p != nil && p.p["physicalnetworkid"] != nil { - delete(p.p, "physicalnetworkid") +func (p *ListPortForwardingRulesParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ListPaloAltoFirewallsParams) GetPhysicalnetworkid() (string, bool) { +func (p *ListPortForwardingRulesParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["physicalnetworkid"].(string) + value, ok := p.p["projectid"].(string) return value, ok } -// You should always use this function to get a new ListPaloAltoFirewallsParams instance, +func (p *ListPortForwardingRulesParams) SetTags(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["tags"] = v +} + +func (p *ListPortForwardingRulesParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") + } +} + +func (p *ListPortForwardingRulesParams) GetTags() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tags"].(map[string]string) + return value, ok +} + +// You should always use this function to get a new ListPortForwardingRulesParams instance, // as then you are sure you have configured all required params -func (s *FirewallService) NewListPaloAltoFirewallsParams() *ListPaloAltoFirewallsParams { - p := &ListPaloAltoFirewallsParams{} +func (s *FirewallService) NewListPortForwardingRulesParams() *ListPortForwardingRulesParams { + p := &ListPortForwardingRulesParams{} p.p = make(map[string]interface{}) return p } -// lists Palo Alto firewall devices in a physical network -func (s *FirewallService) ListPaloAltoFirewalls(p *ListPaloAltoFirewallsParams) (*ListPaloAltoFirewallsResponse, error) { - resp, err := s.cs.newRequest("listPaloAltoFirewalls", p.toURLValues()) +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *FirewallService) GetPortForwardingRuleByID(id string, opts ...OptionFunc) (*PortForwardingRule, int, error) { + p := &ListPortForwardingRulesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListPortForwardingRules(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.PortForwardingRules[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for PortForwardingRule UUID: %s!", id) +} + +// Lists all port forwarding rules for an IP address. +func (s *FirewallService) ListPortForwardingRules(p *ListPortForwardingRulesParams) (*ListPortForwardingRulesResponse, error) { + resp, err := s.cs.newRequest("listPortForwardingRules", p.toURLValues()) if err != nil { return nil, err } @@ -2816,7 +3663,7 @@ func (s *FirewallService) ListPaloAltoFirewalls(p *ListPaloAltoFirewallsParams) return nil, err } - var r ListPaloAltoFirewallsResponse + var r ListPortForwardingRulesResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -2824,37 +3671,38 @@ func (s *FirewallService) ListPaloAltoFirewalls(p *ListPaloAltoFirewallsParams) return &r, nil } -type ListPaloAltoFirewallsResponse struct { - Count int `json:"count"` - PaloAltoFirewalls []*PaloAltoFirewall `json:"paloaltofirewall"` +type ListPortForwardingRulesResponse struct { + Count int `json:"count"` + PortForwardingRules []*PortForwardingRule `json:"portforwardingrule"` } -type PaloAltoFirewall struct { - Fwdevicecapacity int64 `json:"fwdevicecapacity"` - Fwdeviceid string `json:"fwdeviceid"` - Fwdevicename string `json:"fwdevicename"` - Fwdevicestate string `json:"fwdevicestate"` - Ipaddress string `json:"ipaddress"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Numretries string `json:"numretries"` - Physicalnetworkid string `json:"physicalnetworkid"` - Privateinterface string `json:"privateinterface"` - Privatezone string `json:"privatezone"` - Provider string `json:"provider"` - Publicinterface string `json:"publicinterface"` - Publiczone string `json:"publiczone"` - Timeout string `json:"timeout"` - Usageinterface string `json:"usageinterface"` - Username string `json:"username"` - Zoneid string `json:"zoneid"` +type PortForwardingRule struct { + Cidrlist string `json:"cidrlist"` + Fordisplay bool `json:"fordisplay"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + Ipaddressid string `json:"ipaddressid"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Networkid string `json:"networkid"` + Privateendport string `json:"privateendport"` + Privateport string `json:"privateport"` + Protocol string `json:"protocol"` + Publicendport string `json:"publicendport"` + Publicport string `json:"publicport"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Virtualmachinedisplayname string `json:"virtualmachinedisplayname"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualmachinename string `json:"virtualmachinename"` + Vmguestip string `json:"vmguestip"` } -type ListPortForwardingRulesParams struct { +type ListRoutingFirewallRulesParams struct { p map[string]interface{} } -func (p *ListPortForwardingRulesParams) toURLValues() url.Values { +func (p *ListRoutingFirewallRulesParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -2872,9 +3720,6 @@ func (p *ListPortForwardingRulesParams) toURLValues() url.Values { if v, found := p.p["id"]; found { u.Set("id", v.(string)) } - if v, found := p.p["ipaddressid"]; found { - u.Set("ipaddressid", v.(string)) - } if v, found := p.p["isrecursive"]; found { vv := strconv.FormatBool(v.(bool)) u.Set("isrecursive", vv) @@ -2907,23 +3752,26 @@ func (p *ListPortForwardingRulesParams) toURLValues() url.Values { u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) } } + if v, found := p.p["traffictype"]; found { + u.Set("traffictype", v.(string)) + } return u } -func (p *ListPortForwardingRulesParams) SetAccount(v string) { +func (p *ListRoutingFirewallRulesParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["account"] = v } -func (p *ListPortForwardingRulesParams) ResetAccount() { +func (p *ListRoutingFirewallRulesParams) ResetAccount() { if p.p != nil && p.p["account"] != nil { delete(p.p, "account") } } -func (p *ListPortForwardingRulesParams) GetAccount() (string, bool) { +func (p *ListRoutingFirewallRulesParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2931,20 +3779,20 @@ func (p *ListPortForwardingRulesParams) GetAccount() (string, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetDomainid(v string) { +func (p *ListRoutingFirewallRulesParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["domainid"] = v } -func (p *ListPortForwardingRulesParams) ResetDomainid() { +func (p *ListRoutingFirewallRulesParams) ResetDomainid() { if p.p != nil && p.p["domainid"] != nil { delete(p.p, "domainid") } } -func (p *ListPortForwardingRulesParams) GetDomainid() (string, bool) { +func (p *ListRoutingFirewallRulesParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2952,20 +3800,20 @@ func (p *ListPortForwardingRulesParams) GetDomainid() (string, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetFordisplay(v bool) { +func (p *ListRoutingFirewallRulesParams) SetFordisplay(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["fordisplay"] = v } -func (p *ListPortForwardingRulesParams) ResetFordisplay() { +func (p *ListRoutingFirewallRulesParams) ResetFordisplay() { if p.p != nil && p.p["fordisplay"] != nil { delete(p.p, "fordisplay") } } -func (p *ListPortForwardingRulesParams) GetFordisplay() (bool, bool) { +func (p *ListRoutingFirewallRulesParams) GetFordisplay() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2973,20 +3821,20 @@ func (p *ListPortForwardingRulesParams) GetFordisplay() (bool, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetId(v string) { +func (p *ListRoutingFirewallRulesParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *ListPortForwardingRulesParams) ResetId() { +func (p *ListRoutingFirewallRulesParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *ListPortForwardingRulesParams) GetId() (string, bool) { +func (p *ListRoutingFirewallRulesParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2994,41 +3842,20 @@ func (p *ListPortForwardingRulesParams) GetId() (string, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetIpaddressid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["ipaddressid"] = v -} - -func (p *ListPortForwardingRulesParams) ResetIpaddressid() { - if p.p != nil && p.p["ipaddressid"] != nil { - delete(p.p, "ipaddressid") - } -} - -func (p *ListPortForwardingRulesParams) GetIpaddressid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["ipaddressid"].(string) - return value, ok -} - -func (p *ListPortForwardingRulesParams) SetIsrecursive(v bool) { +func (p *ListRoutingFirewallRulesParams) SetIsrecursive(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["isrecursive"] = v } -func (p *ListPortForwardingRulesParams) ResetIsrecursive() { +func (p *ListRoutingFirewallRulesParams) ResetIsrecursive() { if p.p != nil && p.p["isrecursive"] != nil { delete(p.p, "isrecursive") } } -func (p *ListPortForwardingRulesParams) GetIsrecursive() (bool, bool) { +func (p *ListRoutingFirewallRulesParams) GetIsrecursive() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3036,20 +3863,20 @@ func (p *ListPortForwardingRulesParams) GetIsrecursive() (bool, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetKeyword(v string) { +func (p *ListRoutingFirewallRulesParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListPortForwardingRulesParams) ResetKeyword() { +func (p *ListRoutingFirewallRulesParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListPortForwardingRulesParams) GetKeyword() (string, bool) { +func (p *ListRoutingFirewallRulesParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3057,20 +3884,20 @@ func (p *ListPortForwardingRulesParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetListall(v bool) { +func (p *ListRoutingFirewallRulesParams) SetListall(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["listall"] = v } -func (p *ListPortForwardingRulesParams) ResetListall() { +func (p *ListRoutingFirewallRulesParams) ResetListall() { if p.p != nil && p.p["listall"] != nil { delete(p.p, "listall") } } -func (p *ListPortForwardingRulesParams) GetListall() (bool, bool) { +func (p *ListRoutingFirewallRulesParams) GetListall() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3078,20 +3905,20 @@ func (p *ListPortForwardingRulesParams) GetListall() (bool, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetNetworkid(v string) { +func (p *ListRoutingFirewallRulesParams) SetNetworkid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["networkid"] = v } -func (p *ListPortForwardingRulesParams) ResetNetworkid() { +func (p *ListRoutingFirewallRulesParams) ResetNetworkid() { if p.p != nil && p.p["networkid"] != nil { delete(p.p, "networkid") } } -func (p *ListPortForwardingRulesParams) GetNetworkid() (string, bool) { +func (p *ListRoutingFirewallRulesParams) GetNetworkid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3099,20 +3926,20 @@ func (p *ListPortForwardingRulesParams) GetNetworkid() (string, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetPage(v int) { +func (p *ListRoutingFirewallRulesParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["page"] = v } -func (p *ListPortForwardingRulesParams) ResetPage() { +func (p *ListRoutingFirewallRulesParams) ResetPage() { if p.p != nil && p.p["page"] != nil { delete(p.p, "page") } } -func (p *ListPortForwardingRulesParams) GetPage() (int, bool) { +func (p *ListRoutingFirewallRulesParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3120,20 +3947,20 @@ func (p *ListPortForwardingRulesParams) GetPage() (int, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetPagesize(v int) { +func (p *ListRoutingFirewallRulesParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["pagesize"] = v } -func (p *ListPortForwardingRulesParams) ResetPagesize() { +func (p *ListRoutingFirewallRulesParams) ResetPagesize() { if p.p != nil && p.p["pagesize"] != nil { delete(p.p, "pagesize") } } -func (p *ListPortForwardingRulesParams) GetPagesize() (int, bool) { +func (p *ListRoutingFirewallRulesParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3141,20 +3968,20 @@ func (p *ListPortForwardingRulesParams) GetPagesize() (int, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetProjectid(v string) { +func (p *ListRoutingFirewallRulesParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["projectid"] = v } -func (p *ListPortForwardingRulesParams) ResetProjectid() { +func (p *ListRoutingFirewallRulesParams) ResetProjectid() { if p.p != nil && p.p["projectid"] != nil { delete(p.p, "projectid") } } -func (p *ListPortForwardingRulesParams) GetProjectid() (string, bool) { +func (p *ListRoutingFirewallRulesParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3162,20 +3989,20 @@ func (p *ListPortForwardingRulesParams) GetProjectid() (string, bool) { return value, ok } -func (p *ListPortForwardingRulesParams) SetTags(v map[string]string) { +func (p *ListRoutingFirewallRulesParams) SetTags(v map[string]string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["tags"] = v } -func (p *ListPortForwardingRulesParams) ResetTags() { +func (p *ListRoutingFirewallRulesParams) ResetTags() { if p.p != nil && p.p["tags"] != nil { delete(p.p, "tags") } } -func (p *ListPortForwardingRulesParams) GetTags() (map[string]string, bool) { +func (p *ListRoutingFirewallRulesParams) GetTags() (map[string]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3183,17 +4010,38 @@ func (p *ListPortForwardingRulesParams) GetTags() (map[string]string, bool) { return value, ok } -// You should always use this function to get a new ListPortForwardingRulesParams instance, +func (p *ListRoutingFirewallRulesParams) SetTraffictype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["traffictype"] = v +} + +func (p *ListRoutingFirewallRulesParams) ResetTraffictype() { + if p.p != nil && p.p["traffictype"] != nil { + delete(p.p, "traffictype") + } +} + +func (p *ListRoutingFirewallRulesParams) GetTraffictype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["traffictype"].(string) + return value, ok +} + +// You should always use this function to get a new ListRoutingFirewallRulesParams instance, // as then you are sure you have configured all required params -func (s *FirewallService) NewListPortForwardingRulesParams() *ListPortForwardingRulesParams { - p := &ListPortForwardingRulesParams{} +func (s *FirewallService) NewListRoutingFirewallRulesParams() *ListRoutingFirewallRulesParams { + p := &ListRoutingFirewallRulesParams{} p.p = make(map[string]interface{}) return p } // This is a courtesy helper function, which in some cases may not work as expected! -func (s *FirewallService) GetPortForwardingRuleByID(id string, opts ...OptionFunc) (*PortForwardingRule, int, error) { - p := &ListPortForwardingRulesParams{} +func (s *FirewallService) GetRoutingFirewallRuleByID(id string, opts ...OptionFunc) (*RoutingFirewallRule, int, error) { + p := &ListRoutingFirewallRulesParams{} p.p = make(map[string]interface{}) p.p["id"] = id @@ -3204,7 +4052,7 @@ func (s *FirewallService) GetPortForwardingRuleByID(id string, opts ...OptionFun } } - l, err := s.ListPortForwardingRules(p) + l, err := s.ListRoutingFirewallRules(p) if err != nil { if strings.Contains(err.Error(), fmt.Sprintf( "Invalid parameter id value=%s due to incorrect long value format, "+ @@ -3219,14 +4067,14 @@ func (s *FirewallService) GetPortForwardingRuleByID(id string, opts ...OptionFun } if l.Count == 1 { - return l.PortForwardingRules[0], l.Count, nil + return l.RoutingFirewallRules[0], l.Count, nil } - return nil, l.Count, fmt.Errorf("There is more then one result for PortForwardingRule UUID: %s!", id) + return nil, l.Count, fmt.Errorf("There is more then one result for RoutingFirewallRule UUID: %s!", id) } -// Lists all port forwarding rules for an IP address. -func (s *FirewallService) ListPortForwardingRules(p *ListPortForwardingRulesParams) (*ListPortForwardingRulesResponse, error) { - resp, err := s.cs.newRequest("listPortForwardingRules", p.toURLValues()) +// Lists all Routing firewall rules +func (s *FirewallService) ListRoutingFirewallRules(p *ListRoutingFirewallRulesParams) (*ListRoutingFirewallRulesResponse, error) { + resp, err := s.cs.newRequest("listRoutingFirewallRules", p.toURLValues()) if err != nil { return nil, err } @@ -3236,7 +4084,7 @@ func (s *FirewallService) ListPortForwardingRules(p *ListPortForwardingRulesPara return nil, err } - var r ListPortForwardingRulesResponse + var r ListRoutingFirewallRulesResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -3244,12 +4092,12 @@ func (s *FirewallService) ListPortForwardingRules(p *ListPortForwardingRulesPara return &r, nil } -type ListPortForwardingRulesResponse struct { - Count int `json:"count"` - PortForwardingRules []*PortForwardingRule `json:"portforwardingrule"` +type ListRoutingFirewallRulesResponse struct { + Count int `json:"count"` + RoutingFirewallRules []*RoutingFirewallRule `json:"routingfirewallrule"` } -type PortForwardingRule struct { +type RoutingFirewallRule struct { Cidrlist string `json:"cidrlist"` Fordisplay bool `json:"fordisplay"` Id string `json:"id"` @@ -5000,3 +5848,159 @@ type DeleteIpv6FirewallRuleResponse struct { Jobstatus int `json:"jobstatus"` Success bool `json:"success"` } + +type UpdateRoutingFirewallRuleParams struct { + p map[string]interface{} +} + +func (p *UpdateRoutingFirewallRuleParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["customid"]; found { + u.Set("customid", v.(string)) + } + if v, found := p.p["fordisplay"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("fordisplay", vv) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *UpdateRoutingFirewallRuleParams) SetCustomid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["customid"] = v +} + +func (p *UpdateRoutingFirewallRuleParams) ResetCustomid() { + if p.p != nil && p.p["customid"] != nil { + delete(p.p, "customid") + } +} + +func (p *UpdateRoutingFirewallRuleParams) GetCustomid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["customid"].(string) + return value, ok +} + +func (p *UpdateRoutingFirewallRuleParams) SetFordisplay(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["fordisplay"] = v +} + +func (p *UpdateRoutingFirewallRuleParams) ResetFordisplay() { + if p.p != nil && p.p["fordisplay"] != nil { + delete(p.p, "fordisplay") + } +} + +func (p *UpdateRoutingFirewallRuleParams) GetFordisplay() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["fordisplay"].(bool) + return value, ok +} + +func (p *UpdateRoutingFirewallRuleParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateRoutingFirewallRuleParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateRoutingFirewallRuleParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new UpdateRoutingFirewallRuleParams instance, +// as then you are sure you have configured all required params +func (s *FirewallService) NewUpdateRoutingFirewallRuleParams(id string) *UpdateRoutingFirewallRuleParams { + p := &UpdateRoutingFirewallRuleParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Updates Routing firewall rule with specified ID +func (s *FirewallService) UpdateRoutingFirewallRule(p *UpdateRoutingFirewallRuleParams) (*UpdateRoutingFirewallRuleResponse, error) { + resp, err := s.cs.newRequest("updateRoutingFirewallRule", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateRoutingFirewallRuleResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + b, err = convertFirewallServiceResponse(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type UpdateRoutingFirewallRuleResponse struct { + Cidrlist string `json:"cidrlist"` + Fordisplay bool `json:"fordisplay"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + Ipaddressid string `json:"ipaddressid"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Networkid string `json:"networkid"` + Privateendport string `json:"privateendport"` + Privateport string `json:"privateport"` + Protocol string `json:"protocol"` + Publicendport string `json:"publicendport"` + Publicport string `json:"publicport"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Virtualmachinedisplayname string `json:"virtualmachinedisplayname"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualmachinename string `json:"virtualmachinename"` + Vmguestip string `json:"vmguestip"` +} diff --git a/cloudstack/FirewallService_mock.go b/cloudstack/FirewallService_mock.go index 471a6839..00bc424f 100644 --- a/cloudstack/FirewallService_mock.go +++ b/cloudstack/FirewallService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/FirewallService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/FirewallService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/FirewallService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockFirewallServiceIface is a mock of FirewallServiceIface interface. type MockFirewallServiceIface struct { ctrl *gomock.Controller recorder *MockFirewallServiceIfaceMockRecorder + isgomock struct{} } // MockFirewallServiceIfaceMockRecorder is the mock recorder for MockFirewallServiceIface. @@ -62,7 +68,7 @@ func (m *MockFirewallServiceIface) AddPaloAltoFirewall(p *AddPaloAltoFirewallPar } // AddPaloAltoFirewall indicates an expected call of AddPaloAltoFirewall. -func (mr *MockFirewallServiceIfaceMockRecorder) AddPaloAltoFirewall(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) AddPaloAltoFirewall(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddPaloAltoFirewall", reflect.TypeOf((*MockFirewallServiceIface)(nil).AddPaloAltoFirewall), p) } @@ -77,7 +83,7 @@ func (m *MockFirewallServiceIface) ConfigurePaloAltoFirewall(p *ConfigurePaloAlt } // ConfigurePaloAltoFirewall indicates an expected call of ConfigurePaloAltoFirewall. -func (mr *MockFirewallServiceIfaceMockRecorder) ConfigurePaloAltoFirewall(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) ConfigurePaloAltoFirewall(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigurePaloAltoFirewall", reflect.TypeOf((*MockFirewallServiceIface)(nil).ConfigurePaloAltoFirewall), p) } @@ -92,7 +98,7 @@ func (m *MockFirewallServiceIface) CreateEgressFirewallRule(p *CreateEgressFirew } // CreateEgressFirewallRule indicates an expected call of CreateEgressFirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) CreateEgressFirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) CreateEgressFirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateEgressFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).CreateEgressFirewallRule), p) } @@ -107,7 +113,7 @@ func (m *MockFirewallServiceIface) CreateFirewallRule(p *CreateFirewallRuleParam } // CreateFirewallRule indicates an expected call of CreateFirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) CreateFirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) CreateFirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).CreateFirewallRule), p) } @@ -122,7 +128,7 @@ func (m *MockFirewallServiceIface) CreateIpv6FirewallRule(p *CreateIpv6FirewallR } // CreateIpv6FirewallRule indicates an expected call of CreateIpv6FirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) CreateIpv6FirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) CreateIpv6FirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIpv6FirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).CreateIpv6FirewallRule), p) } @@ -137,11 +143,26 @@ func (m *MockFirewallServiceIface) CreatePortForwardingRule(p *CreatePortForward } // CreatePortForwardingRule indicates an expected call of CreatePortForwardingRule. -func (mr *MockFirewallServiceIfaceMockRecorder) CreatePortForwardingRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) CreatePortForwardingRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePortForwardingRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).CreatePortForwardingRule), p) } +// CreateRoutingFirewallRule mocks base method. +func (m *MockFirewallServiceIface) CreateRoutingFirewallRule(p *CreateRoutingFirewallRuleParams) (*CreateRoutingFirewallRuleResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateRoutingFirewallRule", p) + ret0, _ := ret[0].(*CreateRoutingFirewallRuleResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateRoutingFirewallRule indicates an expected call of CreateRoutingFirewallRule. +func (mr *MockFirewallServiceIfaceMockRecorder) CreateRoutingFirewallRule(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRoutingFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).CreateRoutingFirewallRule), p) +} + // DeleteEgressFirewallRule mocks base method. func (m *MockFirewallServiceIface) DeleteEgressFirewallRule(p *DeleteEgressFirewallRuleParams) (*DeleteEgressFirewallRuleResponse, error) { m.ctrl.T.Helper() @@ -152,7 +173,7 @@ func (m *MockFirewallServiceIface) DeleteEgressFirewallRule(p *DeleteEgressFirew } // DeleteEgressFirewallRule indicates an expected call of DeleteEgressFirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) DeleteEgressFirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) DeleteEgressFirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteEgressFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).DeleteEgressFirewallRule), p) } @@ -167,7 +188,7 @@ func (m *MockFirewallServiceIface) DeleteFirewallRule(p *DeleteFirewallRuleParam } // DeleteFirewallRule indicates an expected call of DeleteFirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) DeleteFirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) DeleteFirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).DeleteFirewallRule), p) } @@ -182,7 +203,7 @@ func (m *MockFirewallServiceIface) DeleteIpv6FirewallRule(p *DeleteIpv6FirewallR } // DeleteIpv6FirewallRule indicates an expected call of DeleteIpv6FirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) DeleteIpv6FirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) DeleteIpv6FirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteIpv6FirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).DeleteIpv6FirewallRule), p) } @@ -197,7 +218,7 @@ func (m *MockFirewallServiceIface) DeletePaloAltoFirewall(p *DeletePaloAltoFirew } // DeletePaloAltoFirewall indicates an expected call of DeletePaloAltoFirewall. -func (mr *MockFirewallServiceIfaceMockRecorder) DeletePaloAltoFirewall(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) DeletePaloAltoFirewall(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePaloAltoFirewall", reflect.TypeOf((*MockFirewallServiceIface)(nil).DeletePaloAltoFirewall), p) } @@ -212,15 +233,30 @@ func (m *MockFirewallServiceIface) DeletePortForwardingRule(p *DeletePortForward } // DeletePortForwardingRule indicates an expected call of DeletePortForwardingRule. -func (mr *MockFirewallServiceIfaceMockRecorder) DeletePortForwardingRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) DeletePortForwardingRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePortForwardingRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).DeletePortForwardingRule), p) } +// DeleteRoutingFirewallRule mocks base method. +func (m *MockFirewallServiceIface) DeleteRoutingFirewallRule(p *DeleteRoutingFirewallRuleParams) (*DeleteRoutingFirewallRuleResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteRoutingFirewallRule", p) + ret0, _ := ret[0].(*DeleteRoutingFirewallRuleResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteRoutingFirewallRule indicates an expected call of DeleteRoutingFirewallRule. +func (mr *MockFirewallServiceIfaceMockRecorder) DeleteRoutingFirewallRule(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRoutingFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).DeleteRoutingFirewallRule), p) +} + // GetEgressFirewallRuleByID mocks base method. func (m *MockFirewallServiceIface) GetEgressFirewallRuleByID(id string, opts ...OptionFunc) (*EgressFirewallRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -232,16 +268,16 @@ func (m *MockFirewallServiceIface) GetEgressFirewallRuleByID(id string, opts ... } // GetEgressFirewallRuleByID indicates an expected call of GetEgressFirewallRuleByID. -func (mr *MockFirewallServiceIfaceMockRecorder) GetEgressFirewallRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) GetEgressFirewallRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEgressFirewallRuleByID", reflect.TypeOf((*MockFirewallServiceIface)(nil).GetEgressFirewallRuleByID), varargs...) } // GetFirewallRuleByID mocks base method. func (m *MockFirewallServiceIface) GetFirewallRuleByID(id string, opts ...OptionFunc) (*FirewallRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -253,16 +289,16 @@ func (m *MockFirewallServiceIface) GetFirewallRuleByID(id string, opts ...Option } // GetFirewallRuleByID indicates an expected call of GetFirewallRuleByID. -func (mr *MockFirewallServiceIfaceMockRecorder) GetFirewallRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) GetFirewallRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFirewallRuleByID", reflect.TypeOf((*MockFirewallServiceIface)(nil).GetFirewallRuleByID), varargs...) } // GetIpv6FirewallRuleByID mocks base method. func (m *MockFirewallServiceIface) GetIpv6FirewallRuleByID(id string, opts ...OptionFunc) (*Ipv6FirewallRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -274,16 +310,16 @@ func (m *MockFirewallServiceIface) GetIpv6FirewallRuleByID(id string, opts ...Op } // GetIpv6FirewallRuleByID indicates an expected call of GetIpv6FirewallRuleByID. -func (mr *MockFirewallServiceIfaceMockRecorder) GetIpv6FirewallRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) GetIpv6FirewallRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIpv6FirewallRuleByID", reflect.TypeOf((*MockFirewallServiceIface)(nil).GetIpv6FirewallRuleByID), varargs...) } // GetPortForwardingRuleByID mocks base method. func (m *MockFirewallServiceIface) GetPortForwardingRuleByID(id string, opts ...OptionFunc) (*PortForwardingRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -295,12 +331,33 @@ func (m *MockFirewallServiceIface) GetPortForwardingRuleByID(id string, opts ... } // GetPortForwardingRuleByID indicates an expected call of GetPortForwardingRuleByID. -func (mr *MockFirewallServiceIfaceMockRecorder) GetPortForwardingRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) GetPortForwardingRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPortForwardingRuleByID", reflect.TypeOf((*MockFirewallServiceIface)(nil).GetPortForwardingRuleByID), varargs...) } +// GetRoutingFirewallRuleByID mocks base method. +func (m *MockFirewallServiceIface) GetRoutingFirewallRuleByID(id string, opts ...OptionFunc) (*RoutingFirewallRule, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetRoutingFirewallRuleByID", varargs...) + ret0, _ := ret[0].(*RoutingFirewallRule) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetRoutingFirewallRuleByID indicates an expected call of GetRoutingFirewallRuleByID. +func (mr *MockFirewallServiceIfaceMockRecorder) GetRoutingFirewallRuleByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoutingFirewallRuleByID", reflect.TypeOf((*MockFirewallServiceIface)(nil).GetRoutingFirewallRuleByID), varargs...) +} + // ListEgressFirewallRules mocks base method. func (m *MockFirewallServiceIface) ListEgressFirewallRules(p *ListEgressFirewallRulesParams) (*ListEgressFirewallRulesResponse, error) { m.ctrl.T.Helper() @@ -311,7 +368,7 @@ func (m *MockFirewallServiceIface) ListEgressFirewallRules(p *ListEgressFirewall } // ListEgressFirewallRules indicates an expected call of ListEgressFirewallRules. -func (mr *MockFirewallServiceIfaceMockRecorder) ListEgressFirewallRules(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) ListEgressFirewallRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEgressFirewallRules", reflect.TypeOf((*MockFirewallServiceIface)(nil).ListEgressFirewallRules), p) } @@ -326,7 +383,7 @@ func (m *MockFirewallServiceIface) ListFirewallRules(p *ListFirewallRulesParams) } // ListFirewallRules indicates an expected call of ListFirewallRules. -func (mr *MockFirewallServiceIfaceMockRecorder) ListFirewallRules(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) ListFirewallRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallRules", reflect.TypeOf((*MockFirewallServiceIface)(nil).ListFirewallRules), p) } @@ -341,7 +398,7 @@ func (m *MockFirewallServiceIface) ListIpv6FirewallRules(p *ListIpv6FirewallRule } // ListIpv6FirewallRules indicates an expected call of ListIpv6FirewallRules. -func (mr *MockFirewallServiceIfaceMockRecorder) ListIpv6FirewallRules(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) ListIpv6FirewallRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIpv6FirewallRules", reflect.TypeOf((*MockFirewallServiceIface)(nil).ListIpv6FirewallRules), p) } @@ -356,7 +413,7 @@ func (m *MockFirewallServiceIface) ListPaloAltoFirewalls(p *ListPaloAltoFirewall } // ListPaloAltoFirewalls indicates an expected call of ListPaloAltoFirewalls. -func (mr *MockFirewallServiceIfaceMockRecorder) ListPaloAltoFirewalls(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) ListPaloAltoFirewalls(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPaloAltoFirewalls", reflect.TypeOf((*MockFirewallServiceIface)(nil).ListPaloAltoFirewalls), p) } @@ -371,11 +428,26 @@ func (m *MockFirewallServiceIface) ListPortForwardingRules(p *ListPortForwarding } // ListPortForwardingRules indicates an expected call of ListPortForwardingRules. -func (mr *MockFirewallServiceIfaceMockRecorder) ListPortForwardingRules(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) ListPortForwardingRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPortForwardingRules", reflect.TypeOf((*MockFirewallServiceIface)(nil).ListPortForwardingRules), p) } +// ListRoutingFirewallRules mocks base method. +func (m *MockFirewallServiceIface) ListRoutingFirewallRules(p *ListRoutingFirewallRulesParams) (*ListRoutingFirewallRulesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListRoutingFirewallRules", p) + ret0, _ := ret[0].(*ListRoutingFirewallRulesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListRoutingFirewallRules indicates an expected call of ListRoutingFirewallRules. +func (mr *MockFirewallServiceIfaceMockRecorder) ListRoutingFirewallRules(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutingFirewallRules", reflect.TypeOf((*MockFirewallServiceIface)(nil).ListRoutingFirewallRules), p) +} + // NewAddPaloAltoFirewallParams mocks base method. func (m *MockFirewallServiceIface) NewAddPaloAltoFirewallParams(networkdevicetype, password, physicalnetworkid, url, username string) *AddPaloAltoFirewallParams { m.ctrl.T.Helper() @@ -385,7 +457,7 @@ func (m *MockFirewallServiceIface) NewAddPaloAltoFirewallParams(networkdevicetyp } // NewAddPaloAltoFirewallParams indicates an expected call of NewAddPaloAltoFirewallParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewAddPaloAltoFirewallParams(networkdevicetype, password, physicalnetworkid, url, username interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewAddPaloAltoFirewallParams(networkdevicetype, password, physicalnetworkid, url, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddPaloAltoFirewallParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewAddPaloAltoFirewallParams), networkdevicetype, password, physicalnetworkid, url, username) } @@ -399,7 +471,7 @@ func (m *MockFirewallServiceIface) NewConfigurePaloAltoFirewallParams(fwdeviceid } // NewConfigurePaloAltoFirewallParams indicates an expected call of NewConfigurePaloAltoFirewallParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewConfigurePaloAltoFirewallParams(fwdeviceid interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewConfigurePaloAltoFirewallParams(fwdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigurePaloAltoFirewallParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewConfigurePaloAltoFirewallParams), fwdeviceid) } @@ -413,7 +485,7 @@ func (m *MockFirewallServiceIface) NewCreateEgressFirewallRuleParams(networkid, } // NewCreateEgressFirewallRuleParams indicates an expected call of NewCreateEgressFirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateEgressFirewallRuleParams(networkid, protocol interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateEgressFirewallRuleParams(networkid, protocol any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateEgressFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewCreateEgressFirewallRuleParams), networkid, protocol) } @@ -427,7 +499,7 @@ func (m *MockFirewallServiceIface) NewCreateFirewallRuleParams(ipaddressid, prot } // NewCreateFirewallRuleParams indicates an expected call of NewCreateFirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateFirewallRuleParams(ipaddressid, protocol interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateFirewallRuleParams(ipaddressid, protocol any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewCreateFirewallRuleParams), ipaddressid, protocol) } @@ -441,7 +513,7 @@ func (m *MockFirewallServiceIface) NewCreateIpv6FirewallRuleParams(networkid, pr } // NewCreateIpv6FirewallRuleParams indicates an expected call of NewCreateIpv6FirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateIpv6FirewallRuleParams(networkid, protocol interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateIpv6FirewallRuleParams(networkid, protocol any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateIpv6FirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewCreateIpv6FirewallRuleParams), networkid, protocol) } @@ -455,11 +527,25 @@ func (m *MockFirewallServiceIface) NewCreatePortForwardingRuleParams(ipaddressid } // NewCreatePortForwardingRuleParams indicates an expected call of NewCreatePortForwardingRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewCreatePortForwardingRuleParams(ipaddressid, privateport, protocol, publicport, virtualmachineid interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewCreatePortForwardingRuleParams(ipaddressid, privateport, protocol, publicport, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreatePortForwardingRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewCreatePortForwardingRuleParams), ipaddressid, privateport, protocol, publicport, virtualmachineid) } +// NewCreateRoutingFirewallRuleParams mocks base method. +func (m *MockFirewallServiceIface) NewCreateRoutingFirewallRuleParams(networkid, protocol string) *CreateRoutingFirewallRuleParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateRoutingFirewallRuleParams", networkid, protocol) + ret0, _ := ret[0].(*CreateRoutingFirewallRuleParams) + return ret0 +} + +// NewCreateRoutingFirewallRuleParams indicates an expected call of NewCreateRoutingFirewallRuleParams. +func (mr *MockFirewallServiceIfaceMockRecorder) NewCreateRoutingFirewallRuleParams(networkid, protocol any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateRoutingFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewCreateRoutingFirewallRuleParams), networkid, protocol) +} + // NewDeleteEgressFirewallRuleParams mocks base method. func (m *MockFirewallServiceIface) NewDeleteEgressFirewallRuleParams(id string) *DeleteEgressFirewallRuleParams { m.ctrl.T.Helper() @@ -469,7 +555,7 @@ func (m *MockFirewallServiceIface) NewDeleteEgressFirewallRuleParams(id string) } // NewDeleteEgressFirewallRuleParams indicates an expected call of NewDeleteEgressFirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteEgressFirewallRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteEgressFirewallRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteEgressFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewDeleteEgressFirewallRuleParams), id) } @@ -483,7 +569,7 @@ func (m *MockFirewallServiceIface) NewDeleteFirewallRuleParams(id string) *Delet } // NewDeleteFirewallRuleParams indicates an expected call of NewDeleteFirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteFirewallRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteFirewallRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewDeleteFirewallRuleParams), id) } @@ -497,7 +583,7 @@ func (m *MockFirewallServiceIface) NewDeleteIpv6FirewallRuleParams(id string) *D } // NewDeleteIpv6FirewallRuleParams indicates an expected call of NewDeleteIpv6FirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteIpv6FirewallRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteIpv6FirewallRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteIpv6FirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewDeleteIpv6FirewallRuleParams), id) } @@ -511,7 +597,7 @@ func (m *MockFirewallServiceIface) NewDeletePaloAltoFirewallParams(fwdeviceid st } // NewDeletePaloAltoFirewallParams indicates an expected call of NewDeletePaloAltoFirewallParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewDeletePaloAltoFirewallParams(fwdeviceid interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewDeletePaloAltoFirewallParams(fwdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeletePaloAltoFirewallParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewDeletePaloAltoFirewallParams), fwdeviceid) } @@ -525,11 +611,25 @@ func (m *MockFirewallServiceIface) NewDeletePortForwardingRuleParams(id string) } // NewDeletePortForwardingRuleParams indicates an expected call of NewDeletePortForwardingRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewDeletePortForwardingRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewDeletePortForwardingRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeletePortForwardingRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewDeletePortForwardingRuleParams), id) } +// NewDeleteRoutingFirewallRuleParams mocks base method. +func (m *MockFirewallServiceIface) NewDeleteRoutingFirewallRuleParams(id string) *DeleteRoutingFirewallRuleParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteRoutingFirewallRuleParams", id) + ret0, _ := ret[0].(*DeleteRoutingFirewallRuleParams) + return ret0 +} + +// NewDeleteRoutingFirewallRuleParams indicates an expected call of NewDeleteRoutingFirewallRuleParams. +func (mr *MockFirewallServiceIfaceMockRecorder) NewDeleteRoutingFirewallRuleParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteRoutingFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewDeleteRoutingFirewallRuleParams), id) +} + // NewListEgressFirewallRulesParams mocks base method. func (m *MockFirewallServiceIface) NewListEgressFirewallRulesParams() *ListEgressFirewallRulesParams { m.ctrl.T.Helper() @@ -600,6 +700,20 @@ func (mr *MockFirewallServiceIfaceMockRecorder) NewListPortForwardingRulesParams return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListPortForwardingRulesParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewListPortForwardingRulesParams)) } +// NewListRoutingFirewallRulesParams mocks base method. +func (m *MockFirewallServiceIface) NewListRoutingFirewallRulesParams() *ListRoutingFirewallRulesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListRoutingFirewallRulesParams") + ret0, _ := ret[0].(*ListRoutingFirewallRulesParams) + return ret0 +} + +// NewListRoutingFirewallRulesParams indicates an expected call of NewListRoutingFirewallRulesParams. +func (mr *MockFirewallServiceIfaceMockRecorder) NewListRoutingFirewallRulesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListRoutingFirewallRulesParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewListRoutingFirewallRulesParams)) +} + // NewUpdateEgressFirewallRuleParams mocks base method. func (m *MockFirewallServiceIface) NewUpdateEgressFirewallRuleParams(id string) *UpdateEgressFirewallRuleParams { m.ctrl.T.Helper() @@ -609,7 +723,7 @@ func (m *MockFirewallServiceIface) NewUpdateEgressFirewallRuleParams(id string) } // NewUpdateEgressFirewallRuleParams indicates an expected call of NewUpdateEgressFirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateEgressFirewallRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateEgressFirewallRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateEgressFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewUpdateEgressFirewallRuleParams), id) } @@ -623,7 +737,7 @@ func (m *MockFirewallServiceIface) NewUpdateFirewallRuleParams(id string) *Updat } // NewUpdateFirewallRuleParams indicates an expected call of NewUpdateFirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateFirewallRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateFirewallRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewUpdateFirewallRuleParams), id) } @@ -637,7 +751,7 @@ func (m *MockFirewallServiceIface) NewUpdateIpv6FirewallRuleParams(id string) *U } // NewUpdateIpv6FirewallRuleParams indicates an expected call of NewUpdateIpv6FirewallRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateIpv6FirewallRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateIpv6FirewallRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateIpv6FirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewUpdateIpv6FirewallRuleParams), id) } @@ -651,11 +765,25 @@ func (m *MockFirewallServiceIface) NewUpdatePortForwardingRuleParams(id string) } // NewUpdatePortForwardingRuleParams indicates an expected call of NewUpdatePortForwardingRuleParams. -func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdatePortForwardingRuleParams(id interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdatePortForwardingRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdatePortForwardingRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewUpdatePortForwardingRuleParams), id) } +// NewUpdateRoutingFirewallRuleParams mocks base method. +func (m *MockFirewallServiceIface) NewUpdateRoutingFirewallRuleParams(id string) *UpdateRoutingFirewallRuleParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateRoutingFirewallRuleParams", id) + ret0, _ := ret[0].(*UpdateRoutingFirewallRuleParams) + return ret0 +} + +// NewUpdateRoutingFirewallRuleParams indicates an expected call of NewUpdateRoutingFirewallRuleParams. +func (mr *MockFirewallServiceIfaceMockRecorder) NewUpdateRoutingFirewallRuleParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateRoutingFirewallRuleParams", reflect.TypeOf((*MockFirewallServiceIface)(nil).NewUpdateRoutingFirewallRuleParams), id) +} + // UpdateEgressFirewallRule mocks base method. func (m *MockFirewallServiceIface) UpdateEgressFirewallRule(p *UpdateEgressFirewallRuleParams) (*UpdateEgressFirewallRuleResponse, error) { m.ctrl.T.Helper() @@ -666,7 +794,7 @@ func (m *MockFirewallServiceIface) UpdateEgressFirewallRule(p *UpdateEgressFirew } // UpdateEgressFirewallRule indicates an expected call of UpdateEgressFirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) UpdateEgressFirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) UpdateEgressFirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateEgressFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).UpdateEgressFirewallRule), p) } @@ -681,7 +809,7 @@ func (m *MockFirewallServiceIface) UpdateFirewallRule(p *UpdateFirewallRuleParam } // UpdateFirewallRule indicates an expected call of UpdateFirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) UpdateFirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) UpdateFirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).UpdateFirewallRule), p) } @@ -696,7 +824,7 @@ func (m *MockFirewallServiceIface) UpdateIpv6FirewallRule(p *UpdateIpv6FirewallR } // UpdateIpv6FirewallRule indicates an expected call of UpdateIpv6FirewallRule. -func (mr *MockFirewallServiceIfaceMockRecorder) UpdateIpv6FirewallRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) UpdateIpv6FirewallRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIpv6FirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).UpdateIpv6FirewallRule), p) } @@ -711,7 +839,22 @@ func (m *MockFirewallServiceIface) UpdatePortForwardingRule(p *UpdatePortForward } // UpdatePortForwardingRule indicates an expected call of UpdatePortForwardingRule. -func (mr *MockFirewallServiceIfaceMockRecorder) UpdatePortForwardingRule(p interface{}) *gomock.Call { +func (mr *MockFirewallServiceIfaceMockRecorder) UpdatePortForwardingRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePortForwardingRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).UpdatePortForwardingRule), p) } + +// UpdateRoutingFirewallRule mocks base method. +func (m *MockFirewallServiceIface) UpdateRoutingFirewallRule(p *UpdateRoutingFirewallRuleParams) (*UpdateRoutingFirewallRuleResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateRoutingFirewallRule", p) + ret0, _ := ret[0].(*UpdateRoutingFirewallRuleResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateRoutingFirewallRule indicates an expected call of UpdateRoutingFirewallRule. +func (mr *MockFirewallServiceIfaceMockRecorder) UpdateRoutingFirewallRule(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRoutingFirewallRule", reflect.TypeOf((*MockFirewallServiceIface)(nil).UpdateRoutingFirewallRule), p) +} diff --git a/cloudstack/GuestOSService_mock.go b/cloudstack/GuestOSService_mock.go index 04775d22..b3a78a09 100644 --- a/cloudstack/GuestOSService_mock.go +++ b/cloudstack/GuestOSService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/GuestOSService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/GuestOSService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/GuestOSService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockGuestOSServiceIface is a mock of GuestOSServiceIface interface. type MockGuestOSServiceIface struct { ctrl *gomock.Controller recorder *MockGuestOSServiceIfaceMockRecorder + isgomock struct{} } // MockGuestOSServiceIfaceMockRecorder is the mock recorder for MockGuestOSServiceIface. @@ -62,7 +68,7 @@ func (m *MockGuestOSServiceIface) AddGuestOs(p *AddGuestOsParams) (*AddGuestOsRe } // AddGuestOs indicates an expected call of AddGuestOs. -func (mr *MockGuestOSServiceIfaceMockRecorder) AddGuestOs(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) AddGuestOs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddGuestOs", reflect.TypeOf((*MockGuestOSServiceIface)(nil).AddGuestOs), p) } @@ -77,7 +83,7 @@ func (m *MockGuestOSServiceIface) AddGuestOsMapping(p *AddGuestOsMappingParams) } // AddGuestOsMapping indicates an expected call of AddGuestOsMapping. -func (mr *MockGuestOSServiceIfaceMockRecorder) AddGuestOsMapping(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) AddGuestOsMapping(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddGuestOsMapping", reflect.TypeOf((*MockGuestOSServiceIface)(nil).AddGuestOsMapping), p) } @@ -85,7 +91,7 @@ func (mr *MockGuestOSServiceIfaceMockRecorder) AddGuestOsMapping(p interface{}) // GetGuestOsMappingByID mocks base method. func (m *MockGuestOSServiceIface) GetGuestOsMappingByID(id string, opts ...OptionFunc) (*GuestOsMapping, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,9 +103,9 @@ func (m *MockGuestOSServiceIface) GetGuestOsMappingByID(id string, opts ...Optio } // GetGuestOsMappingByID indicates an expected call of GetGuestOsMappingByID. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetGuestOsMappingByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetGuestOsMappingByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGuestOsMappingByID", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetGuestOsMappingByID), varargs...) } @@ -113,7 +119,7 @@ func (m *MockGuestOSServiceIface) GetHypervisorGuestOsNames(p *GetHypervisorGues } // GetHypervisorGuestOsNames indicates an expected call of GetHypervisorGuestOsNames. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetHypervisorGuestOsNames(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetHypervisorGuestOsNames(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHypervisorGuestOsNames", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetHypervisorGuestOsNames), p) } @@ -121,7 +127,7 @@ func (mr *MockGuestOSServiceIfaceMockRecorder) GetHypervisorGuestOsNames(p inter // GetOsCategoryByID mocks base method. func (m *MockGuestOSServiceIface) GetOsCategoryByID(id string, opts ...OptionFunc) (*OsCategory, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -133,16 +139,16 @@ func (m *MockGuestOSServiceIface) GetOsCategoryByID(id string, opts ...OptionFun } // GetOsCategoryByID indicates an expected call of GetOsCategoryByID. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsCategoryByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsCategoryByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOsCategoryByID", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetOsCategoryByID), varargs...) } // GetOsCategoryByName mocks base method. func (m *MockGuestOSServiceIface) GetOsCategoryByName(name string, opts ...OptionFunc) (*OsCategory, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -154,16 +160,16 @@ func (m *MockGuestOSServiceIface) GetOsCategoryByName(name string, opts ...Optio } // GetOsCategoryByName indicates an expected call of GetOsCategoryByName. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsCategoryByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsCategoryByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOsCategoryByName", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetOsCategoryByName), varargs...) } // GetOsCategoryID mocks base method. func (m *MockGuestOSServiceIface) GetOsCategoryID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -175,16 +181,16 @@ func (m *MockGuestOSServiceIface) GetOsCategoryID(name string, opts ...OptionFun } // GetOsCategoryID indicates an expected call of GetOsCategoryID. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsCategoryID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsCategoryID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOsCategoryID", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetOsCategoryID), varargs...) } // GetOsTypeByID mocks base method. func (m *MockGuestOSServiceIface) GetOsTypeByID(id string, opts ...OptionFunc) (*OsType, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -196,16 +202,16 @@ func (m *MockGuestOSServiceIface) GetOsTypeByID(id string, opts ...OptionFunc) ( } // GetOsTypeByID indicates an expected call of GetOsTypeByID. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsTypeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsTypeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOsTypeByID", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetOsTypeByID), varargs...) } // GetOsTypeByName mocks base method. func (m *MockGuestOSServiceIface) GetOsTypeByName(name string, opts ...OptionFunc) (*OsType, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -217,16 +223,16 @@ func (m *MockGuestOSServiceIface) GetOsTypeByName(name string, opts ...OptionFun } // GetOsTypeByName indicates an expected call of GetOsTypeByName. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsTypeByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsTypeByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOsTypeByName", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetOsTypeByName), varargs...) } // GetOsTypeID mocks base method. func (m *MockGuestOSServiceIface) GetOsTypeID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -238,9 +244,9 @@ func (m *MockGuestOSServiceIface) GetOsTypeID(keyword string, opts ...OptionFunc } // GetOsTypeID indicates an expected call of GetOsTypeID. -func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsTypeID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) GetOsTypeID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOsTypeID", reflect.TypeOf((*MockGuestOSServiceIface)(nil).GetOsTypeID), varargs...) } @@ -254,7 +260,7 @@ func (m *MockGuestOSServiceIface) ListGuestOsMapping(p *ListGuestOsMappingParams } // ListGuestOsMapping indicates an expected call of ListGuestOsMapping. -func (mr *MockGuestOSServiceIfaceMockRecorder) ListGuestOsMapping(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) ListGuestOsMapping(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGuestOsMapping", reflect.TypeOf((*MockGuestOSServiceIface)(nil).ListGuestOsMapping), p) } @@ -269,7 +275,7 @@ func (m *MockGuestOSServiceIface) ListOsCategories(p *ListOsCategoriesParams) (* } // ListOsCategories indicates an expected call of ListOsCategories. -func (mr *MockGuestOSServiceIfaceMockRecorder) ListOsCategories(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) ListOsCategories(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListOsCategories", reflect.TypeOf((*MockGuestOSServiceIface)(nil).ListOsCategories), p) } @@ -284,7 +290,7 @@ func (m *MockGuestOSServiceIface) ListOsTypes(p *ListOsTypesParams) (*ListOsType } // ListOsTypes indicates an expected call of ListOsTypes. -func (mr *MockGuestOSServiceIfaceMockRecorder) ListOsTypes(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) ListOsTypes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListOsTypes", reflect.TypeOf((*MockGuestOSServiceIface)(nil).ListOsTypes), p) } @@ -298,7 +304,7 @@ func (m *MockGuestOSServiceIface) NewAddGuestOsMappingParams(hypervisor, hypervi } // NewAddGuestOsMappingParams indicates an expected call of NewAddGuestOsMappingParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewAddGuestOsMappingParams(hypervisor, hypervisorversion, osnameforhypervisor interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewAddGuestOsMappingParams(hypervisor, hypervisorversion, osnameforhypervisor any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddGuestOsMappingParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewAddGuestOsMappingParams), hypervisor, hypervisorversion, osnameforhypervisor) } @@ -312,7 +318,7 @@ func (m *MockGuestOSServiceIface) NewAddGuestOsParams(oscategoryid, osdisplaynam } // NewAddGuestOsParams indicates an expected call of NewAddGuestOsParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewAddGuestOsParams(oscategoryid, osdisplayname interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewAddGuestOsParams(oscategoryid, osdisplayname any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddGuestOsParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewAddGuestOsParams), oscategoryid, osdisplayname) } @@ -326,7 +332,7 @@ func (m *MockGuestOSServiceIface) NewGetHypervisorGuestOsNamesParams(hypervisor, } // NewGetHypervisorGuestOsNamesParams indicates an expected call of NewGetHypervisorGuestOsNamesParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewGetHypervisorGuestOsNamesParams(hypervisor, hypervisorversion interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewGetHypervisorGuestOsNamesParams(hypervisor, hypervisorversion any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetHypervisorGuestOsNamesParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewGetHypervisorGuestOsNamesParams), hypervisor, hypervisorversion) } @@ -382,7 +388,7 @@ func (m *MockGuestOSServiceIface) NewRemoveGuestOsMappingParams(id string) *Remo } // NewRemoveGuestOsMappingParams indicates an expected call of NewRemoveGuestOsMappingParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewRemoveGuestOsMappingParams(id interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewRemoveGuestOsMappingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveGuestOsMappingParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewRemoveGuestOsMappingParams), id) } @@ -396,7 +402,7 @@ func (m *MockGuestOSServiceIface) NewRemoveGuestOsParams(id string) *RemoveGuest } // NewRemoveGuestOsParams indicates an expected call of NewRemoveGuestOsParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewRemoveGuestOsParams(id interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewRemoveGuestOsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveGuestOsParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewRemoveGuestOsParams), id) } @@ -410,7 +416,7 @@ func (m *MockGuestOSServiceIface) NewUpdateGuestOsMappingParams(id, osnameforhyp } // NewUpdateGuestOsMappingParams indicates an expected call of NewUpdateGuestOsMappingParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewUpdateGuestOsMappingParams(id, osnameforhypervisor interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewUpdateGuestOsMappingParams(id, osnameforhypervisor any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateGuestOsMappingParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewUpdateGuestOsMappingParams), id, osnameforhypervisor) } @@ -424,7 +430,7 @@ func (m *MockGuestOSServiceIface) NewUpdateGuestOsParams(id, osdisplayname strin } // NewUpdateGuestOsParams indicates an expected call of NewUpdateGuestOsParams. -func (mr *MockGuestOSServiceIfaceMockRecorder) NewUpdateGuestOsParams(id, osdisplayname interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) NewUpdateGuestOsParams(id, osdisplayname any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateGuestOsParams", reflect.TypeOf((*MockGuestOSServiceIface)(nil).NewUpdateGuestOsParams), id, osdisplayname) } @@ -439,7 +445,7 @@ func (m *MockGuestOSServiceIface) RemoveGuestOs(p *RemoveGuestOsParams) (*Remove } // RemoveGuestOs indicates an expected call of RemoveGuestOs. -func (mr *MockGuestOSServiceIfaceMockRecorder) RemoveGuestOs(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) RemoveGuestOs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveGuestOs", reflect.TypeOf((*MockGuestOSServiceIface)(nil).RemoveGuestOs), p) } @@ -454,7 +460,7 @@ func (m *MockGuestOSServiceIface) RemoveGuestOsMapping(p *RemoveGuestOsMappingPa } // RemoveGuestOsMapping indicates an expected call of RemoveGuestOsMapping. -func (mr *MockGuestOSServiceIfaceMockRecorder) RemoveGuestOsMapping(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) RemoveGuestOsMapping(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveGuestOsMapping", reflect.TypeOf((*MockGuestOSServiceIface)(nil).RemoveGuestOsMapping), p) } @@ -469,7 +475,7 @@ func (m *MockGuestOSServiceIface) UpdateGuestOs(p *UpdateGuestOsParams) (*Update } // UpdateGuestOs indicates an expected call of UpdateGuestOs. -func (mr *MockGuestOSServiceIfaceMockRecorder) UpdateGuestOs(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) UpdateGuestOs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGuestOs", reflect.TypeOf((*MockGuestOSServiceIface)(nil).UpdateGuestOs), p) } @@ -484,7 +490,7 @@ func (m *MockGuestOSServiceIface) UpdateGuestOsMapping(p *UpdateGuestOsMappingPa } // UpdateGuestOsMapping indicates an expected call of UpdateGuestOsMapping. -func (mr *MockGuestOSServiceIfaceMockRecorder) UpdateGuestOsMapping(p interface{}) *gomock.Call { +func (mr *MockGuestOSServiceIfaceMockRecorder) UpdateGuestOsMapping(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGuestOsMapping", reflect.TypeOf((*MockGuestOSServiceIface)(nil).UpdateGuestOsMapping), p) } diff --git a/cloudstack/HostService.go b/cloudstack/HostService.go index 779567a1..00ad0960 100644 --- a/cloudstack/HostService.go +++ b/cloudstack/HostService.go @@ -46,6 +46,8 @@ type HostServiceIface interface { NewDedicateHostParams(domainid string, hostid string) *DedicateHostParams DeleteHost(p *DeleteHostParams) (*DeleteHostResponse, error) NewDeleteHostParams(id string) *DeleteHostParams + DisableHAForHost(p *DisableHAForHostParams) (*DisableHAForHostResponse, error) + NewDisableHAForHostParams(hostid string) *DisableHAForHostParams DisableOutOfBandManagementForHost(p *DisableOutOfBandManagementForHostParams) (*DisableOutOfBandManagementForHostResponse, error) NewDisableOutOfBandManagementForHostParams(hostid string) *DisableOutOfBandManagementForHostParams EnableOutOfBandManagementForHost(p *EnableOutOfBandManagementForHostParams) (*EnableOutOfBandManagementForHostResponse, error) @@ -1773,6 +1775,96 @@ func (r *DeleteHostResponse) UnmarshalJSON(b []byte) error { return json.Unmarshal(b, (*alias)(r)) } +type DisableHAForHostParams struct { + p map[string]interface{} +} + +func (p *DisableHAForHostParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + return u +} + +func (p *DisableHAForHostParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostid"] = v +} + +func (p *DisableHAForHostParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } +} + +func (p *DisableHAForHostParams) GetHostid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostid"].(string) + return value, ok +} + +// You should always use this function to get a new DisableHAForHostParams instance, +// as then you are sure you have configured all required params +func (s *HostService) NewDisableHAForHostParams(hostid string) *DisableHAForHostParams { + p := &DisableHAForHostParams{} + p.p = make(map[string]interface{}) + p.p["hostid"] = hostid + return p +} + +// Disables HA for a host +func (s *HostService) DisableHAForHost(p *DisableHAForHostParams) (*DisableHAForHostResponse, error) { + resp, err := s.cs.newRequest("disableHAForHost", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DisableHAForHostResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DisableHAForHostResponse struct { + Haenable bool `json:"haenable"` + Haprovider string `json:"haprovider"` + Hastate string `json:"hastate"` + Hostid string `json:"hostid"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Status bool `json:"status"` +} + type DisableOutOfBandManagementForHostParams struct { p map[string]interface{} } @@ -5028,6 +5120,7 @@ func (s *HostService) CancelHostAsDegraded(p *CancelHostAsDegradedParams) (*Canc type CancelHostAsDegradedResponse struct { Annotation string `json:"annotation"` + Arch string `json:"arch"` Capabilities string `json:"capabilities"` Clusterid string `json:"clusterid"` Clustername string `json:"clustername"` @@ -5049,6 +5142,7 @@ type CancelHostAsDegradedResponse struct { Disksizetotal int64 `json:"disksizetotal"` Encryptionsupported bool `json:"encryptionsupported"` Events string `json:"events"` + Explicithosttags string `json:"explicithosttags"` Gpugroup []CancelHostAsDegradedResponseGpugroup `json:"gpugroup"` Hahost bool `json:"hahost"` Hasannotations bool `json:"hasannotations"` @@ -5058,6 +5152,8 @@ type CancelHostAsDegradedResponse struct { Hypervisor string `json:"hypervisor"` Hypervisorversion string `json:"hypervisorversion"` Id string `json:"id"` + Implicithosttags string `json:"implicithosttags"` + Instanceconversionsupported bool `json:"instanceconversionsupported"` Ipaddress string `json:"ipaddress"` Islocalstorageactive bool `json:"islocalstorageactive"` Istagarule bool `json:"istagarule"` @@ -5658,16 +5754,37 @@ func (s *HostService) RemoveSecondaryStorageSelector(p *RemoveSecondaryStorageSe } type RemoveSecondaryStorageSelectorResponse struct { - Created string `json:"created"` - Description string `json:"description"` - Heuristicrule string `json:"heuristicrule"` - Id string `json:"id"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Name string `json:"name"` - Removed string `json:"removed"` - Type string `json:"type"` - Zoneid string `json:"zoneid"` + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *RemoveSecondaryStorageSelectorResponse) 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 RemoveSecondaryStorageSelectorResponse + return json.Unmarshal(b, (*alias)(r)) } type ListHostHAResourcesParams struct { @@ -5826,6 +5943,7 @@ func (s *HostService) DeclareHostAsDegraded(p *DeclareHostAsDegradedParams) (*De type DeclareHostAsDegradedResponse struct { Annotation string `json:"annotation"` + Arch string `json:"arch"` Capabilities string `json:"capabilities"` Clusterid string `json:"clusterid"` Clustername string `json:"clustername"` @@ -5847,6 +5965,7 @@ type DeclareHostAsDegradedResponse struct { Disksizetotal int64 `json:"disksizetotal"` Encryptionsupported bool `json:"encryptionsupported"` Events string `json:"events"` + Explicithosttags string `json:"explicithosttags"` Gpugroup []DeclareHostAsDegradedResponseGpugroup `json:"gpugroup"` Hahost bool `json:"hahost"` Hasannotations bool `json:"hasannotations"` @@ -5856,6 +5975,8 @@ type DeclareHostAsDegradedResponse struct { Hypervisor string `json:"hypervisor"` Hypervisorversion string `json:"hypervisorversion"` Id string `json:"id"` + Implicithosttags string `json:"implicithosttags"` + Instanceconversionsupported bool `json:"instanceconversionsupported"` Ipaddress string `json:"ipaddress"` Islocalstorageactive bool `json:"islocalstorageactive"` Istagarule bool `json:"istagarule"` diff --git a/cloudstack/HostService_mock.go b/cloudstack/HostService_mock.go index badb90e1..3d7a743b 100644 --- a/cloudstack/HostService_mock.go +++ b/cloudstack/HostService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/HostService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/HostService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/HostService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockHostServiceIface is a mock of HostServiceIface interface. type MockHostServiceIface struct { ctrl *gomock.Controller recorder *MockHostServiceIfaceMockRecorder + isgomock struct{} } // MockHostServiceIfaceMockRecorder is the mock recorder for MockHostServiceIface. @@ -62,7 +68,7 @@ func (m *MockHostServiceIface) AddBaremetalHost(p *AddBaremetalHostParams) (*Add } // AddBaremetalHost indicates an expected call of AddBaremetalHost. -func (mr *MockHostServiceIfaceMockRecorder) AddBaremetalHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) AddBaremetalHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBaremetalHost", reflect.TypeOf((*MockHostServiceIface)(nil).AddBaremetalHost), p) } @@ -77,7 +83,7 @@ func (m *MockHostServiceIface) AddGloboDnsHost(p *AddGloboDnsHostParams) (*AddGl } // AddGloboDnsHost indicates an expected call of AddGloboDnsHost. -func (mr *MockHostServiceIfaceMockRecorder) AddGloboDnsHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) AddGloboDnsHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddGloboDnsHost", reflect.TypeOf((*MockHostServiceIface)(nil).AddGloboDnsHost), p) } @@ -92,7 +98,7 @@ func (m *MockHostServiceIface) AddHost(p *AddHostParams) (*AddHostResponse, erro } // AddHost indicates an expected call of AddHost. -func (mr *MockHostServiceIfaceMockRecorder) AddHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) AddHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddHost", reflect.TypeOf((*MockHostServiceIface)(nil).AddHost), p) } @@ -107,7 +113,7 @@ func (m *MockHostServiceIface) AddSecondaryStorage(p *AddSecondaryStorageParams) } // AddSecondaryStorage indicates an expected call of AddSecondaryStorage. -func (mr *MockHostServiceIfaceMockRecorder) AddSecondaryStorage(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) AddSecondaryStorage(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddSecondaryStorage", reflect.TypeOf((*MockHostServiceIface)(nil).AddSecondaryStorage), p) } @@ -122,7 +128,7 @@ func (m *MockHostServiceIface) CancelHostAsDegraded(p *CancelHostAsDegradedParam } // CancelHostAsDegraded indicates an expected call of CancelHostAsDegraded. -func (mr *MockHostServiceIfaceMockRecorder) CancelHostAsDegraded(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) CancelHostAsDegraded(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelHostAsDegraded", reflect.TypeOf((*MockHostServiceIface)(nil).CancelHostAsDegraded), p) } @@ -137,7 +143,7 @@ func (m *MockHostServiceIface) CancelHostMaintenance(p *CancelHostMaintenancePar } // CancelHostMaintenance indicates an expected call of CancelHostMaintenance. -func (mr *MockHostServiceIfaceMockRecorder) CancelHostMaintenance(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) CancelHostMaintenance(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelHostMaintenance", reflect.TypeOf((*MockHostServiceIface)(nil).CancelHostMaintenance), p) } @@ -152,7 +158,7 @@ func (m *MockHostServiceIface) ConfigureHAForHost(p *ConfigureHAForHostParams) ( } // ConfigureHAForHost indicates an expected call of ConfigureHAForHost. -func (mr *MockHostServiceIfaceMockRecorder) ConfigureHAForHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ConfigureHAForHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureHAForHost", reflect.TypeOf((*MockHostServiceIface)(nil).ConfigureHAForHost), p) } @@ -167,7 +173,7 @@ func (m *MockHostServiceIface) CreateSecondaryStorageSelector(p *CreateSecondary } // CreateSecondaryStorageSelector indicates an expected call of CreateSecondaryStorageSelector. -func (mr *MockHostServiceIfaceMockRecorder) CreateSecondaryStorageSelector(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) CreateSecondaryStorageSelector(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecondaryStorageSelector", reflect.TypeOf((*MockHostServiceIface)(nil).CreateSecondaryStorageSelector), p) } @@ -182,7 +188,7 @@ func (m *MockHostServiceIface) DeclareHostAsDegraded(p *DeclareHostAsDegradedPar } // DeclareHostAsDegraded indicates an expected call of DeclareHostAsDegraded. -func (mr *MockHostServiceIfaceMockRecorder) DeclareHostAsDegraded(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) DeclareHostAsDegraded(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeclareHostAsDegraded", reflect.TypeOf((*MockHostServiceIface)(nil).DeclareHostAsDegraded), p) } @@ -197,7 +203,7 @@ func (m *MockHostServiceIface) DedicateHost(p *DedicateHostParams) (*DedicateHos } // DedicateHost indicates an expected call of DedicateHost. -func (mr *MockHostServiceIfaceMockRecorder) DedicateHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) DedicateHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicateHost", reflect.TypeOf((*MockHostServiceIface)(nil).DedicateHost), p) } @@ -212,11 +218,26 @@ func (m *MockHostServiceIface) DeleteHost(p *DeleteHostParams) (*DeleteHostRespo } // DeleteHost indicates an expected call of DeleteHost. -func (mr *MockHostServiceIfaceMockRecorder) DeleteHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) DeleteHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHost", reflect.TypeOf((*MockHostServiceIface)(nil).DeleteHost), p) } +// DisableHAForHost mocks base method. +func (m *MockHostServiceIface) DisableHAForHost(p *DisableHAForHostParams) (*DisableHAForHostResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DisableHAForHost", p) + ret0, _ := ret[0].(*DisableHAForHostResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DisableHAForHost indicates an expected call of DisableHAForHost. +func (mr *MockHostServiceIfaceMockRecorder) DisableHAForHost(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableHAForHost", reflect.TypeOf((*MockHostServiceIface)(nil).DisableHAForHost), p) +} + // DisableOutOfBandManagementForHost mocks base method. func (m *MockHostServiceIface) DisableOutOfBandManagementForHost(p *DisableOutOfBandManagementForHostParams) (*DisableOutOfBandManagementForHostResponse, error) { m.ctrl.T.Helper() @@ -227,7 +248,7 @@ func (m *MockHostServiceIface) DisableOutOfBandManagementForHost(p *DisableOutOf } // DisableOutOfBandManagementForHost indicates an expected call of DisableOutOfBandManagementForHost. -func (mr *MockHostServiceIfaceMockRecorder) DisableOutOfBandManagementForHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) DisableOutOfBandManagementForHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableOutOfBandManagementForHost", reflect.TypeOf((*MockHostServiceIface)(nil).DisableOutOfBandManagementForHost), p) } @@ -242,7 +263,7 @@ func (m *MockHostServiceIface) EnableHAForHost(p *EnableHAForHostParams) (*Enabl } // EnableHAForHost indicates an expected call of EnableHAForHost. -func (mr *MockHostServiceIfaceMockRecorder) EnableHAForHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) EnableHAForHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableHAForHost", reflect.TypeOf((*MockHostServiceIface)(nil).EnableHAForHost), p) } @@ -257,7 +278,7 @@ func (m *MockHostServiceIface) EnableOutOfBandManagementForHost(p *EnableOutOfBa } // EnableOutOfBandManagementForHost indicates an expected call of EnableOutOfBandManagementForHost. -func (mr *MockHostServiceIfaceMockRecorder) EnableOutOfBandManagementForHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) EnableOutOfBandManagementForHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableOutOfBandManagementForHost", reflect.TypeOf((*MockHostServiceIface)(nil).EnableOutOfBandManagementForHost), p) } @@ -272,7 +293,7 @@ func (m *MockHostServiceIface) FindHostsForMigration(p *FindHostsForMigrationPar } // FindHostsForMigration indicates an expected call of FindHostsForMigration. -func (mr *MockHostServiceIfaceMockRecorder) FindHostsForMigration(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) FindHostsForMigration(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindHostsForMigration", reflect.TypeOf((*MockHostServiceIface)(nil).FindHostsForMigration), p) } @@ -280,7 +301,7 @@ func (mr *MockHostServiceIfaceMockRecorder) FindHostsForMigration(p interface{}) // GetHostByID mocks base method. func (m *MockHostServiceIface) GetHostByID(id string, opts ...OptionFunc) (*Host, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -292,16 +313,16 @@ func (m *MockHostServiceIface) GetHostByID(id string, opts ...OptionFunc) (*Host } // GetHostByID indicates an expected call of GetHostByID. -func (mr *MockHostServiceIfaceMockRecorder) GetHostByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostByID", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostByID), varargs...) } // GetHostByName mocks base method. func (m *MockHostServiceIface) GetHostByName(name string, opts ...OptionFunc) (*Host, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -313,16 +334,16 @@ func (m *MockHostServiceIface) GetHostByName(name string, opts ...OptionFunc) (* } // GetHostByName indicates an expected call of GetHostByName. -func (mr *MockHostServiceIfaceMockRecorder) GetHostByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostByName", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostByName), varargs...) } // GetHostID mocks base method. func (m *MockHostServiceIface) GetHostID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -334,16 +355,16 @@ func (m *MockHostServiceIface) GetHostID(name string, opts ...OptionFunc) (strin } // GetHostID indicates an expected call of GetHostID. -func (mr *MockHostServiceIfaceMockRecorder) GetHostID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostID", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostID), varargs...) } // GetHostTagID mocks base method. func (m *MockHostServiceIface) GetHostTagID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -355,16 +376,16 @@ func (m *MockHostServiceIface) GetHostTagID(keyword string, opts ...OptionFunc) } // GetHostTagID indicates an expected call of GetHostTagID. -func (mr *MockHostServiceIfaceMockRecorder) GetHostTagID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostTagID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostTagID", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostTagID), varargs...) } // GetHostsMetricByID mocks base method. func (m *MockHostServiceIface) GetHostsMetricByID(id string, opts ...OptionFunc) (*HostsMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -376,16 +397,16 @@ func (m *MockHostServiceIface) GetHostsMetricByID(id string, opts ...OptionFunc) } // GetHostsMetricByID indicates an expected call of GetHostsMetricByID. -func (mr *MockHostServiceIfaceMockRecorder) GetHostsMetricByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostsMetricByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostsMetricByID", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostsMetricByID), varargs...) } // GetHostsMetricByName mocks base method. func (m *MockHostServiceIface) GetHostsMetricByName(name string, opts ...OptionFunc) (*HostsMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -397,16 +418,16 @@ func (m *MockHostServiceIface) GetHostsMetricByName(name string, opts ...OptionF } // GetHostsMetricByName indicates an expected call of GetHostsMetricByName. -func (mr *MockHostServiceIfaceMockRecorder) GetHostsMetricByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostsMetricByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostsMetricByName", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostsMetricByName), varargs...) } // GetHostsMetricID mocks base method. func (m *MockHostServiceIface) GetHostsMetricID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -418,16 +439,16 @@ func (m *MockHostServiceIface) GetHostsMetricID(name string, opts ...OptionFunc) } // GetHostsMetricID indicates an expected call of GetHostsMetricID. -func (mr *MockHostServiceIfaceMockRecorder) GetHostsMetricID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetHostsMetricID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostsMetricID", reflect.TypeOf((*MockHostServiceIface)(nil).GetHostsMetricID), varargs...) } // GetSecondaryStorageSelectorID mocks base method. func (m *MockHostServiceIface) GetSecondaryStorageSelectorID(keyword, zoneid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, zoneid} + varargs := []any{keyword, zoneid} for _, a := range opts { varargs = append(varargs, a) } @@ -439,9 +460,9 @@ func (m *MockHostServiceIface) GetSecondaryStorageSelectorID(keyword, zoneid str } // GetSecondaryStorageSelectorID indicates an expected call of GetSecondaryStorageSelectorID. -func (mr *MockHostServiceIfaceMockRecorder) GetSecondaryStorageSelectorID(keyword, zoneid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) GetSecondaryStorageSelectorID(keyword, zoneid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, zoneid}, opts...) + varargs := append([]any{keyword, zoneid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondaryStorageSelectorID", reflect.TypeOf((*MockHostServiceIface)(nil).GetSecondaryStorageSelectorID), varargs...) } @@ -455,7 +476,7 @@ func (m *MockHostServiceIface) ListDedicatedHosts(p *ListDedicatedHostsParams) ( } // ListDedicatedHosts indicates an expected call of ListDedicatedHosts. -func (mr *MockHostServiceIfaceMockRecorder) ListDedicatedHosts(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListDedicatedHosts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDedicatedHosts", reflect.TypeOf((*MockHostServiceIface)(nil).ListDedicatedHosts), p) } @@ -470,7 +491,7 @@ func (m *MockHostServiceIface) ListHostHAProviders(p *ListHostHAProvidersParams) } // ListHostHAProviders indicates an expected call of ListHostHAProviders. -func (mr *MockHostServiceIfaceMockRecorder) ListHostHAProviders(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListHostHAProviders(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostHAProviders", reflect.TypeOf((*MockHostServiceIface)(nil).ListHostHAProviders), p) } @@ -485,7 +506,7 @@ func (m *MockHostServiceIface) ListHostHAResources(p *ListHostHAResourcesParams) } // ListHostHAResources indicates an expected call of ListHostHAResources. -func (mr *MockHostServiceIfaceMockRecorder) ListHostHAResources(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListHostHAResources(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostHAResources", reflect.TypeOf((*MockHostServiceIface)(nil).ListHostHAResources), p) } @@ -500,7 +521,7 @@ func (m *MockHostServiceIface) ListHostTags(p *ListHostTagsParams) (*ListHostTag } // ListHostTags indicates an expected call of ListHostTags. -func (mr *MockHostServiceIfaceMockRecorder) ListHostTags(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListHostTags(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostTags", reflect.TypeOf((*MockHostServiceIface)(nil).ListHostTags), p) } @@ -515,7 +536,7 @@ func (m *MockHostServiceIface) ListHosts(p *ListHostsParams) (*ListHostsResponse } // ListHosts indicates an expected call of ListHosts. -func (mr *MockHostServiceIfaceMockRecorder) ListHosts(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListHosts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHosts", reflect.TypeOf((*MockHostServiceIface)(nil).ListHosts), p) } @@ -530,7 +551,7 @@ func (m *MockHostServiceIface) ListHostsMetrics(p *ListHostsMetricsParams) (*Lis } // ListHostsMetrics indicates an expected call of ListHostsMetrics. -func (mr *MockHostServiceIfaceMockRecorder) ListHostsMetrics(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListHostsMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostsMetrics", reflect.TypeOf((*MockHostServiceIface)(nil).ListHostsMetrics), p) } @@ -545,7 +566,7 @@ func (m *MockHostServiceIface) ListSecondaryStorageSelectors(p *ListSecondarySto } // ListSecondaryStorageSelectors indicates an expected call of ListSecondaryStorageSelectors. -func (mr *MockHostServiceIfaceMockRecorder) ListSecondaryStorageSelectors(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ListSecondaryStorageSelectors(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecondaryStorageSelectors", reflect.TypeOf((*MockHostServiceIface)(nil).ListSecondaryStorageSelectors), p) } @@ -560,7 +581,7 @@ func (m *MockHostServiceIface) MigrateSecondaryStorageData(p *MigrateSecondarySt } // MigrateSecondaryStorageData indicates an expected call of MigrateSecondaryStorageData. -func (mr *MockHostServiceIfaceMockRecorder) MigrateSecondaryStorageData(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) MigrateSecondaryStorageData(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateSecondaryStorageData", reflect.TypeOf((*MockHostServiceIface)(nil).MigrateSecondaryStorageData), p) } @@ -574,7 +595,7 @@ func (m *MockHostServiceIface) NewAddBaremetalHostParams(hypervisor, podid, url, } // NewAddBaremetalHostParams indicates an expected call of NewAddBaremetalHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewAddBaremetalHostParams(hypervisor, podid, url, zoneid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewAddBaremetalHostParams(hypervisor, podid, url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddBaremetalHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddBaremetalHostParams), hypervisor, podid, url, zoneid) } @@ -588,7 +609,7 @@ func (m *MockHostServiceIface) NewAddGloboDnsHostParams(password, physicalnetwor } // NewAddGloboDnsHostParams indicates an expected call of NewAddGloboDnsHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewAddGloboDnsHostParams(password, physicalnetworkid, url, username interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewAddGloboDnsHostParams(password, physicalnetworkid, url, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddGloboDnsHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddGloboDnsHostParams), password, physicalnetworkid, url, username) } @@ -602,7 +623,7 @@ func (m *MockHostServiceIface) NewAddHostParams(hypervisor, podid, url, zoneid s } // NewAddHostParams indicates an expected call of NewAddHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewAddHostParams(hypervisor, podid, url, zoneid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewAddHostParams(hypervisor, podid, url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddHostParams), hypervisor, podid, url, zoneid) } @@ -616,7 +637,7 @@ func (m *MockHostServiceIface) NewAddSecondaryStorageParams(url string) *AddSeco } // NewAddSecondaryStorageParams indicates an expected call of NewAddSecondaryStorageParams. -func (mr *MockHostServiceIfaceMockRecorder) NewAddSecondaryStorageParams(url interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewAddSecondaryStorageParams(url any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddSecondaryStorageParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewAddSecondaryStorageParams), url) } @@ -630,7 +651,7 @@ func (m *MockHostServiceIface) NewCancelHostAsDegradedParams(id string) *CancelH } // NewCancelHostAsDegradedParams indicates an expected call of NewCancelHostAsDegradedParams. -func (mr *MockHostServiceIfaceMockRecorder) NewCancelHostAsDegradedParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewCancelHostAsDegradedParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCancelHostAsDegradedParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewCancelHostAsDegradedParams), id) } @@ -644,7 +665,7 @@ func (m *MockHostServiceIface) NewCancelHostMaintenanceParams(id string) *Cancel } // NewCancelHostMaintenanceParams indicates an expected call of NewCancelHostMaintenanceParams. -func (mr *MockHostServiceIfaceMockRecorder) NewCancelHostMaintenanceParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewCancelHostMaintenanceParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCancelHostMaintenanceParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewCancelHostMaintenanceParams), id) } @@ -658,7 +679,7 @@ func (m *MockHostServiceIface) NewConfigureHAForHostParams(hostid, provider stri } // NewConfigureHAForHostParams indicates an expected call of NewConfigureHAForHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewConfigureHAForHostParams(hostid, provider interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewConfigureHAForHostParams(hostid, provider any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureHAForHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewConfigureHAForHostParams), hostid, provider) } @@ -672,7 +693,7 @@ func (m *MockHostServiceIface) NewCreateSecondaryStorageSelectorParams(descripti } // NewCreateSecondaryStorageSelectorParams indicates an expected call of NewCreateSecondaryStorageSelectorParams. -func (mr *MockHostServiceIfaceMockRecorder) NewCreateSecondaryStorageSelectorParams(description, heuristicrule, name, hostType, zoneid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewCreateSecondaryStorageSelectorParams(description, heuristicrule, name, hostType, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSecondaryStorageSelectorParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewCreateSecondaryStorageSelectorParams), description, heuristicrule, name, hostType, zoneid) } @@ -686,7 +707,7 @@ func (m *MockHostServiceIface) NewDeclareHostAsDegradedParams(id string) *Declar } // NewDeclareHostAsDegradedParams indicates an expected call of NewDeclareHostAsDegradedParams. -func (mr *MockHostServiceIfaceMockRecorder) NewDeclareHostAsDegradedParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewDeclareHostAsDegradedParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeclareHostAsDegradedParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewDeclareHostAsDegradedParams), id) } @@ -700,7 +721,7 @@ func (m *MockHostServiceIface) NewDedicateHostParams(domainid, hostid string) *D } // NewDedicateHostParams indicates an expected call of NewDedicateHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewDedicateHostParams(domainid, hostid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewDedicateHostParams(domainid, hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicateHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewDedicateHostParams), domainid, hostid) } @@ -714,11 +735,25 @@ func (m *MockHostServiceIface) NewDeleteHostParams(id string) *DeleteHostParams } // NewDeleteHostParams indicates an expected call of NewDeleteHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewDeleteHostParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewDeleteHostParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewDeleteHostParams), id) } +// NewDisableHAForHostParams mocks base method. +func (m *MockHostServiceIface) NewDisableHAForHostParams(hostid string) *DisableHAForHostParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDisableHAForHostParams", hostid) + ret0, _ := ret[0].(*DisableHAForHostParams) + return ret0 +} + +// NewDisableHAForHostParams indicates an expected call of NewDisableHAForHostParams. +func (mr *MockHostServiceIfaceMockRecorder) NewDisableHAForHostParams(hostid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableHAForHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewDisableHAForHostParams), hostid) +} + // NewDisableOutOfBandManagementForHostParams mocks base method. func (m *MockHostServiceIface) NewDisableOutOfBandManagementForHostParams(hostid string) *DisableOutOfBandManagementForHostParams { m.ctrl.T.Helper() @@ -728,7 +763,7 @@ func (m *MockHostServiceIface) NewDisableOutOfBandManagementForHostParams(hostid } // NewDisableOutOfBandManagementForHostParams indicates an expected call of NewDisableOutOfBandManagementForHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewDisableOutOfBandManagementForHostParams(hostid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewDisableOutOfBandManagementForHostParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableOutOfBandManagementForHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewDisableOutOfBandManagementForHostParams), hostid) } @@ -742,7 +777,7 @@ func (m *MockHostServiceIface) NewEnableHAForHostParams(hostid string) *EnableHA } // NewEnableHAForHostParams indicates an expected call of NewEnableHAForHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewEnableHAForHostParams(hostid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewEnableHAForHostParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableHAForHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewEnableHAForHostParams), hostid) } @@ -756,7 +791,7 @@ func (m *MockHostServiceIface) NewEnableOutOfBandManagementForHostParams(hostid } // NewEnableOutOfBandManagementForHostParams indicates an expected call of NewEnableOutOfBandManagementForHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewEnableOutOfBandManagementForHostParams(hostid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewEnableOutOfBandManagementForHostParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableOutOfBandManagementForHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewEnableOutOfBandManagementForHostParams), hostid) } @@ -770,7 +805,7 @@ func (m *MockHostServiceIface) NewFindHostsForMigrationParams(virtualmachineid s } // NewFindHostsForMigrationParams indicates an expected call of NewFindHostsForMigrationParams. -func (mr *MockHostServiceIfaceMockRecorder) NewFindHostsForMigrationParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewFindHostsForMigrationParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewFindHostsForMigrationParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewFindHostsForMigrationParams), virtualmachineid) } @@ -798,7 +833,7 @@ func (m *MockHostServiceIface) NewListHostHAProvidersParams(hypervisor string) * } // NewListHostHAProvidersParams indicates an expected call of NewListHostHAProvidersParams. -func (mr *MockHostServiceIfaceMockRecorder) NewListHostHAProvidersParams(hypervisor interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewListHostHAProvidersParams(hypervisor any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListHostHAProvidersParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewListHostHAProvidersParams), hypervisor) } @@ -868,7 +903,7 @@ func (m *MockHostServiceIface) NewListSecondaryStorageSelectorsParams(zoneid str } // NewListSecondaryStorageSelectorsParams indicates an expected call of NewListSecondaryStorageSelectorsParams. -func (mr *MockHostServiceIfaceMockRecorder) NewListSecondaryStorageSelectorsParams(zoneid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewListSecondaryStorageSelectorsParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSecondaryStorageSelectorsParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewListSecondaryStorageSelectorsParams), zoneid) } @@ -882,7 +917,7 @@ func (m *MockHostServiceIface) NewMigrateSecondaryStorageDataParams(destpools [] } // NewMigrateSecondaryStorageDataParams indicates an expected call of NewMigrateSecondaryStorageDataParams. -func (mr *MockHostServiceIfaceMockRecorder) NewMigrateSecondaryStorageDataParams(destpools, srcpool interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewMigrateSecondaryStorageDataParams(destpools, srcpool any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateSecondaryStorageDataParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewMigrateSecondaryStorageDataParams), destpools, srcpool) } @@ -896,7 +931,7 @@ func (m *MockHostServiceIface) NewPrepareHostForMaintenanceParams(id string) *Pr } // NewPrepareHostForMaintenanceParams indicates an expected call of NewPrepareHostForMaintenanceParams. -func (mr *MockHostServiceIfaceMockRecorder) NewPrepareHostForMaintenanceParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewPrepareHostForMaintenanceParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewPrepareHostForMaintenanceParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewPrepareHostForMaintenanceParams), id) } @@ -910,7 +945,7 @@ func (m *MockHostServiceIface) NewReconnectHostParams(id string) *ReconnectHostP } // NewReconnectHostParams indicates an expected call of NewReconnectHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewReconnectHostParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewReconnectHostParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReconnectHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewReconnectHostParams), id) } @@ -924,7 +959,7 @@ func (m *MockHostServiceIface) NewReleaseDedicatedHostParams(hostid string) *Rel } // NewReleaseDedicatedHostParams indicates an expected call of NewReleaseDedicatedHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewReleaseDedicatedHostParams(hostid interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewReleaseDedicatedHostParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseDedicatedHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewReleaseDedicatedHostParams), hostid) } @@ -938,7 +973,7 @@ func (m *MockHostServiceIface) NewReleaseHostReservationParams(id string) *Relea } // NewReleaseHostReservationParams indicates an expected call of NewReleaseHostReservationParams. -func (mr *MockHostServiceIfaceMockRecorder) NewReleaseHostReservationParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewReleaseHostReservationParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseHostReservationParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewReleaseHostReservationParams), id) } @@ -952,7 +987,7 @@ func (m *MockHostServiceIface) NewRemoveSecondaryStorageSelectorParams(id string } // NewRemoveSecondaryStorageSelectorParams indicates an expected call of NewRemoveSecondaryStorageSelectorParams. -func (mr *MockHostServiceIfaceMockRecorder) NewRemoveSecondaryStorageSelectorParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewRemoveSecondaryStorageSelectorParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveSecondaryStorageSelectorParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewRemoveSecondaryStorageSelectorParams), id) } @@ -966,7 +1001,7 @@ func (m *MockHostServiceIface) NewUpdateHostParams(id string) *UpdateHostParams } // NewUpdateHostParams indicates an expected call of NewUpdateHostParams. -func (mr *MockHostServiceIfaceMockRecorder) NewUpdateHostParams(id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewUpdateHostParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateHostParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewUpdateHostParams), id) } @@ -980,7 +1015,7 @@ func (m *MockHostServiceIface) NewUpdateHostPasswordParams(password, username st } // NewUpdateHostPasswordParams indicates an expected call of NewUpdateHostPasswordParams. -func (mr *MockHostServiceIfaceMockRecorder) NewUpdateHostPasswordParams(password, username interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewUpdateHostPasswordParams(password, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateHostPasswordParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewUpdateHostPasswordParams), password, username) } @@ -994,7 +1029,7 @@ func (m *MockHostServiceIface) NewUpdateSecondaryStorageSelectorParams(heuristic } // NewUpdateSecondaryStorageSelectorParams indicates an expected call of NewUpdateSecondaryStorageSelectorParams. -func (mr *MockHostServiceIfaceMockRecorder) NewUpdateSecondaryStorageSelectorParams(heuristicrule, id interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) NewUpdateSecondaryStorageSelectorParams(heuristicrule, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateSecondaryStorageSelectorParams", reflect.TypeOf((*MockHostServiceIface)(nil).NewUpdateSecondaryStorageSelectorParams), heuristicrule, id) } @@ -1009,7 +1044,7 @@ func (m *MockHostServiceIface) PrepareHostForMaintenance(p *PrepareHostForMainte } // PrepareHostForMaintenance indicates an expected call of PrepareHostForMaintenance. -func (mr *MockHostServiceIfaceMockRecorder) PrepareHostForMaintenance(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) PrepareHostForMaintenance(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PrepareHostForMaintenance", reflect.TypeOf((*MockHostServiceIface)(nil).PrepareHostForMaintenance), p) } @@ -1024,7 +1059,7 @@ func (m *MockHostServiceIface) ReconnectHost(p *ReconnectHostParams) (*Reconnect } // ReconnectHost indicates an expected call of ReconnectHost. -func (mr *MockHostServiceIfaceMockRecorder) ReconnectHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ReconnectHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReconnectHost", reflect.TypeOf((*MockHostServiceIface)(nil).ReconnectHost), p) } @@ -1039,7 +1074,7 @@ func (m *MockHostServiceIface) ReleaseDedicatedHost(p *ReleaseDedicatedHostParam } // ReleaseDedicatedHost indicates an expected call of ReleaseDedicatedHost. -func (mr *MockHostServiceIfaceMockRecorder) ReleaseDedicatedHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ReleaseDedicatedHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseDedicatedHost", reflect.TypeOf((*MockHostServiceIface)(nil).ReleaseDedicatedHost), p) } @@ -1054,7 +1089,7 @@ func (m *MockHostServiceIface) ReleaseHostReservation(p *ReleaseHostReservationP } // ReleaseHostReservation indicates an expected call of ReleaseHostReservation. -func (mr *MockHostServiceIfaceMockRecorder) ReleaseHostReservation(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) ReleaseHostReservation(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseHostReservation", reflect.TypeOf((*MockHostServiceIface)(nil).ReleaseHostReservation), p) } @@ -1069,7 +1104,7 @@ func (m *MockHostServiceIface) RemoveSecondaryStorageSelector(p *RemoveSecondary } // RemoveSecondaryStorageSelector indicates an expected call of RemoveSecondaryStorageSelector. -func (mr *MockHostServiceIfaceMockRecorder) RemoveSecondaryStorageSelector(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) RemoveSecondaryStorageSelector(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveSecondaryStorageSelector", reflect.TypeOf((*MockHostServiceIface)(nil).RemoveSecondaryStorageSelector), p) } @@ -1084,7 +1119,7 @@ func (m *MockHostServiceIface) UpdateHost(p *UpdateHostParams) (*UpdateHostRespo } // UpdateHost indicates an expected call of UpdateHost. -func (mr *MockHostServiceIfaceMockRecorder) UpdateHost(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) UpdateHost(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHost", reflect.TypeOf((*MockHostServiceIface)(nil).UpdateHost), p) } @@ -1099,7 +1134,7 @@ func (m *MockHostServiceIface) UpdateHostPassword(p *UpdateHostPasswordParams) ( } // UpdateHostPassword indicates an expected call of UpdateHostPassword. -func (mr *MockHostServiceIfaceMockRecorder) UpdateHostPassword(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) UpdateHostPassword(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHostPassword", reflect.TypeOf((*MockHostServiceIface)(nil).UpdateHostPassword), p) } @@ -1114,7 +1149,7 @@ func (m *MockHostServiceIface) UpdateSecondaryStorageSelector(p *UpdateSecondary } // UpdateSecondaryStorageSelector indicates an expected call of UpdateSecondaryStorageSelector. -func (mr *MockHostServiceIfaceMockRecorder) UpdateSecondaryStorageSelector(p interface{}) *gomock.Call { +func (mr *MockHostServiceIfaceMockRecorder) UpdateSecondaryStorageSelector(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecondaryStorageSelector", reflect.TypeOf((*MockHostServiceIface)(nil).UpdateSecondaryStorageSelector), p) } diff --git a/cloudstack/HypervisorService_mock.go b/cloudstack/HypervisorService_mock.go index 2ca2c354..50630228 100644 --- a/cloudstack/HypervisorService_mock.go +++ b/cloudstack/HypervisorService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/HypervisorService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/HypervisorService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/HypervisorService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockHypervisorServiceIface is a mock of HypervisorServiceIface interface. type MockHypervisorServiceIface struct { ctrl *gomock.Controller recorder *MockHypervisorServiceIfaceMockRecorder + isgomock struct{} } // MockHypervisorServiceIfaceMockRecorder is the mock recorder for MockHypervisorServiceIface. @@ -55,7 +61,7 @@ func (m *MockHypervisorServiceIface) EXPECT() *MockHypervisorServiceIfaceMockRec // GetHypervisorCapabilityByID mocks base method. func (m *MockHypervisorServiceIface) GetHypervisorCapabilityByID(id string, opts ...OptionFunc) (*HypervisorCapability, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -67,9 +73,9 @@ func (m *MockHypervisorServiceIface) GetHypervisorCapabilityByID(id string, opts } // GetHypervisorCapabilityByID indicates an expected call of GetHypervisorCapabilityByID. -func (mr *MockHypervisorServiceIfaceMockRecorder) GetHypervisorCapabilityByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockHypervisorServiceIfaceMockRecorder) GetHypervisorCapabilityByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHypervisorCapabilityByID", reflect.TypeOf((*MockHypervisorServiceIface)(nil).GetHypervisorCapabilityByID), varargs...) } @@ -83,7 +89,7 @@ func (m *MockHypervisorServiceIface) ListHypervisorCapabilities(p *ListHyperviso } // ListHypervisorCapabilities indicates an expected call of ListHypervisorCapabilities. -func (mr *MockHypervisorServiceIfaceMockRecorder) ListHypervisorCapabilities(p interface{}) *gomock.Call { +func (mr *MockHypervisorServiceIfaceMockRecorder) ListHypervisorCapabilities(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHypervisorCapabilities", reflect.TypeOf((*MockHypervisorServiceIface)(nil).ListHypervisorCapabilities), p) } @@ -98,7 +104,7 @@ func (m *MockHypervisorServiceIface) ListHypervisors(p *ListHypervisorsParams) ( } // ListHypervisors indicates an expected call of ListHypervisors. -func (mr *MockHypervisorServiceIfaceMockRecorder) ListHypervisors(p interface{}) *gomock.Call { +func (mr *MockHypervisorServiceIfaceMockRecorder) ListHypervisors(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHypervisors", reflect.TypeOf((*MockHypervisorServiceIface)(nil).ListHypervisors), p) } @@ -155,7 +161,7 @@ func (m *MockHypervisorServiceIface) UpdateHypervisorCapabilities(p *UpdateHyper } // UpdateHypervisorCapabilities indicates an expected call of UpdateHypervisorCapabilities. -func (mr *MockHypervisorServiceIfaceMockRecorder) UpdateHypervisorCapabilities(p interface{}) *gomock.Call { +func (mr *MockHypervisorServiceIfaceMockRecorder) UpdateHypervisorCapabilities(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHypervisorCapabilities", reflect.TypeOf((*MockHypervisorServiceIface)(nil).UpdateHypervisorCapabilities), p) } diff --git a/cloudstack/IPQuarantineService.go b/cloudstack/IPQuarantineService.go new file mode 100644 index 00000000..ffd27d59 --- /dev/null +++ b/cloudstack/IPQuarantineService.go @@ -0,0 +1,457 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" + "strconv" +) + +type IPQuarantineServiceIface interface { + ListQuarantinedIps(p *ListQuarantinedIpsParams) (*ListQuarantinedIpsResponse, error) + NewListQuarantinedIpsParams() *ListQuarantinedIpsParams + RemoveQuarantinedIp(p *RemoveQuarantinedIpParams) (*RemoveQuarantinedIpResponse, error) + NewRemoveQuarantinedIpParams(removalreason string) *RemoveQuarantinedIpParams + UpdateQuarantinedIp(p *UpdateQuarantinedIpParams) (*UpdateQuarantinedIpResponse, error) + NewUpdateQuarantinedIpParams(enddate string) *UpdateQuarantinedIpParams +} + +type ListQuarantinedIpsParams struct { + p map[string]interface{} +} + +func (p *ListQuarantinedIpsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["showinactive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("showinactive", vv) + } + if v, found := p.p["showremoved"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("showremoved", vv) + } + return u +} + +func (p *ListQuarantinedIpsParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListQuarantinedIpsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListQuarantinedIpsParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListQuarantinedIpsParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListQuarantinedIpsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListQuarantinedIpsParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListQuarantinedIpsParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListQuarantinedIpsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListQuarantinedIpsParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListQuarantinedIpsParams) SetShowinactive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showinactive"] = v +} + +func (p *ListQuarantinedIpsParams) ResetShowinactive() { + if p.p != nil && p.p["showinactive"] != nil { + delete(p.p, "showinactive") + } +} + +func (p *ListQuarantinedIpsParams) GetShowinactive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showinactive"].(bool) + return value, ok +} + +func (p *ListQuarantinedIpsParams) SetShowremoved(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showremoved"] = v +} + +func (p *ListQuarantinedIpsParams) ResetShowremoved() { + if p.p != nil && p.p["showremoved"] != nil { + delete(p.p, "showremoved") + } +} + +func (p *ListQuarantinedIpsParams) GetShowremoved() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showremoved"].(bool) + return value, ok +} + +// You should always use this function to get a new ListQuarantinedIpsParams instance, +// as then you are sure you have configured all required params +func (s *IPQuarantineService) NewListQuarantinedIpsParams() *ListQuarantinedIpsParams { + p := &ListQuarantinedIpsParams{} + p.p = make(map[string]interface{}) + return p +} + +// List public IP addresses in quarantine. +func (s *IPQuarantineService) ListQuarantinedIps(p *ListQuarantinedIpsParams) (*ListQuarantinedIpsResponse, error) { + resp, err := s.cs.newRequest("listQuarantinedIps", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListQuarantinedIpsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListQuarantinedIpsResponse struct { + Count int `json:"count"` + QuarantinedIps []*QuarantinedIp `json:"quarantinedip"` +} + +type QuarantinedIp struct { + Created string `json:"created"` + Enddate string `json:"enddate"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Previousownerid string `json:"previousownerid"` + Previousownername string `json:"previousownername"` + Removalreason string `json:"removalreason"` + Removed string `json:"removed"` + Removeraccountid string `json:"removeraccountid"` +} + +type RemoveQuarantinedIpParams struct { + p map[string]interface{} +} + +func (p *RemoveQuarantinedIpParams) 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["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["removalreason"]; found { + u.Set("removalreason", v.(string)) + } + return u +} + +func (p *RemoveQuarantinedIpParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *RemoveQuarantinedIpParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *RemoveQuarantinedIpParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *RemoveQuarantinedIpParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *RemoveQuarantinedIpParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *RemoveQuarantinedIpParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *RemoveQuarantinedIpParams) SetRemovalreason(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["removalreason"] = v +} + +func (p *RemoveQuarantinedIpParams) ResetRemovalreason() { + if p.p != nil && p.p["removalreason"] != nil { + delete(p.p, "removalreason") + } +} + +func (p *RemoveQuarantinedIpParams) GetRemovalreason() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["removalreason"].(string) + return value, ok +} + +// You should always use this function to get a new RemoveQuarantinedIpParams instance, +// as then you are sure you have configured all required params +func (s *IPQuarantineService) NewRemoveQuarantinedIpParams(removalreason string) *RemoveQuarantinedIpParams { + p := &RemoveQuarantinedIpParams{} + p.p = make(map[string]interface{}) + p.p["removalreason"] = removalreason + return p +} + +// Removes a public IP address from quarantine. Only IPs in active quarantine can be removed. +func (s *IPQuarantineService) RemoveQuarantinedIp(p *RemoveQuarantinedIpParams) (*RemoveQuarantinedIpResponse, error) { + resp, err := s.cs.newRequest("removeQuarantinedIp", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RemoveQuarantinedIpResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type RemoveQuarantinedIpResponse struct { + Created string `json:"created"` + Enddate string `json:"enddate"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Previousownerid string `json:"previousownerid"` + Previousownername string `json:"previousownername"` + Removalreason string `json:"removalreason"` + Removed string `json:"removed"` + Removeraccountid string `json:"removeraccountid"` +} + +type UpdateQuarantinedIpParams struct { + p map[string]interface{} +} + +func (p *UpdateQuarantinedIpParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["enddate"]; found { + u.Set("enddate", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + return u +} + +func (p *UpdateQuarantinedIpParams) SetEnddate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["enddate"] = v +} + +func (p *UpdateQuarantinedIpParams) ResetEnddate() { + if p.p != nil && p.p["enddate"] != nil { + delete(p.p, "enddate") + } +} + +func (p *UpdateQuarantinedIpParams) GetEnddate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["enddate"].(string) + return value, ok +} + +func (p *UpdateQuarantinedIpParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateQuarantinedIpParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateQuarantinedIpParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateQuarantinedIpParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *UpdateQuarantinedIpParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *UpdateQuarantinedIpParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +// You should always use this function to get a new UpdateQuarantinedIpParams instance, +// as then you are sure you have configured all required params +func (s *IPQuarantineService) NewUpdateQuarantinedIpParams(enddate string) *UpdateQuarantinedIpParams { + p := &UpdateQuarantinedIpParams{} + p.p = make(map[string]interface{}) + p.p["enddate"] = enddate + return p +} + +// Updates the quarantine end date for the given public IP address. +func (s *IPQuarantineService) UpdateQuarantinedIp(p *UpdateQuarantinedIpParams) (*UpdateQuarantinedIpResponse, error) { + resp, err := s.cs.newRequest("updateQuarantinedIp", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateQuarantinedIpResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type UpdateQuarantinedIpResponse struct { + Created string `json:"created"` + Enddate string `json:"enddate"` + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Previousownerid string `json:"previousownerid"` + Previousownername string `json:"previousownername"` + Removalreason string `json:"removalreason"` + Removed string `json:"removed"` + Removeraccountid string `json:"removeraccountid"` +} diff --git a/cloudstack/IPQuarantineService_mock.go b/cloudstack/IPQuarantineService_mock.go new file mode 100644 index 00000000..c8b8d318 --- /dev/null +++ b/cloudstack/IPQuarantineService_mock.go @@ -0,0 +1,146 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/IPQuarantineService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/IPQuarantineService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/IPQuarantineService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockIPQuarantineServiceIface is a mock of IPQuarantineServiceIface interface. +type MockIPQuarantineServiceIface struct { + ctrl *gomock.Controller + recorder *MockIPQuarantineServiceIfaceMockRecorder + isgomock struct{} +} + +// MockIPQuarantineServiceIfaceMockRecorder is the mock recorder for MockIPQuarantineServiceIface. +type MockIPQuarantineServiceIfaceMockRecorder struct { + mock *MockIPQuarantineServiceIface +} + +// NewMockIPQuarantineServiceIface creates a new mock instance. +func NewMockIPQuarantineServiceIface(ctrl *gomock.Controller) *MockIPQuarantineServiceIface { + mock := &MockIPQuarantineServiceIface{ctrl: ctrl} + mock.recorder = &MockIPQuarantineServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIPQuarantineServiceIface) EXPECT() *MockIPQuarantineServiceIfaceMockRecorder { + return m.recorder +} + +// ListQuarantinedIps mocks base method. +func (m *MockIPQuarantineServiceIface) ListQuarantinedIps(p *ListQuarantinedIpsParams) (*ListQuarantinedIpsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListQuarantinedIps", p) + ret0, _ := ret[0].(*ListQuarantinedIpsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListQuarantinedIps indicates an expected call of ListQuarantinedIps. +func (mr *MockIPQuarantineServiceIfaceMockRecorder) ListQuarantinedIps(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQuarantinedIps", reflect.TypeOf((*MockIPQuarantineServiceIface)(nil).ListQuarantinedIps), p) +} + +// NewListQuarantinedIpsParams mocks base method. +func (m *MockIPQuarantineServiceIface) NewListQuarantinedIpsParams() *ListQuarantinedIpsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListQuarantinedIpsParams") + ret0, _ := ret[0].(*ListQuarantinedIpsParams) + return ret0 +} + +// NewListQuarantinedIpsParams indicates an expected call of NewListQuarantinedIpsParams. +func (mr *MockIPQuarantineServiceIfaceMockRecorder) NewListQuarantinedIpsParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListQuarantinedIpsParams", reflect.TypeOf((*MockIPQuarantineServiceIface)(nil).NewListQuarantinedIpsParams)) +} + +// NewRemoveQuarantinedIpParams mocks base method. +func (m *MockIPQuarantineServiceIface) NewRemoveQuarantinedIpParams(removalreason string) *RemoveQuarantinedIpParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRemoveQuarantinedIpParams", removalreason) + ret0, _ := ret[0].(*RemoveQuarantinedIpParams) + return ret0 +} + +// NewRemoveQuarantinedIpParams indicates an expected call of NewRemoveQuarantinedIpParams. +func (mr *MockIPQuarantineServiceIfaceMockRecorder) NewRemoveQuarantinedIpParams(removalreason any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveQuarantinedIpParams", reflect.TypeOf((*MockIPQuarantineServiceIface)(nil).NewRemoveQuarantinedIpParams), removalreason) +} + +// NewUpdateQuarantinedIpParams mocks base method. +func (m *MockIPQuarantineServiceIface) NewUpdateQuarantinedIpParams(enddate string) *UpdateQuarantinedIpParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateQuarantinedIpParams", enddate) + ret0, _ := ret[0].(*UpdateQuarantinedIpParams) + return ret0 +} + +// NewUpdateQuarantinedIpParams indicates an expected call of NewUpdateQuarantinedIpParams. +func (mr *MockIPQuarantineServiceIfaceMockRecorder) NewUpdateQuarantinedIpParams(enddate any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateQuarantinedIpParams", reflect.TypeOf((*MockIPQuarantineServiceIface)(nil).NewUpdateQuarantinedIpParams), enddate) +} + +// RemoveQuarantinedIp mocks base method. +func (m *MockIPQuarantineServiceIface) RemoveQuarantinedIp(p *RemoveQuarantinedIpParams) (*RemoveQuarantinedIpResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RemoveQuarantinedIp", p) + ret0, _ := ret[0].(*RemoveQuarantinedIpResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveQuarantinedIp indicates an expected call of RemoveQuarantinedIp. +func (mr *MockIPQuarantineServiceIfaceMockRecorder) RemoveQuarantinedIp(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveQuarantinedIp", reflect.TypeOf((*MockIPQuarantineServiceIface)(nil).RemoveQuarantinedIp), p) +} + +// UpdateQuarantinedIp mocks base method. +func (m *MockIPQuarantineServiceIface) UpdateQuarantinedIp(p *UpdateQuarantinedIpParams) (*UpdateQuarantinedIpResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateQuarantinedIp", p) + ret0, _ := ret[0].(*UpdateQuarantinedIpResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateQuarantinedIp indicates an expected call of UpdateQuarantinedIp. +func (mr *MockIPQuarantineServiceIfaceMockRecorder) UpdateQuarantinedIp(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateQuarantinedIp", reflect.TypeOf((*MockIPQuarantineServiceIface)(nil).UpdateQuarantinedIp), p) +} diff --git a/cloudstack/ISOService.go b/cloudstack/ISOService.go index ac00d453..56b1129e 100644 --- a/cloudstack/ISOService.go +++ b/cloudstack/ISOService.go @@ -38,6 +38,8 @@ type ISOServiceIface interface { NewDetachIsoParams(virtualmachineid string) *DetachIsoParams ExtractIso(p *ExtractIsoParams) (*ExtractIsoResponse, error) NewExtractIsoParams(id string, mode string) *ExtractIsoParams + GetUploadParamsForIso(p *GetUploadParamsForIsoParams) (*GetUploadParamsForIsoResponse, error) + NewGetUploadParamsForIsoParams(format string, name string, zoneid string) *GetUploadParamsForIsoParams ListIsoPermissions(p *ListIsoPermissionsParams) (*ListIsoPermissionsResponse, error) NewListIsoPermissionsParams(id string) *ListIsoPermissionsParams GetIsoPermissionByID(id string, opts ...OptionFunc) (*IsoPermission, int, error) @@ -1142,6 +1144,370 @@ type ExtractIsoResponse struct { Zonename string `json:"zonename"` } +type GetUploadParamsForIsoParams struct { + p map[string]interface{} +} + +func (p *GetUploadParamsForIsoParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["bootable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("bootable", vv) + } + if v, found := p.p["checksum"]; found { + u.Set("checksum", v.(string)) + } + if v, found := p.p["displaytext"]; found { + u.Set("displaytext", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["format"]; found { + u.Set("format", v.(string)) + } + if v, found := p.p["isextractable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isextractable", vv) + } + if v, found := p.p["isfeatured"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isfeatured", vv) + } + if v, found := p.p["ispublic"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("ispublic", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["ostypeid"]; found { + u.Set("ostypeid", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *GetUploadParamsForIsoParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *GetUploadParamsForIsoParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetBootable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bootable"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetBootable() { + if p.p != nil && p.p["bootable"] != nil { + delete(p.p, "bootable") + } +} + +func (p *GetUploadParamsForIsoParams) GetBootable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bootable"].(bool) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetChecksum(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["checksum"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetChecksum() { + if p.p != nil && p.p["checksum"] != nil { + delete(p.p, "checksum") + } +} + +func (p *GetUploadParamsForIsoParams) GetChecksum() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["checksum"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetDisplaytext(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displaytext"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetDisplaytext() { + if p.p != nil && p.p["displaytext"] != nil { + delete(p.p, "displaytext") + } +} + +func (p *GetUploadParamsForIsoParams) GetDisplaytext() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displaytext"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *GetUploadParamsForIsoParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetFormat(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["format"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetFormat() { + if p.p != nil && p.p["format"] != nil { + delete(p.p, "format") + } +} + +func (p *GetUploadParamsForIsoParams) GetFormat() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["format"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetIsextractable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isextractable"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetIsextractable() { + if p.p != nil && p.p["isextractable"] != nil { + delete(p.p, "isextractable") + } +} + +func (p *GetUploadParamsForIsoParams) GetIsextractable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isextractable"].(bool) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetIsfeatured(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isfeatured"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetIsfeatured() { + if p.p != nil && p.p["isfeatured"] != nil { + delete(p.p, "isfeatured") + } +} + +func (p *GetUploadParamsForIsoParams) GetIsfeatured() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isfeatured"].(bool) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetIspublic(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ispublic"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetIspublic() { + if p.p != nil && p.p["ispublic"] != nil { + delete(p.p, "ispublic") + } +} + +func (p *GetUploadParamsForIsoParams) GetIspublic() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ispublic"].(bool) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *GetUploadParamsForIsoParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetOstypeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ostypeid"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetOstypeid() { + if p.p != nil && p.p["ostypeid"] != nil { + delete(p.p, "ostypeid") + } +} + +func (p *GetUploadParamsForIsoParams) GetOstypeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ostypeid"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *GetUploadParamsForIsoParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *GetUploadParamsForIsoParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *GetUploadParamsForIsoParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *GetUploadParamsForIsoParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new GetUploadParamsForIsoParams instance, +// as then you are sure you have configured all required params +func (s *ISOService) NewGetUploadParamsForIsoParams(format string, name string, zoneid string) *GetUploadParamsForIsoParams { + p := &GetUploadParamsForIsoParams{} + p.p = make(map[string]interface{}) + p.p["format"] = format + p.p["name"] = name + p.p["zoneid"] = zoneid + return p +} + +// upload an existing ISO into the CloudStack cloud. +func (s *ISOService) GetUploadParamsForIso(p *GetUploadParamsForIsoParams) (*GetUploadParamsForIsoResponse, error) { + resp, err := s.cs.newRequest("getUploadParamsForIso", p.toURLValues()) + if err != nil { + return nil, err + } + + var r GetUploadParamsForIsoResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type GetUploadParamsForIsoResponse struct { + Expires string `json:"expires"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Metadata string `json:"metadata"` + PostURL string `json:"postURL"` + Signature string `json:"signature"` +} + type ListIsoPermissionsParams struct { p map[string]interface{} } diff --git a/cloudstack/ISOService_mock.go b/cloudstack/ISOService_mock.go index 1d0b388a..d52f5180 100644 --- a/cloudstack/ISOService_mock.go +++ b/cloudstack/ISOService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ISOService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ISOService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ISOService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockISOServiceIface is a mock of ISOServiceIface interface. type MockISOServiceIface struct { ctrl *gomock.Controller recorder *MockISOServiceIfaceMockRecorder + isgomock struct{} } // MockISOServiceIfaceMockRecorder is the mock recorder for MockISOServiceIface. @@ -62,7 +68,7 @@ func (m *MockISOServiceIface) AttachIso(p *AttachIsoParams) (*AttachIsoResponse, } // AttachIso indicates an expected call of AttachIso. -func (mr *MockISOServiceIfaceMockRecorder) AttachIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) AttachIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttachIso", reflect.TypeOf((*MockISOServiceIface)(nil).AttachIso), p) } @@ -77,7 +83,7 @@ func (m *MockISOServiceIface) CopyIso(p *CopyIsoParams) (*CopyIsoResponse, error } // CopyIso indicates an expected call of CopyIso. -func (mr *MockISOServiceIfaceMockRecorder) CopyIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) CopyIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyIso", reflect.TypeOf((*MockISOServiceIface)(nil).CopyIso), p) } @@ -92,7 +98,7 @@ func (m *MockISOServiceIface) DeleteIso(p *DeleteIsoParams) (*DeleteIsoResponse, } // DeleteIso indicates an expected call of DeleteIso. -func (mr *MockISOServiceIfaceMockRecorder) DeleteIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) DeleteIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteIso", reflect.TypeOf((*MockISOServiceIface)(nil).DeleteIso), p) } @@ -107,7 +113,7 @@ func (m *MockISOServiceIface) DetachIso(p *DetachIsoParams) (*DetachIsoResponse, } // DetachIso indicates an expected call of DetachIso. -func (mr *MockISOServiceIfaceMockRecorder) DetachIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) DetachIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetachIso", reflect.TypeOf((*MockISOServiceIface)(nil).DetachIso), p) } @@ -122,7 +128,7 @@ func (m *MockISOServiceIface) ExtractIso(p *ExtractIsoParams) (*ExtractIsoRespon } // ExtractIso indicates an expected call of ExtractIso. -func (mr *MockISOServiceIfaceMockRecorder) ExtractIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) ExtractIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExtractIso", reflect.TypeOf((*MockISOServiceIface)(nil).ExtractIso), p) } @@ -130,7 +136,7 @@ func (mr *MockISOServiceIfaceMockRecorder) ExtractIso(p interface{}) *gomock.Cal // GetIsoByID mocks base method. func (m *MockISOServiceIface) GetIsoByID(id string, opts ...OptionFunc) (*Iso, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -142,16 +148,16 @@ func (m *MockISOServiceIface) GetIsoByID(id string, opts ...OptionFunc) (*Iso, i } // GetIsoByID indicates an expected call of GetIsoByID. -func (mr *MockISOServiceIfaceMockRecorder) GetIsoByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) GetIsoByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIsoByID", reflect.TypeOf((*MockISOServiceIface)(nil).GetIsoByID), varargs...) } // GetIsoByName mocks base method. func (m *MockISOServiceIface) GetIsoByName(name, isofilter, zoneid string, opts ...OptionFunc) (*Iso, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name, isofilter, zoneid} + varargs := []any{name, isofilter, zoneid} for _, a := range opts { varargs = append(varargs, a) } @@ -163,16 +169,16 @@ func (m *MockISOServiceIface) GetIsoByName(name, isofilter, zoneid string, opts } // GetIsoByName indicates an expected call of GetIsoByName. -func (mr *MockISOServiceIfaceMockRecorder) GetIsoByName(name, isofilter, zoneid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) GetIsoByName(name, isofilter, zoneid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name, isofilter, zoneid}, opts...) + varargs := append([]any{name, isofilter, zoneid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIsoByName", reflect.TypeOf((*MockISOServiceIface)(nil).GetIsoByName), varargs...) } // GetIsoID mocks base method. func (m *MockISOServiceIface) GetIsoID(name, isofilter, zoneid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name, isofilter, zoneid} + varargs := []any{name, isofilter, zoneid} for _, a := range opts { varargs = append(varargs, a) } @@ -184,16 +190,16 @@ func (m *MockISOServiceIface) GetIsoID(name, isofilter, zoneid string, opts ...O } // GetIsoID indicates an expected call of GetIsoID. -func (mr *MockISOServiceIfaceMockRecorder) GetIsoID(name, isofilter, zoneid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) GetIsoID(name, isofilter, zoneid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name, isofilter, zoneid}, opts...) + varargs := append([]any{name, isofilter, zoneid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIsoID", reflect.TypeOf((*MockISOServiceIface)(nil).GetIsoID), varargs...) } // GetIsoPermissionByID mocks base method. func (m *MockISOServiceIface) GetIsoPermissionByID(id string, opts ...OptionFunc) (*IsoPermission, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -205,12 +211,27 @@ func (m *MockISOServiceIface) GetIsoPermissionByID(id string, opts ...OptionFunc } // GetIsoPermissionByID indicates an expected call of GetIsoPermissionByID. -func (mr *MockISOServiceIfaceMockRecorder) GetIsoPermissionByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) GetIsoPermissionByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIsoPermissionByID", reflect.TypeOf((*MockISOServiceIface)(nil).GetIsoPermissionByID), varargs...) } +// GetUploadParamsForIso mocks base method. +func (m *MockISOServiceIface) GetUploadParamsForIso(p *GetUploadParamsForIsoParams) (*GetUploadParamsForIsoResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUploadParamsForIso", p) + ret0, _ := ret[0].(*GetUploadParamsForIsoResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUploadParamsForIso indicates an expected call of GetUploadParamsForIso. +func (mr *MockISOServiceIfaceMockRecorder) GetUploadParamsForIso(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadParamsForIso", reflect.TypeOf((*MockISOServiceIface)(nil).GetUploadParamsForIso), p) +} + // ListIsoPermissions mocks base method. func (m *MockISOServiceIface) ListIsoPermissions(p *ListIsoPermissionsParams) (*ListIsoPermissionsResponse, error) { m.ctrl.T.Helper() @@ -221,7 +242,7 @@ func (m *MockISOServiceIface) ListIsoPermissions(p *ListIsoPermissionsParams) (* } // ListIsoPermissions indicates an expected call of ListIsoPermissions. -func (mr *MockISOServiceIfaceMockRecorder) ListIsoPermissions(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) ListIsoPermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIsoPermissions", reflect.TypeOf((*MockISOServiceIface)(nil).ListIsoPermissions), p) } @@ -236,7 +257,7 @@ func (m *MockISOServiceIface) ListIsos(p *ListIsosParams) (*ListIsosResponse, er } // ListIsos indicates an expected call of ListIsos. -func (mr *MockISOServiceIfaceMockRecorder) ListIsos(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) ListIsos(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIsos", reflect.TypeOf((*MockISOServiceIface)(nil).ListIsos), p) } @@ -250,7 +271,7 @@ func (m *MockISOServiceIface) NewAttachIsoParams(id, virtualmachineid string) *A } // NewAttachIsoParams indicates an expected call of NewAttachIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewAttachIsoParams(id, virtualmachineid interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewAttachIsoParams(id, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAttachIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewAttachIsoParams), id, virtualmachineid) } @@ -264,7 +285,7 @@ func (m *MockISOServiceIface) NewCopyIsoParams(id string) *CopyIsoParams { } // NewCopyIsoParams indicates an expected call of NewCopyIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewCopyIsoParams(id interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewCopyIsoParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCopyIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewCopyIsoParams), id) } @@ -278,7 +299,7 @@ func (m *MockISOServiceIface) NewDeleteIsoParams(id string) *DeleteIsoParams { } // NewDeleteIsoParams indicates an expected call of NewDeleteIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewDeleteIsoParams(id interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewDeleteIsoParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewDeleteIsoParams), id) } @@ -292,7 +313,7 @@ func (m *MockISOServiceIface) NewDetachIsoParams(virtualmachineid string) *Detac } // NewDetachIsoParams indicates an expected call of NewDetachIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewDetachIsoParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewDetachIsoParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDetachIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewDetachIsoParams), virtualmachineid) } @@ -306,11 +327,25 @@ func (m *MockISOServiceIface) NewExtractIsoParams(id, mode string) *ExtractIsoPa } // NewExtractIsoParams indicates an expected call of NewExtractIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewExtractIsoParams(id, mode interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewExtractIsoParams(id, mode any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExtractIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewExtractIsoParams), id, mode) } +// NewGetUploadParamsForIsoParams mocks base method. +func (m *MockISOServiceIface) NewGetUploadParamsForIsoParams(format, name, zoneid string) *GetUploadParamsForIsoParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewGetUploadParamsForIsoParams", format, name, zoneid) + ret0, _ := ret[0].(*GetUploadParamsForIsoParams) + return ret0 +} + +// NewGetUploadParamsForIsoParams indicates an expected call of NewGetUploadParamsForIsoParams. +func (mr *MockISOServiceIfaceMockRecorder) NewGetUploadParamsForIsoParams(format, name, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetUploadParamsForIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewGetUploadParamsForIsoParams), format, name, zoneid) +} + // NewListIsoPermissionsParams mocks base method. func (m *MockISOServiceIface) NewListIsoPermissionsParams(id string) *ListIsoPermissionsParams { m.ctrl.T.Helper() @@ -320,7 +355,7 @@ func (m *MockISOServiceIface) NewListIsoPermissionsParams(id string) *ListIsoPer } // NewListIsoPermissionsParams indicates an expected call of NewListIsoPermissionsParams. -func (mr *MockISOServiceIfaceMockRecorder) NewListIsoPermissionsParams(id interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewListIsoPermissionsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListIsoPermissionsParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewListIsoPermissionsParams), id) } @@ -348,7 +383,7 @@ func (m *MockISOServiceIface) NewRegisterIsoParams(displaytext, name, url, zonei } // NewRegisterIsoParams indicates an expected call of NewRegisterIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewRegisterIsoParams(displaytext, name, url, zoneid interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewRegisterIsoParams(displaytext, name, url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewRegisterIsoParams), displaytext, name, url, zoneid) } @@ -362,7 +397,7 @@ func (m *MockISOServiceIface) NewUpdateIsoParams(id string) *UpdateIsoParams { } // NewUpdateIsoParams indicates an expected call of NewUpdateIsoParams. -func (mr *MockISOServiceIfaceMockRecorder) NewUpdateIsoParams(id interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewUpdateIsoParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateIsoParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewUpdateIsoParams), id) } @@ -376,7 +411,7 @@ func (m *MockISOServiceIface) NewUpdateIsoPermissionsParams(id string) *UpdateIs } // NewUpdateIsoPermissionsParams indicates an expected call of NewUpdateIsoPermissionsParams. -func (mr *MockISOServiceIfaceMockRecorder) NewUpdateIsoPermissionsParams(id interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) NewUpdateIsoPermissionsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateIsoPermissionsParams", reflect.TypeOf((*MockISOServiceIface)(nil).NewUpdateIsoPermissionsParams), id) } @@ -391,7 +426,7 @@ func (m *MockISOServiceIface) RegisterIso(p *RegisterIsoParams) (*RegisterIsoRes } // RegisterIso indicates an expected call of RegisterIso. -func (mr *MockISOServiceIfaceMockRecorder) RegisterIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) RegisterIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterIso", reflect.TypeOf((*MockISOServiceIface)(nil).RegisterIso), p) } @@ -406,7 +441,7 @@ func (m *MockISOServiceIface) UpdateIso(p *UpdateIsoParams) (*UpdateIsoResponse, } // UpdateIso indicates an expected call of UpdateIso. -func (mr *MockISOServiceIfaceMockRecorder) UpdateIso(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) UpdateIso(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIso", reflect.TypeOf((*MockISOServiceIface)(nil).UpdateIso), p) } @@ -421,7 +456,7 @@ func (m *MockISOServiceIface) UpdateIsoPermissions(p *UpdateIsoPermissionsParams } // UpdateIsoPermissions indicates an expected call of UpdateIsoPermissions. -func (mr *MockISOServiceIfaceMockRecorder) UpdateIsoPermissions(p interface{}) *gomock.Call { +func (mr *MockISOServiceIfaceMockRecorder) UpdateIsoPermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIsoPermissions", reflect.TypeOf((*MockISOServiceIface)(nil).UpdateIsoPermissions), p) } diff --git a/cloudstack/ImageStoreService.go b/cloudstack/ImageStoreService.go index cacdedb2..ee7a2b44 100644 --- a/cloudstack/ImageStoreService.go +++ b/cloudstack/ImageStoreService.go @@ -48,13 +48,15 @@ type ImageStoreServiceIface interface { GetSecondaryStagingStoreID(name string, opts ...OptionFunc) (string, int, error) GetSecondaryStagingStoreByName(name string, opts ...OptionFunc) (*SecondaryStagingStore, int, error) GetSecondaryStagingStoreByID(id string, opts ...OptionFunc) (*SecondaryStagingStore, int, error) + MigrateResourceToAnotherSecondaryStorage(p *MigrateResourceToAnotherSecondaryStorageParams) (*MigrateResourceToAnotherSecondaryStorageResponse, error) + NewMigrateResourceToAnotherSecondaryStorageParams(destpool string, srcpool string) *MigrateResourceToAnotherSecondaryStorageParams UpdateCloudToUseObjectStore(p *UpdateCloudToUseObjectStoreParams) (*UpdateCloudToUseObjectStoreResponse, error) NewUpdateCloudToUseObjectStoreParams(provider string) *UpdateCloudToUseObjectStoreParams ListImageStoreObjects(p *ListImageStoreObjectsParams) (*ListImageStoreObjectsResponse, error) NewListImageStoreObjectsParams(id string) *ListImageStoreObjectsParams GetImageStoreObjectByID(id string, opts ...OptionFunc) (*ImageStoreObject, int, error) UpdateImageStore(p *UpdateImageStoreParams) (*UpdateImageStoreResponse, error) - NewUpdateImageStoreParams(id string, readonly bool) *UpdateImageStoreParams + NewUpdateImageStoreParams(id string) *UpdateImageStoreParams DownloadImageStoreObject(p *DownloadImageStoreObjectParams) (*DownloadImageStoreObjectResponse, error) NewDownloadImageStoreObjectParams(id string) *DownloadImageStoreObjectParams } @@ -1624,6 +1626,169 @@ type SecondaryStagingStore struct { Zonename string `json:"zonename"` } +type MigrateResourceToAnotherSecondaryStorageParams struct { + p map[string]interface{} +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["destpool"]; found { + u.Set("destpool", v.(string)) + } + if v, found := p.p["snapshots"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("snapshots", vv) + } + if v, found := p.p["srcpool"]; found { + u.Set("srcpool", v.(string)) + } + if v, found := p.p["templates"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("templates", vv) + } + return u +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) SetDestpool(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["destpool"] = v +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) ResetDestpool() { + if p.p != nil && p.p["destpool"] != nil { + delete(p.p, "destpool") + } +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) GetDestpool() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["destpool"].(string) + return value, ok +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) SetSnapshots(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["snapshots"] = v +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) ResetSnapshots() { + if p.p != nil && p.p["snapshots"] != nil { + delete(p.p, "snapshots") + } +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) GetSnapshots() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["snapshots"].([]string) + return value, ok +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) SetSrcpool(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["srcpool"] = v +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) ResetSrcpool() { + if p.p != nil && p.p["srcpool"] != nil { + delete(p.p, "srcpool") + } +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) GetSrcpool() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["srcpool"].(string) + return value, ok +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) SetTemplates(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templates"] = v +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) ResetTemplates() { + if p.p != nil && p.p["templates"] != nil { + delete(p.p, "templates") + } +} + +func (p *MigrateResourceToAnotherSecondaryStorageParams) GetTemplates() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templates"].([]string) + return value, ok +} + +// You should always use this function to get a new MigrateResourceToAnotherSecondaryStorageParams instance, +// as then you are sure you have configured all required params +func (s *ImageStoreService) NewMigrateResourceToAnotherSecondaryStorageParams(destpool string, srcpool string) *MigrateResourceToAnotherSecondaryStorageParams { + p := &MigrateResourceToAnotherSecondaryStorageParams{} + p.p = make(map[string]interface{}) + p.p["destpool"] = destpool + p.p["srcpool"] = srcpool + return p +} + +// migrates resources from one secondary storage to destination image store +func (s *ImageStoreService) MigrateResourceToAnotherSecondaryStorage(p *MigrateResourceToAnotherSecondaryStorageParams) (*MigrateResourceToAnotherSecondaryStorageResponse, error) { + resp, err := s.cs.newRequest("migrateResourceToAnotherSecondaryStorage", p.toURLValues()) + if err != nil { + return nil, err + } + + var r MigrateResourceToAnotherSecondaryStorageResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type MigrateResourceToAnotherSecondaryStorageResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Message string `json:"message"` + Migrationtype string `json:"migrationtype"` + Success bool `json:"success"` +} + type UpdateCloudToUseObjectStoreParams struct { p map[string]interface{} } @@ -1974,16 +2139,19 @@ type ListImageStoreObjectsResponse struct { } type ImageStoreObject struct { - Format string `json:"format"` - Isdirectory bool `json:"isdirectory"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Lastupdated string `json:"lastupdated"` - Name string `json:"name"` - Size int64 `json:"size"` - Snapshotid string `json:"snapshotid"` - Templateid string `json:"templateid"` - Volumeid string `json:"volumeid"` + Format string `json:"format"` + Isdirectory bool `json:"isdirectory"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lastupdated string `json:"lastupdated"` + Name string `json:"name"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + Snapshotname string `json:"snapshotname"` + Templateid string `json:"templateid"` + Templatename string `json:"templatename"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` } type UpdateImageStoreParams struct { @@ -1995,9 +2163,16 @@ func (p *UpdateImageStoreParams) toURLValues() url.Values { if p.p == nil { return u } + if v, found := p.p["capacitybytes"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("capacitybytes", vv) + } 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["readonly"]; found { vv := strconv.FormatBool(v.(bool)) u.Set("readonly", vv) @@ -2005,6 +2180,27 @@ func (p *UpdateImageStoreParams) toURLValues() url.Values { return u } +func (p *UpdateImageStoreParams) SetCapacitybytes(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["capacitybytes"] = v +} + +func (p *UpdateImageStoreParams) ResetCapacitybytes() { + if p.p != nil && p.p["capacitybytes"] != nil { + delete(p.p, "capacitybytes") + } +} + +func (p *UpdateImageStoreParams) GetCapacitybytes() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["capacitybytes"].(int64) + return value, ok +} + func (p *UpdateImageStoreParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) @@ -2026,6 +2222,27 @@ func (p *UpdateImageStoreParams) GetId() (string, bool) { return value, ok } +func (p *UpdateImageStoreParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *UpdateImageStoreParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *UpdateImageStoreParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + func (p *UpdateImageStoreParams) SetReadonly(v bool) { if p.p == nil { p.p = make(map[string]interface{}) @@ -2049,11 +2266,10 @@ func (p *UpdateImageStoreParams) GetReadonly() (bool, bool) { // You should always use this function to get a new UpdateImageStoreParams instance, // as then you are sure you have configured all required params -func (s *ImageStoreService) NewUpdateImageStoreParams(id string, readonly bool) *UpdateImageStoreParams { +func (s *ImageStoreService) NewUpdateImageStoreParams(id string) *UpdateImageStoreParams { p := &UpdateImageStoreParams{} p.p = make(map[string]interface{}) p.p["id"] = id - p.p["readonly"] = readonly return p } diff --git a/cloudstack/ImageStoreService_mock.go b/cloudstack/ImageStoreService_mock.go index 29dc1b4d..4dc4a07f 100644 --- a/cloudstack/ImageStoreService_mock.go +++ b/cloudstack/ImageStoreService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ImageStoreService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ImageStoreService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ImageStoreService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockImageStoreServiceIface is a mock of ImageStoreServiceIface interface. type MockImageStoreServiceIface struct { ctrl *gomock.Controller recorder *MockImageStoreServiceIfaceMockRecorder + isgomock struct{} } // MockImageStoreServiceIfaceMockRecorder is the mock recorder for MockImageStoreServiceIface. @@ -62,7 +68,7 @@ func (m *MockImageStoreServiceIface) AddImageStore(p *AddImageStoreParams) (*Add } // AddImageStore indicates an expected call of AddImageStore. -func (mr *MockImageStoreServiceIfaceMockRecorder) AddImageStore(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) AddImageStore(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddImageStore", reflect.TypeOf((*MockImageStoreServiceIface)(nil).AddImageStore), p) } @@ -77,7 +83,7 @@ func (m *MockImageStoreServiceIface) AddImageStoreS3(p *AddImageStoreS3Params) ( } // AddImageStoreS3 indicates an expected call of AddImageStoreS3. -func (mr *MockImageStoreServiceIfaceMockRecorder) AddImageStoreS3(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) AddImageStoreS3(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddImageStoreS3", reflect.TypeOf((*MockImageStoreServiceIface)(nil).AddImageStoreS3), p) } @@ -92,7 +98,7 @@ func (m *MockImageStoreServiceIface) CreateSecondaryStagingStore(p *CreateSecond } // CreateSecondaryStagingStore indicates an expected call of CreateSecondaryStagingStore. -func (mr *MockImageStoreServiceIfaceMockRecorder) CreateSecondaryStagingStore(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) CreateSecondaryStagingStore(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecondaryStagingStore", reflect.TypeOf((*MockImageStoreServiceIface)(nil).CreateSecondaryStagingStore), p) } @@ -107,7 +113,7 @@ func (m *MockImageStoreServiceIface) DeleteImageStore(p *DeleteImageStoreParams) } // DeleteImageStore indicates an expected call of DeleteImageStore. -func (mr *MockImageStoreServiceIfaceMockRecorder) DeleteImageStore(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) DeleteImageStore(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageStore", reflect.TypeOf((*MockImageStoreServiceIface)(nil).DeleteImageStore), p) } @@ -122,7 +128,7 @@ func (m *MockImageStoreServiceIface) DeleteSecondaryStagingStore(p *DeleteSecond } // DeleteSecondaryStagingStore indicates an expected call of DeleteSecondaryStagingStore. -func (mr *MockImageStoreServiceIfaceMockRecorder) DeleteSecondaryStagingStore(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) DeleteSecondaryStagingStore(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecondaryStagingStore", reflect.TypeOf((*MockImageStoreServiceIface)(nil).DeleteSecondaryStagingStore), p) } @@ -137,7 +143,7 @@ func (m *MockImageStoreServiceIface) DownloadImageStoreObject(p *DownloadImageSt } // DownloadImageStoreObject indicates an expected call of DownloadImageStoreObject. -func (mr *MockImageStoreServiceIfaceMockRecorder) DownloadImageStoreObject(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) DownloadImageStoreObject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DownloadImageStoreObject", reflect.TypeOf((*MockImageStoreServiceIface)(nil).DownloadImageStoreObject), p) } @@ -145,7 +151,7 @@ func (mr *MockImageStoreServiceIfaceMockRecorder) DownloadImageStoreObject(p int // GetImageStoreByID mocks base method. func (m *MockImageStoreServiceIface) GetImageStoreByID(id string, opts ...OptionFunc) (*ImageStore, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -157,16 +163,16 @@ func (m *MockImageStoreServiceIface) GetImageStoreByID(id string, opts ...Option } // GetImageStoreByID indicates an expected call of GetImageStoreByID. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageStoreByID", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetImageStoreByID), varargs...) } // GetImageStoreByName mocks base method. func (m *MockImageStoreServiceIface) GetImageStoreByName(name string, opts ...OptionFunc) (*ImageStore, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -178,16 +184,16 @@ func (m *MockImageStoreServiceIface) GetImageStoreByName(name string, opts ...Op } // GetImageStoreByName indicates an expected call of GetImageStoreByName. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageStoreByName", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetImageStoreByName), varargs...) } // GetImageStoreID mocks base method. func (m *MockImageStoreServiceIface) GetImageStoreID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -199,16 +205,16 @@ func (m *MockImageStoreServiceIface) GetImageStoreID(name string, opts ...Option } // GetImageStoreID indicates an expected call of GetImageStoreID. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageStoreID", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetImageStoreID), varargs...) } // GetImageStoreObjectByID mocks base method. func (m *MockImageStoreServiceIface) GetImageStoreObjectByID(id string, opts ...OptionFunc) (*ImageStoreObject, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -220,16 +226,16 @@ func (m *MockImageStoreServiceIface) GetImageStoreObjectByID(id string, opts ... } // GetImageStoreObjectByID indicates an expected call of GetImageStoreObjectByID. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreObjectByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetImageStoreObjectByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageStoreObjectByID", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetImageStoreObjectByID), varargs...) } // GetSecondaryStagingStoreByID mocks base method. func (m *MockImageStoreServiceIface) GetSecondaryStagingStoreByID(id string, opts ...OptionFunc) (*SecondaryStagingStore, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -241,16 +247,16 @@ func (m *MockImageStoreServiceIface) GetSecondaryStagingStoreByID(id string, opt } // GetSecondaryStagingStoreByID indicates an expected call of GetSecondaryStagingStoreByID. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetSecondaryStagingStoreByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetSecondaryStagingStoreByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondaryStagingStoreByID", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetSecondaryStagingStoreByID), varargs...) } // GetSecondaryStagingStoreByName mocks base method. func (m *MockImageStoreServiceIface) GetSecondaryStagingStoreByName(name string, opts ...OptionFunc) (*SecondaryStagingStore, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -262,16 +268,16 @@ func (m *MockImageStoreServiceIface) GetSecondaryStagingStoreByName(name string, } // GetSecondaryStagingStoreByName indicates an expected call of GetSecondaryStagingStoreByName. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetSecondaryStagingStoreByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetSecondaryStagingStoreByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondaryStagingStoreByName", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetSecondaryStagingStoreByName), varargs...) } // GetSecondaryStagingStoreID mocks base method. func (m *MockImageStoreServiceIface) GetSecondaryStagingStoreID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -283,9 +289,9 @@ func (m *MockImageStoreServiceIface) GetSecondaryStagingStoreID(name string, opt } // GetSecondaryStagingStoreID indicates an expected call of GetSecondaryStagingStoreID. -func (mr *MockImageStoreServiceIfaceMockRecorder) GetSecondaryStagingStoreID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) GetSecondaryStagingStoreID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondaryStagingStoreID", reflect.TypeOf((*MockImageStoreServiceIface)(nil).GetSecondaryStagingStoreID), varargs...) } @@ -299,7 +305,7 @@ func (m *MockImageStoreServiceIface) ListImageStoreObjects(p *ListImageStoreObje } // ListImageStoreObjects indicates an expected call of ListImageStoreObjects. -func (mr *MockImageStoreServiceIfaceMockRecorder) ListImageStoreObjects(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) ListImageStoreObjects(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListImageStoreObjects", reflect.TypeOf((*MockImageStoreServiceIface)(nil).ListImageStoreObjects), p) } @@ -314,7 +320,7 @@ func (m *MockImageStoreServiceIface) ListImageStores(p *ListImageStoresParams) ( } // ListImageStores indicates an expected call of ListImageStores. -func (mr *MockImageStoreServiceIfaceMockRecorder) ListImageStores(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) ListImageStores(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListImageStores", reflect.TypeOf((*MockImageStoreServiceIface)(nil).ListImageStores), p) } @@ -329,11 +335,26 @@ func (m *MockImageStoreServiceIface) ListSecondaryStagingStores(p *ListSecondary } // ListSecondaryStagingStores indicates an expected call of ListSecondaryStagingStores. -func (mr *MockImageStoreServiceIfaceMockRecorder) ListSecondaryStagingStores(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) ListSecondaryStagingStores(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecondaryStagingStores", reflect.TypeOf((*MockImageStoreServiceIface)(nil).ListSecondaryStagingStores), p) } +// MigrateResourceToAnotherSecondaryStorage mocks base method. +func (m *MockImageStoreServiceIface) MigrateResourceToAnotherSecondaryStorage(p *MigrateResourceToAnotherSecondaryStorageParams) (*MigrateResourceToAnotherSecondaryStorageResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MigrateResourceToAnotherSecondaryStorage", p) + ret0, _ := ret[0].(*MigrateResourceToAnotherSecondaryStorageResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MigrateResourceToAnotherSecondaryStorage indicates an expected call of MigrateResourceToAnotherSecondaryStorage. +func (mr *MockImageStoreServiceIfaceMockRecorder) MigrateResourceToAnotherSecondaryStorage(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateResourceToAnotherSecondaryStorage", reflect.TypeOf((*MockImageStoreServiceIface)(nil).MigrateResourceToAnotherSecondaryStorage), p) +} + // NewAddImageStoreParams mocks base method. func (m *MockImageStoreServiceIface) NewAddImageStoreParams(provider string) *AddImageStoreParams { m.ctrl.T.Helper() @@ -343,7 +364,7 @@ func (m *MockImageStoreServiceIface) NewAddImageStoreParams(provider string) *Ad } // NewAddImageStoreParams indicates an expected call of NewAddImageStoreParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewAddImageStoreParams(provider interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewAddImageStoreParams(provider any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddImageStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewAddImageStoreParams), provider) } @@ -357,7 +378,7 @@ func (m *MockImageStoreServiceIface) NewAddImageStoreS3Params(accesskey, bucket, } // NewAddImageStoreS3Params indicates an expected call of NewAddImageStoreS3Params. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewAddImageStoreS3Params(accesskey, bucket, endpoint, secretkey interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewAddImageStoreS3Params(accesskey, bucket, endpoint, secretkey any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddImageStoreS3Params", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewAddImageStoreS3Params), accesskey, bucket, endpoint, secretkey) } @@ -371,7 +392,7 @@ func (m *MockImageStoreServiceIface) NewCreateSecondaryStagingStoreParams(url st } // NewCreateSecondaryStagingStoreParams indicates an expected call of NewCreateSecondaryStagingStoreParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewCreateSecondaryStagingStoreParams(url interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewCreateSecondaryStagingStoreParams(url any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSecondaryStagingStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewCreateSecondaryStagingStoreParams), url) } @@ -385,7 +406,7 @@ func (m *MockImageStoreServiceIface) NewDeleteImageStoreParams(id string) *Delet } // NewDeleteImageStoreParams indicates an expected call of NewDeleteImageStoreParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewDeleteImageStoreParams(id interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewDeleteImageStoreParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteImageStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewDeleteImageStoreParams), id) } @@ -399,7 +420,7 @@ func (m *MockImageStoreServiceIface) NewDeleteSecondaryStagingStoreParams(id str } // NewDeleteSecondaryStagingStoreParams indicates an expected call of NewDeleteSecondaryStagingStoreParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewDeleteSecondaryStagingStoreParams(id interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewDeleteSecondaryStagingStoreParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteSecondaryStagingStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewDeleteSecondaryStagingStoreParams), id) } @@ -413,7 +434,7 @@ func (m *MockImageStoreServiceIface) NewDownloadImageStoreObjectParams(id string } // NewDownloadImageStoreObjectParams indicates an expected call of NewDownloadImageStoreObjectParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewDownloadImageStoreObjectParams(id interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewDownloadImageStoreObjectParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDownloadImageStoreObjectParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewDownloadImageStoreObjectParams), id) } @@ -427,7 +448,7 @@ func (m *MockImageStoreServiceIface) NewListImageStoreObjectsParams(id string) * } // NewListImageStoreObjectsParams indicates an expected call of NewListImageStoreObjectsParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewListImageStoreObjectsParams(id interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewListImageStoreObjectsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListImageStoreObjectsParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewListImageStoreObjectsParams), id) } @@ -460,6 +481,20 @@ func (mr *MockImageStoreServiceIfaceMockRecorder) NewListSecondaryStagingStoresP return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSecondaryStagingStoresParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewListSecondaryStagingStoresParams)) } +// NewMigrateResourceToAnotherSecondaryStorageParams mocks base method. +func (m *MockImageStoreServiceIface) NewMigrateResourceToAnotherSecondaryStorageParams(destpool, srcpool string) *MigrateResourceToAnotherSecondaryStorageParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewMigrateResourceToAnotherSecondaryStorageParams", destpool, srcpool) + ret0, _ := ret[0].(*MigrateResourceToAnotherSecondaryStorageParams) + return ret0 +} + +// NewMigrateResourceToAnotherSecondaryStorageParams indicates an expected call of NewMigrateResourceToAnotherSecondaryStorageParams. +func (mr *MockImageStoreServiceIfaceMockRecorder) NewMigrateResourceToAnotherSecondaryStorageParams(destpool, srcpool any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateResourceToAnotherSecondaryStorageParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewMigrateResourceToAnotherSecondaryStorageParams), destpool, srcpool) +} + // NewUpdateCloudToUseObjectStoreParams mocks base method. func (m *MockImageStoreServiceIface) NewUpdateCloudToUseObjectStoreParams(provider string) *UpdateCloudToUseObjectStoreParams { m.ctrl.T.Helper() @@ -469,23 +504,23 @@ func (m *MockImageStoreServiceIface) NewUpdateCloudToUseObjectStoreParams(provid } // NewUpdateCloudToUseObjectStoreParams indicates an expected call of NewUpdateCloudToUseObjectStoreParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewUpdateCloudToUseObjectStoreParams(provider interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewUpdateCloudToUseObjectStoreParams(provider any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateCloudToUseObjectStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewUpdateCloudToUseObjectStoreParams), provider) } // NewUpdateImageStoreParams mocks base method. -func (m *MockImageStoreServiceIface) NewUpdateImageStoreParams(id string, readonly bool) *UpdateImageStoreParams { +func (m *MockImageStoreServiceIface) NewUpdateImageStoreParams(id string) *UpdateImageStoreParams { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewUpdateImageStoreParams", id, readonly) + ret := m.ctrl.Call(m, "NewUpdateImageStoreParams", id) ret0, _ := ret[0].(*UpdateImageStoreParams) return ret0 } // NewUpdateImageStoreParams indicates an expected call of NewUpdateImageStoreParams. -func (mr *MockImageStoreServiceIfaceMockRecorder) NewUpdateImageStoreParams(id, readonly interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) NewUpdateImageStoreParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateImageStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewUpdateImageStoreParams), id, readonly) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateImageStoreParams", reflect.TypeOf((*MockImageStoreServiceIface)(nil).NewUpdateImageStoreParams), id) } // UpdateCloudToUseObjectStore mocks base method. @@ -498,7 +533,7 @@ func (m *MockImageStoreServiceIface) UpdateCloudToUseObjectStore(p *UpdateCloudT } // UpdateCloudToUseObjectStore indicates an expected call of UpdateCloudToUseObjectStore. -func (mr *MockImageStoreServiceIfaceMockRecorder) UpdateCloudToUseObjectStore(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) UpdateCloudToUseObjectStore(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCloudToUseObjectStore", reflect.TypeOf((*MockImageStoreServiceIface)(nil).UpdateCloudToUseObjectStore), p) } @@ -513,7 +548,7 @@ func (m *MockImageStoreServiceIface) UpdateImageStore(p *UpdateImageStoreParams) } // UpdateImageStore indicates an expected call of UpdateImageStore. -func (mr *MockImageStoreServiceIfaceMockRecorder) UpdateImageStore(p interface{}) *gomock.Call { +func (mr *MockImageStoreServiceIfaceMockRecorder) UpdateImageStore(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageStore", reflect.TypeOf((*MockImageStoreServiceIface)(nil).UpdateImageStore), p) } diff --git a/cloudstack/InfrastructureUsageService.go b/cloudstack/InfrastructureUsageService.go index b5437efc..6a3812d9 100644 --- a/cloudstack/InfrastructureUsageService.go +++ b/cloudstack/InfrastructureUsageService.go @@ -21,332 +21,14 @@ package cloudstack import ( "encoding/json" - "fmt" "net/url" - "strconv" - "strings" ) type InfrastructureUsageServiceIface interface { - ListManagementServersMetrics(p *ListManagementServersMetricsParams) (*ListManagementServersMetricsResponse, error) - NewListManagementServersMetricsParams() *ListManagementServersMetricsParams - GetManagementServersMetricID(name string, opts ...OptionFunc) (string, int, error) - GetManagementServersMetricByName(name string, opts ...OptionFunc) (*ManagementServersMetric, int, error) - GetManagementServersMetricByID(id string, opts ...OptionFunc) (*ManagementServersMetric, int, error) ListDbMetrics(p *ListDbMetricsParams) (*ListDbMetricsResponse, error) NewListDbMetricsParams() *ListDbMetricsParams } -type ListManagementServersMetricsParams struct { - p map[string]interface{} -} - -func (p *ListManagementServersMetricsParams) 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["keyword"]; found { - u.Set("keyword", v.(string)) - } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) - } - if v, found := p.p["page"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("page", vv) - } - if v, found := p.p["pagesize"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("pagesize", vv) - } - if v, found := p.p["system"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("system", vv) - } - return u -} - -func (p *ListManagementServersMetricsParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["id"] = v -} - -func (p *ListManagementServersMetricsParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") - } -} - -func (p *ListManagementServersMetricsParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["id"].(string) - return value, ok -} - -func (p *ListManagementServersMetricsParams) SetKeyword(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["keyword"] = v -} - -func (p *ListManagementServersMetricsParams) ResetKeyword() { - if p.p != nil && p.p["keyword"] != nil { - delete(p.p, "keyword") - } -} - -func (p *ListManagementServersMetricsParams) GetKeyword() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["keyword"].(string) - return value, ok -} - -func (p *ListManagementServersMetricsParams) SetName(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["name"] = v -} - -func (p *ListManagementServersMetricsParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") - } -} - -func (p *ListManagementServersMetricsParams) GetName() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["name"].(string) - return value, ok -} - -func (p *ListManagementServersMetricsParams) SetPage(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["page"] = v -} - -func (p *ListManagementServersMetricsParams) ResetPage() { - if p.p != nil && p.p["page"] != nil { - delete(p.p, "page") - } -} - -func (p *ListManagementServersMetricsParams) GetPage() (int, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["page"].(int) - return value, ok -} - -func (p *ListManagementServersMetricsParams) SetPagesize(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["pagesize"] = v -} - -func (p *ListManagementServersMetricsParams) ResetPagesize() { - if p.p != nil && p.p["pagesize"] != nil { - delete(p.p, "pagesize") - } -} - -func (p *ListManagementServersMetricsParams) GetPagesize() (int, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["pagesize"].(int) - return value, ok -} - -func (p *ListManagementServersMetricsParams) SetSystem(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["system"] = v -} - -func (p *ListManagementServersMetricsParams) ResetSystem() { - if p.p != nil && p.p["system"] != nil { - delete(p.p, "system") - } -} - -func (p *ListManagementServersMetricsParams) GetSystem() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["system"].(bool) - return value, ok -} - -// You should always use this function to get a new ListManagementServersMetricsParams instance, -// as then you are sure you have configured all required params -func (s *InfrastructureUsageService) NewListManagementServersMetricsParams() *ListManagementServersMetricsParams { - p := &ListManagementServersMetricsParams{} - p.p = make(map[string]interface{}) - return p -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *InfrastructureUsageService) GetManagementServersMetricID(name string, opts ...OptionFunc) (string, int, error) { - p := &ListManagementServersMetricsParams{} - 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.ListManagementServersMetrics(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.ManagementServersMetrics[0].Id, l.Count, nil - } - - if l.Count > 1 { - for _, v := range l.ManagementServersMetrics { - 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) -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *InfrastructureUsageService) GetManagementServersMetricByName(name string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { - id, count, err := s.GetManagementServersMetricID(name, opts...) - if err != nil { - return nil, count, err - } - - r, count, err := s.GetManagementServersMetricByID(id, opts...) - if err != nil { - return nil, count, err - } - return r, count, nil -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *InfrastructureUsageService) GetManagementServersMetricByID(id string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { - p := &ListManagementServersMetricsParams{} - p.p = make(map[string]interface{}) - - p.p["id"] = id - - for _, fn := range append(s.cs.options, opts...) { - if err := fn(s.cs, p); err != nil { - return nil, -1, err - } - } - - l, err := s.ListManagementServersMetrics(p) - if err != nil { - if strings.Contains(err.Error(), fmt.Sprintf( - "Invalid parameter id value=%s due to incorrect long value format, "+ - "or entity does not exist", id)) { - return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) - } - return nil, -1, err - } - - if l.Count == 0 { - return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) - } - - if l.Count == 1 { - return l.ManagementServersMetrics[0], l.Count, nil - } - return nil, l.Count, fmt.Errorf("There is more then one result for ManagementServersMetric UUID: %s!", id) -} - -// Lists Management Server metrics -func (s *InfrastructureUsageService) ListManagementServersMetrics(p *ListManagementServersMetricsParams) (*ListManagementServersMetricsResponse, error) { - resp, err := s.cs.newRequest("listManagementServersMetrics", p.toURLValues()) - if err != nil { - return nil, err - } - - var r ListManagementServersMetricsResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - return &r, nil -} - -type ListManagementServersMetricsResponse struct { - Count int `json:"count"` - ManagementServersMetrics []*ManagementServersMetric `json:"managementserver"` -} - -type ManagementServersMetric struct { - Agentcount int `json:"agentcount"` - Availableprocessors int `json:"availableprocessors"` - Collectiontime string `json:"collectiontime"` - Cpuload string `json:"cpuload"` - Dbislocal bool `json:"dbislocal"` - Heapmemorytotal int64 `json:"heapmemorytotal"` - Heapmemoryused int64 `json:"heapmemoryused"` - Id string `json:"id"` - Javadistribution string `json:"javadistribution"` - Javaversion string `json:"javaversion"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Kernelversion string `json:"kernelversion"` - Lastboottime string `json:"lastboottime"` - Lastserverstart string `json:"lastserverstart"` - Lastserverstop string `json:"lastserverstop"` - Loginfo string `json:"loginfo"` - Name string `json:"name"` - Osdistribution string `json:"osdistribution"` - Serviceip string `json:"serviceip"` - Sessions int64 `json:"sessions"` - State string `json:"state"` - Systemcycleusage []int64 `json:"systemcycleusage"` - Systemloadaverages []float64 `json:"systemloadaverages"` - Systemmemoryfree string `json:"systemmemoryfree"` - Systemmemorytotal string `json:"systemmemorytotal"` - Systemmemoryused string `json:"systemmemoryused"` - Systemmemoryvirtualsize string `json:"systemmemoryvirtualsize"` - Systemtotalcpucycles float64 `json:"systemtotalcpucycles"` - Threadsblockedcount int `json:"threadsblockedcount"` - Threadsdaemoncount int `json:"threadsdaemoncount"` - Threadsrunnablecount int `json:"threadsrunnablecount"` - Threadsteminatedcount int `json:"threadsteminatedcount"` - Threadstotalcount int `json:"threadstotalcount"` - Threadswaitingcount int `json:"threadswaitingcount"` - Usageislocal bool `json:"usageislocal"` - Version string `json:"version"` -} - type ListDbMetricsParams struct { p map[string]interface{} } diff --git a/cloudstack/InfrastructureUsageService_mock.go b/cloudstack/InfrastructureUsageService_mock.go index cca28997..b7d24e83 100644 --- a/cloudstack/InfrastructureUsageService_mock.go +++ b/cloudstack/InfrastructureUsageService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/InfrastructureUsageService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/InfrastructureUsageService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/InfrastructureUsageService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockInfrastructureUsageServiceIface is a mock of InfrastructureUsageServiceIface interface. type MockInfrastructureUsageServiceIface struct { ctrl *gomock.Controller recorder *MockInfrastructureUsageServiceIfaceMockRecorder + isgomock struct{} } // MockInfrastructureUsageServiceIfaceMockRecorder is the mock recorder for MockInfrastructureUsageServiceIface. @@ -52,69 +58,6 @@ func (m *MockInfrastructureUsageServiceIface) EXPECT() *MockInfrastructureUsageS return m.recorder } -// GetManagementServersMetricByID mocks base method. -func (m *MockInfrastructureUsageServiceIface) GetManagementServersMetricByID(id string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { - m.ctrl.T.Helper() - varargs := []interface{}{id} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetManagementServersMetricByID", varargs...) - ret0, _ := ret[0].(*ManagementServersMetric) - ret1, _ := ret[1].(int) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// GetManagementServersMetricByID indicates an expected call of GetManagementServersMetricByID. -func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) GetManagementServersMetricByID(id interface{}, opts ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServersMetricByID", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).GetManagementServersMetricByID), varargs...) -} - -// GetManagementServersMetricByName mocks base method. -func (m *MockInfrastructureUsageServiceIface) GetManagementServersMetricByName(name string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { - m.ctrl.T.Helper() - varargs := []interface{}{name} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetManagementServersMetricByName", varargs...) - ret0, _ := ret[0].(*ManagementServersMetric) - ret1, _ := ret[1].(int) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// GetManagementServersMetricByName indicates an expected call of GetManagementServersMetricByName. -func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) GetManagementServersMetricByName(name interface{}, opts ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServersMetricByName", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).GetManagementServersMetricByName), varargs...) -} - -// GetManagementServersMetricID mocks base method. -func (m *MockInfrastructureUsageServiceIface) GetManagementServersMetricID(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, "GetManagementServersMetricID", varargs...) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(int) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// GetManagementServersMetricID indicates an expected call of GetManagementServersMetricID. -func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) GetManagementServersMetricID(name interface{}, opts ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServersMetricID", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).GetManagementServersMetricID), varargs...) -} - // ListDbMetrics mocks base method. func (m *MockInfrastructureUsageServiceIface) ListDbMetrics(p *ListDbMetricsParams) (*ListDbMetricsResponse, error) { m.ctrl.T.Helper() @@ -125,26 +68,11 @@ func (m *MockInfrastructureUsageServiceIface) ListDbMetrics(p *ListDbMetricsPara } // ListDbMetrics indicates an expected call of ListDbMetrics. -func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) ListDbMetrics(p interface{}) *gomock.Call { +func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) ListDbMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDbMetrics", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).ListDbMetrics), p) } -// ListManagementServersMetrics mocks base method. -func (m *MockInfrastructureUsageServiceIface) ListManagementServersMetrics(p *ListManagementServersMetricsParams) (*ListManagementServersMetricsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListManagementServersMetrics", p) - ret0, _ := ret[0].(*ListManagementServersMetricsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListManagementServersMetrics indicates an expected call of ListManagementServersMetrics. -func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) ListManagementServersMetrics(p interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListManagementServersMetrics", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).ListManagementServersMetrics), p) -} - // NewListDbMetricsParams mocks base method. func (m *MockInfrastructureUsageServiceIface) NewListDbMetricsParams() *ListDbMetricsParams { m.ctrl.T.Helper() @@ -158,17 +86,3 @@ func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) NewListDbMetricsParam mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListDbMetricsParams", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).NewListDbMetricsParams)) } - -// NewListManagementServersMetricsParams mocks base method. -func (m *MockInfrastructureUsageServiceIface) NewListManagementServersMetricsParams() *ListManagementServersMetricsParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewListManagementServersMetricsParams") - ret0, _ := ret[0].(*ListManagementServersMetricsParams) - return ret0 -} - -// NewListManagementServersMetricsParams indicates an expected call of NewListManagementServersMetricsParams. -func (mr *MockInfrastructureUsageServiceIfaceMockRecorder) NewListManagementServersMetricsParams() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListManagementServersMetricsParams", reflect.TypeOf((*MockInfrastructureUsageServiceIface)(nil).NewListManagementServersMetricsParams)) -} diff --git a/cloudstack/InternalLBService_mock.go b/cloudstack/InternalLBService_mock.go index 24730cc4..d5f8797f 100644 --- a/cloudstack/InternalLBService_mock.go +++ b/cloudstack/InternalLBService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/InternalLBService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/InternalLBService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/InternalLBService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockInternalLBServiceIface is a mock of InternalLBServiceIface interface. type MockInternalLBServiceIface struct { ctrl *gomock.Controller recorder *MockInternalLBServiceIfaceMockRecorder + isgomock struct{} } // MockInternalLBServiceIfaceMockRecorder is the mock recorder for MockInternalLBServiceIface. @@ -62,7 +68,7 @@ func (m *MockInternalLBServiceIface) ConfigureInternalLoadBalancerElement(p *Con } // ConfigureInternalLoadBalancerElement indicates an expected call of ConfigureInternalLoadBalancerElement. -func (mr *MockInternalLBServiceIfaceMockRecorder) ConfigureInternalLoadBalancerElement(p interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) ConfigureInternalLoadBalancerElement(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureInternalLoadBalancerElement", reflect.TypeOf((*MockInternalLBServiceIface)(nil).ConfigureInternalLoadBalancerElement), p) } @@ -77,7 +83,7 @@ func (m *MockInternalLBServiceIface) CreateInternalLoadBalancerElement(p *Create } // CreateInternalLoadBalancerElement indicates an expected call of CreateInternalLoadBalancerElement. -func (mr *MockInternalLBServiceIfaceMockRecorder) CreateInternalLoadBalancerElement(p interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) CreateInternalLoadBalancerElement(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateInternalLoadBalancerElement", reflect.TypeOf((*MockInternalLBServiceIface)(nil).CreateInternalLoadBalancerElement), p) } @@ -85,7 +91,7 @@ func (mr *MockInternalLBServiceIfaceMockRecorder) CreateInternalLoadBalancerElem // GetInternalLoadBalancerElementByID mocks base method. func (m *MockInternalLBServiceIface) GetInternalLoadBalancerElementByID(id string, opts ...OptionFunc) (*InternalLoadBalancerElement, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockInternalLBServiceIface) GetInternalLoadBalancerElementByID(id strin } // GetInternalLoadBalancerElementByID indicates an expected call of GetInternalLoadBalancerElementByID. -func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerElementByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerElementByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInternalLoadBalancerElementByID", reflect.TypeOf((*MockInternalLBServiceIface)(nil).GetInternalLoadBalancerElementByID), varargs...) } // GetInternalLoadBalancerVMByID mocks base method. func (m *MockInternalLBServiceIface) GetInternalLoadBalancerVMByID(id string, opts ...OptionFunc) (*InternalLoadBalancerVM, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockInternalLBServiceIface) GetInternalLoadBalancerVMByID(id string, op } // GetInternalLoadBalancerVMByID indicates an expected call of GetInternalLoadBalancerVMByID. -func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerVMByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerVMByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInternalLoadBalancerVMByID", reflect.TypeOf((*MockInternalLBServiceIface)(nil).GetInternalLoadBalancerVMByID), varargs...) } // GetInternalLoadBalancerVMByName mocks base method. func (m *MockInternalLBServiceIface) GetInternalLoadBalancerVMByName(name string, opts ...OptionFunc) (*InternalLoadBalancerVM, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,16 +145,16 @@ func (m *MockInternalLBServiceIface) GetInternalLoadBalancerVMByName(name string } // GetInternalLoadBalancerVMByName indicates an expected call of GetInternalLoadBalancerVMByName. -func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerVMByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerVMByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInternalLoadBalancerVMByName", reflect.TypeOf((*MockInternalLBServiceIface)(nil).GetInternalLoadBalancerVMByName), varargs...) } // GetInternalLoadBalancerVMID mocks base method. func (m *MockInternalLBServiceIface) GetInternalLoadBalancerVMID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -160,9 +166,9 @@ func (m *MockInternalLBServiceIface) GetInternalLoadBalancerVMID(name string, op } // GetInternalLoadBalancerVMID indicates an expected call of GetInternalLoadBalancerVMID. -func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerVMID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) GetInternalLoadBalancerVMID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInternalLoadBalancerVMID", reflect.TypeOf((*MockInternalLBServiceIface)(nil).GetInternalLoadBalancerVMID), varargs...) } @@ -176,7 +182,7 @@ func (m *MockInternalLBServiceIface) ListInternalLoadBalancerElements(p *ListInt } // ListInternalLoadBalancerElements indicates an expected call of ListInternalLoadBalancerElements. -func (mr *MockInternalLBServiceIfaceMockRecorder) ListInternalLoadBalancerElements(p interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) ListInternalLoadBalancerElements(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListInternalLoadBalancerElements", reflect.TypeOf((*MockInternalLBServiceIface)(nil).ListInternalLoadBalancerElements), p) } @@ -191,7 +197,7 @@ func (m *MockInternalLBServiceIface) ListInternalLoadBalancerVMs(p *ListInternal } // ListInternalLoadBalancerVMs indicates an expected call of ListInternalLoadBalancerVMs. -func (mr *MockInternalLBServiceIfaceMockRecorder) ListInternalLoadBalancerVMs(p interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) ListInternalLoadBalancerVMs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListInternalLoadBalancerVMs", reflect.TypeOf((*MockInternalLBServiceIface)(nil).ListInternalLoadBalancerVMs), p) } @@ -205,7 +211,7 @@ func (m *MockInternalLBServiceIface) NewConfigureInternalLoadBalancerElementPara } // NewConfigureInternalLoadBalancerElementParams indicates an expected call of NewConfigureInternalLoadBalancerElementParams. -func (mr *MockInternalLBServiceIfaceMockRecorder) NewConfigureInternalLoadBalancerElementParams(enabled, id interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) NewConfigureInternalLoadBalancerElementParams(enabled, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureInternalLoadBalancerElementParams", reflect.TypeOf((*MockInternalLBServiceIface)(nil).NewConfigureInternalLoadBalancerElementParams), enabled, id) } @@ -219,7 +225,7 @@ func (m *MockInternalLBServiceIface) NewCreateInternalLoadBalancerElementParams( } // NewCreateInternalLoadBalancerElementParams indicates an expected call of NewCreateInternalLoadBalancerElementParams. -func (mr *MockInternalLBServiceIfaceMockRecorder) NewCreateInternalLoadBalancerElementParams(nspid interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) NewCreateInternalLoadBalancerElementParams(nspid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateInternalLoadBalancerElementParams", reflect.TypeOf((*MockInternalLBServiceIface)(nil).NewCreateInternalLoadBalancerElementParams), nspid) } @@ -261,7 +267,7 @@ func (m *MockInternalLBServiceIface) NewStartInternalLoadBalancerVMParams(id str } // NewStartInternalLoadBalancerVMParams indicates an expected call of NewStartInternalLoadBalancerVMParams. -func (mr *MockInternalLBServiceIfaceMockRecorder) NewStartInternalLoadBalancerVMParams(id interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) NewStartInternalLoadBalancerVMParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartInternalLoadBalancerVMParams", reflect.TypeOf((*MockInternalLBServiceIface)(nil).NewStartInternalLoadBalancerVMParams), id) } @@ -275,7 +281,7 @@ func (m *MockInternalLBServiceIface) NewStopInternalLoadBalancerVMParams(id stri } // NewStopInternalLoadBalancerVMParams indicates an expected call of NewStopInternalLoadBalancerVMParams. -func (mr *MockInternalLBServiceIfaceMockRecorder) NewStopInternalLoadBalancerVMParams(id interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) NewStopInternalLoadBalancerVMParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopInternalLoadBalancerVMParams", reflect.TypeOf((*MockInternalLBServiceIface)(nil).NewStopInternalLoadBalancerVMParams), id) } @@ -290,7 +296,7 @@ func (m *MockInternalLBServiceIface) StartInternalLoadBalancerVM(p *StartInterna } // StartInternalLoadBalancerVM indicates an expected call of StartInternalLoadBalancerVM. -func (mr *MockInternalLBServiceIfaceMockRecorder) StartInternalLoadBalancerVM(p interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) StartInternalLoadBalancerVM(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartInternalLoadBalancerVM", reflect.TypeOf((*MockInternalLBServiceIface)(nil).StartInternalLoadBalancerVM), p) } @@ -305,7 +311,7 @@ func (m *MockInternalLBServiceIface) StopInternalLoadBalancerVM(p *StopInternalL } // StopInternalLoadBalancerVM indicates an expected call of StopInternalLoadBalancerVM. -func (mr *MockInternalLBServiceIfaceMockRecorder) StopInternalLoadBalancerVM(p interface{}) *gomock.Call { +func (mr *MockInternalLBServiceIfaceMockRecorder) StopInternalLoadBalancerVM(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopInternalLoadBalancerVM", reflect.TypeOf((*MockInternalLBServiceIface)(nil).StopInternalLoadBalancerVM), p) } diff --git a/cloudstack/KubernetesService_mock.go b/cloudstack/KubernetesService_mock.go index 236829b2..645f25b9 100644 --- a/cloudstack/KubernetesService_mock.go +++ b/cloudstack/KubernetesService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/KubernetesService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/KubernetesService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/KubernetesService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockKubernetesServiceIface is a mock of KubernetesServiceIface interface. type MockKubernetesServiceIface struct { ctrl *gomock.Controller recorder *MockKubernetesServiceIfaceMockRecorder + isgomock struct{} } // MockKubernetesServiceIfaceMockRecorder is the mock recorder for MockKubernetesServiceIface. @@ -62,7 +68,7 @@ func (m *MockKubernetesServiceIface) AddKubernetesSupportedVersion(p *AddKuberne } // AddKubernetesSupportedVersion indicates an expected call of AddKubernetesSupportedVersion. -func (mr *MockKubernetesServiceIfaceMockRecorder) AddKubernetesSupportedVersion(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) AddKubernetesSupportedVersion(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddKubernetesSupportedVersion", reflect.TypeOf((*MockKubernetesServiceIface)(nil).AddKubernetesSupportedVersion), p) } @@ -77,7 +83,7 @@ func (m *MockKubernetesServiceIface) AddVirtualMachinesToKubernetesCluster(p *Ad } // AddVirtualMachinesToKubernetesCluster indicates an expected call of AddVirtualMachinesToKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) AddVirtualMachinesToKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) AddVirtualMachinesToKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVirtualMachinesToKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).AddVirtualMachinesToKubernetesCluster), p) } @@ -92,7 +98,7 @@ func (m *MockKubernetesServiceIface) CreateKubernetesCluster(p *CreateKubernetes } // CreateKubernetesCluster indicates an expected call of CreateKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) CreateKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) CreateKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).CreateKubernetesCluster), p) } @@ -107,7 +113,7 @@ func (m *MockKubernetesServiceIface) DeleteKubernetesCluster(p *DeleteKubernetes } // DeleteKubernetesCluster indicates an expected call of DeleteKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) DeleteKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) DeleteKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).DeleteKubernetesCluster), p) } @@ -122,7 +128,7 @@ func (m *MockKubernetesServiceIface) DeleteKubernetesSupportedVersion(p *DeleteK } // DeleteKubernetesSupportedVersion indicates an expected call of DeleteKubernetesSupportedVersion. -func (mr *MockKubernetesServiceIfaceMockRecorder) DeleteKubernetesSupportedVersion(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) DeleteKubernetesSupportedVersion(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKubernetesSupportedVersion", reflect.TypeOf((*MockKubernetesServiceIface)(nil).DeleteKubernetesSupportedVersion), p) } @@ -130,7 +136,7 @@ func (mr *MockKubernetesServiceIfaceMockRecorder) DeleteKubernetesSupportedVersi // GetKubernetesClusterByID mocks base method. func (m *MockKubernetesServiceIface) GetKubernetesClusterByID(id string, opts ...OptionFunc) (*KubernetesCluster, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -142,16 +148,16 @@ func (m *MockKubernetesServiceIface) GetKubernetesClusterByID(id string, opts .. } // GetKubernetesClusterByID indicates an expected call of GetKubernetesClusterByID. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesClusterByID", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesClusterByID), varargs...) } // GetKubernetesClusterByName mocks base method. func (m *MockKubernetesServiceIface) GetKubernetesClusterByName(name string, opts ...OptionFunc) (*KubernetesCluster, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -163,9 +169,9 @@ func (m *MockKubernetesServiceIface) GetKubernetesClusterByName(name string, opt } // GetKubernetesClusterByName indicates an expected call of GetKubernetesClusterByName. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesClusterByName", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesClusterByName), varargs...) } @@ -179,7 +185,7 @@ func (m *MockKubernetesServiceIface) GetKubernetesClusterConfig(p *GetKubernetes } // GetKubernetesClusterConfig indicates an expected call of GetKubernetesClusterConfig. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterConfig(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterConfig(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesClusterConfig", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesClusterConfig), p) } @@ -187,7 +193,7 @@ func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterConfig(p i // GetKubernetesClusterID mocks base method. func (m *MockKubernetesServiceIface) GetKubernetesClusterID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -199,16 +205,16 @@ func (m *MockKubernetesServiceIface) GetKubernetesClusterID(name string, opts .. } // GetKubernetesClusterID indicates an expected call of GetKubernetesClusterID. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesClusterID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesClusterID", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesClusterID), varargs...) } // GetKubernetesSupportedVersionByID mocks base method. func (m *MockKubernetesServiceIface) GetKubernetesSupportedVersionByID(id string, opts ...OptionFunc) (*KubernetesSupportedVersion, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -220,16 +226,16 @@ func (m *MockKubernetesServiceIface) GetKubernetesSupportedVersionByID(id string } // GetKubernetesSupportedVersionByID indicates an expected call of GetKubernetesSupportedVersionByID. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesSupportedVersionByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesSupportedVersionByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesSupportedVersionByID", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesSupportedVersionByID), varargs...) } // GetKubernetesSupportedVersionByName mocks base method. func (m *MockKubernetesServiceIface) GetKubernetesSupportedVersionByName(name string, opts ...OptionFunc) (*KubernetesSupportedVersion, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -241,16 +247,16 @@ func (m *MockKubernetesServiceIface) GetKubernetesSupportedVersionByName(name st } // GetKubernetesSupportedVersionByName indicates an expected call of GetKubernetesSupportedVersionByName. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesSupportedVersionByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesSupportedVersionByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesSupportedVersionByName", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesSupportedVersionByName), varargs...) } // GetKubernetesSupportedVersionID mocks base method. func (m *MockKubernetesServiceIface) GetKubernetesSupportedVersionID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -262,9 +268,9 @@ func (m *MockKubernetesServiceIface) GetKubernetesSupportedVersionID(keyword str } // GetKubernetesSupportedVersionID indicates an expected call of GetKubernetesSupportedVersionID. -func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesSupportedVersionID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) GetKubernetesSupportedVersionID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKubernetesSupportedVersionID", reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesSupportedVersionID), varargs...) } @@ -278,7 +284,7 @@ func (m *MockKubernetesServiceIface) ListKubernetesClusters(p *ListKubernetesClu } // ListKubernetesClusters indicates an expected call of ListKubernetesClusters. -func (mr *MockKubernetesServiceIfaceMockRecorder) ListKubernetesClusters(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) ListKubernetesClusters(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListKubernetesClusters", reflect.TypeOf((*MockKubernetesServiceIface)(nil).ListKubernetesClusters), p) } @@ -293,7 +299,7 @@ func (m *MockKubernetesServiceIface) ListKubernetesSupportedVersions(p *ListKube } // ListKubernetesSupportedVersions indicates an expected call of ListKubernetesSupportedVersions. -func (mr *MockKubernetesServiceIfaceMockRecorder) ListKubernetesSupportedVersions(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) ListKubernetesSupportedVersions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListKubernetesSupportedVersions", reflect.TypeOf((*MockKubernetesServiceIface)(nil).ListKubernetesSupportedVersions), p) } @@ -307,7 +313,7 @@ func (m *MockKubernetesServiceIface) NewAddKubernetesSupportedVersionParams(minc } // NewAddKubernetesSupportedVersionParams indicates an expected call of NewAddKubernetesSupportedVersionParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewAddKubernetesSupportedVersionParams(mincpunumber, minmemory, semanticversion interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewAddKubernetesSupportedVersionParams(mincpunumber, minmemory, semanticversion any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddKubernetesSupportedVersionParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewAddKubernetesSupportedVersionParams), mincpunumber, minmemory, semanticversion) } @@ -321,7 +327,7 @@ func (m *MockKubernetesServiceIface) NewAddVirtualMachinesToKubernetesClusterPar } // NewAddVirtualMachinesToKubernetesClusterParams indicates an expected call of NewAddVirtualMachinesToKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewAddVirtualMachinesToKubernetesClusterParams(id, virtualmachineids interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewAddVirtualMachinesToKubernetesClusterParams(id, virtualmachineids any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddVirtualMachinesToKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewAddVirtualMachinesToKubernetesClusterParams), id, virtualmachineids) } @@ -335,7 +341,7 @@ func (m *MockKubernetesServiceIface) NewCreateKubernetesClusterParams(descriptio } // NewCreateKubernetesClusterParams indicates an expected call of NewCreateKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewCreateKubernetesClusterParams(description, kubernetesversionid, name, serviceofferingid, size, zoneid interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewCreateKubernetesClusterParams(description, kubernetesversionid, name, serviceofferingid, size, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewCreateKubernetesClusterParams), description, kubernetesversionid, name, serviceofferingid, size, zoneid) } @@ -349,7 +355,7 @@ func (m *MockKubernetesServiceIface) NewDeleteKubernetesClusterParams(id string) } // NewDeleteKubernetesClusterParams indicates an expected call of NewDeleteKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewDeleteKubernetesClusterParams(id interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewDeleteKubernetesClusterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewDeleteKubernetesClusterParams), id) } @@ -363,7 +369,7 @@ func (m *MockKubernetesServiceIface) NewDeleteKubernetesSupportedVersionParams(i } // NewDeleteKubernetesSupportedVersionParams indicates an expected call of NewDeleteKubernetesSupportedVersionParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewDeleteKubernetesSupportedVersionParams(id interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewDeleteKubernetesSupportedVersionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteKubernetesSupportedVersionParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewDeleteKubernetesSupportedVersionParams), id) } @@ -419,7 +425,7 @@ func (m *MockKubernetesServiceIface) NewRemoveVirtualMachinesFromKubernetesClust } // NewRemoveVirtualMachinesFromKubernetesClusterParams indicates an expected call of NewRemoveVirtualMachinesFromKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewRemoveVirtualMachinesFromKubernetesClusterParams(id, virtualmachineids interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewRemoveVirtualMachinesFromKubernetesClusterParams(id, virtualmachineids any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveVirtualMachinesFromKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewRemoveVirtualMachinesFromKubernetesClusterParams), id, virtualmachineids) } @@ -433,7 +439,7 @@ func (m *MockKubernetesServiceIface) NewScaleKubernetesClusterParams(id string) } // NewScaleKubernetesClusterParams indicates an expected call of NewScaleKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewScaleKubernetesClusterParams(id interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewScaleKubernetesClusterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewScaleKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewScaleKubernetesClusterParams), id) } @@ -447,7 +453,7 @@ func (m *MockKubernetesServiceIface) NewStartKubernetesClusterParams(id string) } // NewStartKubernetesClusterParams indicates an expected call of NewStartKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewStartKubernetesClusterParams(id interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewStartKubernetesClusterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewStartKubernetesClusterParams), id) } @@ -461,7 +467,7 @@ func (m *MockKubernetesServiceIface) NewStopKubernetesClusterParams(id string) * } // NewStopKubernetesClusterParams indicates an expected call of NewStopKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewStopKubernetesClusterParams(id interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewStopKubernetesClusterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewStopKubernetesClusterParams), id) } @@ -475,7 +481,7 @@ func (m *MockKubernetesServiceIface) NewUpdateKubernetesSupportedVersionParams(i } // NewUpdateKubernetesSupportedVersionParams indicates an expected call of NewUpdateKubernetesSupportedVersionParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewUpdateKubernetesSupportedVersionParams(id, state interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewUpdateKubernetesSupportedVersionParams(id, state any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateKubernetesSupportedVersionParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewUpdateKubernetesSupportedVersionParams), id, state) } @@ -489,7 +495,7 @@ func (m *MockKubernetesServiceIface) NewUpgradeKubernetesClusterParams(id, kuber } // NewUpgradeKubernetesClusterParams indicates an expected call of NewUpgradeKubernetesClusterParams. -func (mr *MockKubernetesServiceIfaceMockRecorder) NewUpgradeKubernetesClusterParams(id, kubernetesversionid interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) NewUpgradeKubernetesClusterParams(id, kubernetesversionid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpgradeKubernetesClusterParams", reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewUpgradeKubernetesClusterParams), id, kubernetesversionid) } @@ -504,7 +510,7 @@ func (m *MockKubernetesServiceIface) RemoveVirtualMachinesFromKubernetesCluster( } // RemoveVirtualMachinesFromKubernetesCluster indicates an expected call of RemoveVirtualMachinesFromKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) RemoveVirtualMachinesFromKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) RemoveVirtualMachinesFromKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVirtualMachinesFromKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).RemoveVirtualMachinesFromKubernetesCluster), p) } @@ -519,7 +525,7 @@ func (m *MockKubernetesServiceIface) ScaleKubernetesCluster(p *ScaleKubernetesCl } // ScaleKubernetesCluster indicates an expected call of ScaleKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) ScaleKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) ScaleKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ScaleKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).ScaleKubernetesCluster), p) } @@ -534,7 +540,7 @@ func (m *MockKubernetesServiceIface) StartKubernetesCluster(p *StartKubernetesCl } // StartKubernetesCluster indicates an expected call of StartKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) StartKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) StartKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).StartKubernetesCluster), p) } @@ -549,7 +555,7 @@ func (m *MockKubernetesServiceIface) StopKubernetesCluster(p *StopKubernetesClus } // StopKubernetesCluster indicates an expected call of StopKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) StopKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) StopKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).StopKubernetesCluster), p) } @@ -564,7 +570,7 @@ func (m *MockKubernetesServiceIface) UpdateKubernetesSupportedVersion(p *UpdateK } // UpdateKubernetesSupportedVersion indicates an expected call of UpdateKubernetesSupportedVersion. -func (mr *MockKubernetesServiceIfaceMockRecorder) UpdateKubernetesSupportedVersion(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) UpdateKubernetesSupportedVersion(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateKubernetesSupportedVersion", reflect.TypeOf((*MockKubernetesServiceIface)(nil).UpdateKubernetesSupportedVersion), p) } @@ -579,7 +585,7 @@ func (m *MockKubernetesServiceIface) UpgradeKubernetesCluster(p *UpgradeKubernet } // UpgradeKubernetesCluster indicates an expected call of UpgradeKubernetesCluster. -func (mr *MockKubernetesServiceIfaceMockRecorder) UpgradeKubernetesCluster(p interface{}) *gomock.Call { +func (mr *MockKubernetesServiceIfaceMockRecorder) UpgradeKubernetesCluster(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpgradeKubernetesCluster", reflect.TypeOf((*MockKubernetesServiceIface)(nil).UpgradeKubernetesCluster), p) } diff --git a/cloudstack/LDAPService_mock.go b/cloudstack/LDAPService_mock.go index 288813d2..09b77d56 100644 --- a/cloudstack/LDAPService_mock.go +++ b/cloudstack/LDAPService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/LDAPService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/LDAPService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/LDAPService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockLDAPServiceIface is a mock of LDAPServiceIface interface. type MockLDAPServiceIface struct { ctrl *gomock.Controller recorder *MockLDAPServiceIfaceMockRecorder + isgomock struct{} } // MockLDAPServiceIfaceMockRecorder is the mock recorder for MockLDAPServiceIface. @@ -62,7 +68,7 @@ func (m *MockLDAPServiceIface) AddLdapConfiguration(p *AddLdapConfigurationParam } // AddLdapConfiguration indicates an expected call of AddLdapConfiguration. -func (mr *MockLDAPServiceIfaceMockRecorder) AddLdapConfiguration(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) AddLdapConfiguration(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddLdapConfiguration", reflect.TypeOf((*MockLDAPServiceIface)(nil).AddLdapConfiguration), p) } @@ -77,7 +83,7 @@ func (m *MockLDAPServiceIface) DeleteLdapConfiguration(p *DeleteLdapConfiguratio } // DeleteLdapConfiguration indicates an expected call of DeleteLdapConfiguration. -func (mr *MockLDAPServiceIfaceMockRecorder) DeleteLdapConfiguration(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) DeleteLdapConfiguration(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLdapConfiguration", reflect.TypeOf((*MockLDAPServiceIface)(nil).DeleteLdapConfiguration), p) } @@ -92,7 +98,7 @@ func (m *MockLDAPServiceIface) ImportLdapUsers(p *ImportLdapUsersParams) (*Impor } // ImportLdapUsers indicates an expected call of ImportLdapUsers. -func (mr *MockLDAPServiceIfaceMockRecorder) ImportLdapUsers(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) ImportLdapUsers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImportLdapUsers", reflect.TypeOf((*MockLDAPServiceIface)(nil).ImportLdapUsers), p) } @@ -107,7 +113,7 @@ func (m *MockLDAPServiceIface) LdapConfig(p *LdapConfigParams) (*LdapConfigRespo } // LdapConfig indicates an expected call of LdapConfig. -func (mr *MockLDAPServiceIfaceMockRecorder) LdapConfig(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) LdapConfig(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LdapConfig", reflect.TypeOf((*MockLDAPServiceIface)(nil).LdapConfig), p) } @@ -122,7 +128,7 @@ func (m *MockLDAPServiceIface) LdapCreateAccount(p *LdapCreateAccountParams) (*L } // LdapCreateAccount indicates an expected call of LdapCreateAccount. -func (mr *MockLDAPServiceIfaceMockRecorder) LdapCreateAccount(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) LdapCreateAccount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LdapCreateAccount", reflect.TypeOf((*MockLDAPServiceIface)(nil).LdapCreateAccount), p) } @@ -137,7 +143,7 @@ func (m *MockLDAPServiceIface) LdapRemove(p *LdapRemoveParams) (*LdapRemoveRespo } // LdapRemove indicates an expected call of LdapRemove. -func (mr *MockLDAPServiceIfaceMockRecorder) LdapRemove(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) LdapRemove(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LdapRemove", reflect.TypeOf((*MockLDAPServiceIface)(nil).LdapRemove), p) } @@ -152,7 +158,7 @@ func (m *MockLDAPServiceIface) LinkDomainToLdap(p *LinkDomainToLdapParams) (*Lin } // LinkDomainToLdap indicates an expected call of LinkDomainToLdap. -func (mr *MockLDAPServiceIfaceMockRecorder) LinkDomainToLdap(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) LinkDomainToLdap(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LinkDomainToLdap", reflect.TypeOf((*MockLDAPServiceIface)(nil).LinkDomainToLdap), p) } @@ -167,7 +173,7 @@ func (m *MockLDAPServiceIface) ListLdapConfigurations(p *ListLdapConfigurationsP } // ListLdapConfigurations indicates an expected call of ListLdapConfigurations. -func (mr *MockLDAPServiceIfaceMockRecorder) ListLdapConfigurations(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) ListLdapConfigurations(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLdapConfigurations", reflect.TypeOf((*MockLDAPServiceIface)(nil).ListLdapConfigurations), p) } @@ -182,7 +188,7 @@ func (m *MockLDAPServiceIface) ListLdapUsers(p *ListLdapUsersParams) (*ListLdapU } // ListLdapUsers indicates an expected call of ListLdapUsers. -func (mr *MockLDAPServiceIfaceMockRecorder) ListLdapUsers(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) ListLdapUsers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLdapUsers", reflect.TypeOf((*MockLDAPServiceIface)(nil).ListLdapUsers), p) } @@ -196,7 +202,7 @@ func (m *MockLDAPServiceIface) NewAddLdapConfigurationParams(hostname string, po } // NewAddLdapConfigurationParams indicates an expected call of NewAddLdapConfigurationParams. -func (mr *MockLDAPServiceIfaceMockRecorder) NewAddLdapConfigurationParams(hostname, port interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) NewAddLdapConfigurationParams(hostname, port any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddLdapConfigurationParams", reflect.TypeOf((*MockLDAPServiceIface)(nil).NewAddLdapConfigurationParams), hostname, port) } @@ -210,7 +216,7 @@ func (m *MockLDAPServiceIface) NewDeleteLdapConfigurationParams(hostname string) } // NewDeleteLdapConfigurationParams indicates an expected call of NewDeleteLdapConfigurationParams. -func (mr *MockLDAPServiceIfaceMockRecorder) NewDeleteLdapConfigurationParams(hostname interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) NewDeleteLdapConfigurationParams(hostname any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteLdapConfigurationParams", reflect.TypeOf((*MockLDAPServiceIface)(nil).NewDeleteLdapConfigurationParams), hostname) } @@ -252,7 +258,7 @@ func (m *MockLDAPServiceIface) NewLdapCreateAccountParams(username string) *Ldap } // NewLdapCreateAccountParams indicates an expected call of NewLdapCreateAccountParams. -func (mr *MockLDAPServiceIfaceMockRecorder) NewLdapCreateAccountParams(username interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) NewLdapCreateAccountParams(username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLdapCreateAccountParams", reflect.TypeOf((*MockLDAPServiceIface)(nil).NewLdapCreateAccountParams), username) } @@ -280,7 +286,7 @@ func (m *MockLDAPServiceIface) NewLinkDomainToLdapParams(accounttype int, domain } // NewLinkDomainToLdapParams indicates an expected call of NewLinkDomainToLdapParams. -func (mr *MockLDAPServiceIfaceMockRecorder) NewLinkDomainToLdapParams(accounttype, domainid, lDAPType interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) NewLinkDomainToLdapParams(accounttype, domainid, lDAPType any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLinkDomainToLdapParams", reflect.TypeOf((*MockLDAPServiceIface)(nil).NewLinkDomainToLdapParams), accounttype, domainid, lDAPType) } @@ -322,7 +328,7 @@ func (m *MockLDAPServiceIface) NewSearchLdapParams(query string) *SearchLdapPara } // NewSearchLdapParams indicates an expected call of NewSearchLdapParams. -func (mr *MockLDAPServiceIfaceMockRecorder) NewSearchLdapParams(query interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) NewSearchLdapParams(query any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewSearchLdapParams", reflect.TypeOf((*MockLDAPServiceIface)(nil).NewSearchLdapParams), query) } @@ -337,7 +343,7 @@ func (m *MockLDAPServiceIface) SearchLdap(p *SearchLdapParams) (*SearchLdapRespo } // SearchLdap indicates an expected call of SearchLdap. -func (mr *MockLDAPServiceIfaceMockRecorder) SearchLdap(p interface{}) *gomock.Call { +func (mr *MockLDAPServiceIfaceMockRecorder) SearchLdap(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SearchLdap", reflect.TypeOf((*MockLDAPServiceIface)(nil).SearchLdap), p) } diff --git a/cloudstack/LimitService_mock.go b/cloudstack/LimitService_mock.go index 4c07a8ae..abf2d3e9 100644 --- a/cloudstack/LimitService_mock.go +++ b/cloudstack/LimitService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/LimitService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/LimitService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/LimitService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockLimitServiceIface is a mock of LimitServiceIface interface. type MockLimitServiceIface struct { ctrl *gomock.Controller recorder *MockLimitServiceIfaceMockRecorder + isgomock struct{} } // MockLimitServiceIfaceMockRecorder is the mock recorder for MockLimitServiceIface. @@ -62,7 +68,7 @@ func (m *MockLimitServiceIface) GetApiLimit(p *GetApiLimitParams) (*GetApiLimitR } // GetApiLimit indicates an expected call of GetApiLimit. -func (mr *MockLimitServiceIfaceMockRecorder) GetApiLimit(p interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) GetApiLimit(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetApiLimit", reflect.TypeOf((*MockLimitServiceIface)(nil).GetApiLimit), p) } @@ -77,7 +83,7 @@ func (m *MockLimitServiceIface) ListResourceLimits(p *ListResourceLimitsParams) } // ListResourceLimits indicates an expected call of ListResourceLimits. -func (mr *MockLimitServiceIfaceMockRecorder) ListResourceLimits(p interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) ListResourceLimits(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceLimits", reflect.TypeOf((*MockLimitServiceIface)(nil).ListResourceLimits), p) } @@ -133,7 +139,7 @@ func (m *MockLimitServiceIface) NewUpdateResourceCountParams(domainid string) *U } // NewUpdateResourceCountParams indicates an expected call of NewUpdateResourceCountParams. -func (mr *MockLimitServiceIfaceMockRecorder) NewUpdateResourceCountParams(domainid interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) NewUpdateResourceCountParams(domainid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateResourceCountParams", reflect.TypeOf((*MockLimitServiceIface)(nil).NewUpdateResourceCountParams), domainid) } @@ -147,7 +153,7 @@ func (m *MockLimitServiceIface) NewUpdateResourceLimitParams(resourcetype int) * } // NewUpdateResourceLimitParams indicates an expected call of NewUpdateResourceLimitParams. -func (mr *MockLimitServiceIfaceMockRecorder) NewUpdateResourceLimitParams(resourcetype interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) NewUpdateResourceLimitParams(resourcetype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateResourceLimitParams", reflect.TypeOf((*MockLimitServiceIface)(nil).NewUpdateResourceLimitParams), resourcetype) } @@ -162,7 +168,7 @@ func (m *MockLimitServiceIface) ResetApiLimit(p *ResetApiLimitParams) (*ResetApi } // ResetApiLimit indicates an expected call of ResetApiLimit. -func (mr *MockLimitServiceIfaceMockRecorder) ResetApiLimit(p interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) ResetApiLimit(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetApiLimit", reflect.TypeOf((*MockLimitServiceIface)(nil).ResetApiLimit), p) } @@ -177,7 +183,7 @@ func (m *MockLimitServiceIface) UpdateResourceCount(p *UpdateResourceCountParams } // UpdateResourceCount indicates an expected call of UpdateResourceCount. -func (mr *MockLimitServiceIfaceMockRecorder) UpdateResourceCount(p interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) UpdateResourceCount(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateResourceCount", reflect.TypeOf((*MockLimitServiceIface)(nil).UpdateResourceCount), p) } @@ -192,7 +198,7 @@ func (m *MockLimitServiceIface) UpdateResourceLimit(p *UpdateResourceLimitParams } // UpdateResourceLimit indicates an expected call of UpdateResourceLimit. -func (mr *MockLimitServiceIfaceMockRecorder) UpdateResourceLimit(p interface{}) *gomock.Call { +func (mr *MockLimitServiceIfaceMockRecorder) UpdateResourceLimit(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateResourceLimit", reflect.TypeOf((*MockLimitServiceIface)(nil).UpdateResourceLimit), p) } diff --git a/cloudstack/LoadBalancerService.go b/cloudstack/LoadBalancerService.go index 674a22af..cf06320c 100644 --- a/cloudstack/LoadBalancerService.go +++ b/cloudstack/LoadBalancerService.go @@ -28,16 +28,12 @@ import ( ) type LoadBalancerServiceIface interface { - AddNetscalerLoadBalancer(p *AddNetscalerLoadBalancerParams) (*AddNetscalerLoadBalancerResponse, error) - NewAddNetscalerLoadBalancerParams(networkdevicetype string, password string, physicalnetworkid string, url string, username string) *AddNetscalerLoadBalancerParams AssignCertToLoadBalancer(p *AssignCertToLoadBalancerParams) (*AssignCertToLoadBalancerResponse, error) NewAssignCertToLoadBalancerParams(certid string, lbruleid string) *AssignCertToLoadBalancerParams AssignToGlobalLoadBalancerRule(p *AssignToGlobalLoadBalancerRuleParams) (*AssignToGlobalLoadBalancerRuleResponse, error) NewAssignToGlobalLoadBalancerRuleParams(id string, loadbalancerrulelist []string) *AssignToGlobalLoadBalancerRuleParams AssignToLoadBalancerRule(p *AssignToLoadBalancerRuleParams) (*AssignToLoadBalancerRuleResponse, error) NewAssignToLoadBalancerRuleParams(id string) *AssignToLoadBalancerRuleParams - ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) - NewConfigureNetscalerLoadBalancerParams(lbdeviceid string) *ConfigureNetscalerLoadBalancerParams CreateGlobalLoadBalancerRule(p *CreateGlobalLoadBalancerRuleParams) (*CreateGlobalLoadBalancerRuleResponse, error) NewCreateGlobalLoadBalancerRuleParams(gslbdomainname string, gslbservicetype string, name string, regionid int) *CreateGlobalLoadBalancerRuleParams CreateLBHealthCheckPolicy(p *CreateLBHealthCheckPolicyParams) (*CreateLBHealthCheckPolicyResponse, error) @@ -58,10 +54,12 @@ type LoadBalancerServiceIface interface { NewDeleteLoadBalancerParams(id string) *DeleteLoadBalancerParams DeleteLoadBalancerRule(p *DeleteLoadBalancerRuleParams) (*DeleteLoadBalancerRuleResponse, error) NewDeleteLoadBalancerRuleParams(id string) *DeleteLoadBalancerRuleParams - DeleteNetscalerLoadBalancer(p *DeleteNetscalerLoadBalancerParams) (*DeleteNetscalerLoadBalancerResponse, error) - NewDeleteNetscalerLoadBalancerParams(lbdeviceid string) *DeleteNetscalerLoadBalancerParams + DeleteServicePackageOffering(p *DeleteServicePackageOfferingParams) (*DeleteServicePackageOfferingResponse, error) + NewDeleteServicePackageOfferingParams(id string) *DeleteServicePackageOfferingParams DeleteSslCert(p *DeleteSslCertParams) (*DeleteSslCertResponse, error) NewDeleteSslCertParams(id string) *DeleteSslCertParams + DeployNetscalerVpx(p *DeployNetscalerVpxParams) (*DeployNetscalerVpxResponse, error) + NewDeployNetscalerVpxParams(serviceofferingid string, templateid string, zoneid string) *DeployNetscalerVpxParams ListGlobalLoadBalancerRules(p *ListGlobalLoadBalancerRulesParams) (*ListGlobalLoadBalancerRulesResponse, error) NewListGlobalLoadBalancerRulesParams() *ListGlobalLoadBalancerRulesParams GetGlobalLoadBalancerRuleID(keyword string, opts ...OptionFunc) (string, int, error) @@ -86,8 +84,9 @@ type LoadBalancerServiceIface interface { GetLoadBalancerID(name string, opts ...OptionFunc) (string, int, error) GetLoadBalancerByName(name string, opts ...OptionFunc) (*LoadBalancer, int, error) GetLoadBalancerByID(id string, opts ...OptionFunc) (*LoadBalancer, int, error) - ListNetscalerLoadBalancers(p *ListNetscalerLoadBalancersParams) (*ListNetscalerLoadBalancersResponse, error) - NewListNetscalerLoadBalancersParams() *ListNetscalerLoadBalancersParams + ListRegisteredServicePackages(p *ListRegisteredServicePackagesParams) (*ListRegisteredServicePackagesResponse, error) + NewListRegisteredServicePackagesParams() *ListRegisteredServicePackagesParams + GetRegisteredServicePackageID(keyword string, opts ...OptionFunc) (string, int, error) ListSslCerts(p *ListSslCertsParams) (*ListSslCertsResponse, error) NewListSslCertsParams() *ListSslCertsParams RemoveCertFromLoadBalancer(p *RemoveCertFromLoadBalancerParams) (*RemoveCertFromLoadBalancerResponse, error) @@ -96,6 +95,8 @@ type LoadBalancerServiceIface interface { NewRemoveFromGlobalLoadBalancerRuleParams(id string, loadbalancerrulelist []string) *RemoveFromGlobalLoadBalancerRuleParams RemoveFromLoadBalancerRule(p *RemoveFromLoadBalancerRuleParams) (*RemoveFromLoadBalancerRuleResponse, error) NewRemoveFromLoadBalancerRuleParams(id string) *RemoveFromLoadBalancerRuleParams + StopNetScalerVpx(p *StopNetScalerVpxParams) (*StopNetScalerVpxResponse, error) + NewStopNetScalerVpxParams(id string) *StopNetScalerVpxParams UpdateGlobalLoadBalancerRule(p *UpdateGlobalLoadBalancerRuleParams) (*UpdateGlobalLoadBalancerRuleResponse, error) NewUpdateGlobalLoadBalancerRuleParams(id string) *UpdateGlobalLoadBalancerRuleParams UpdateLBHealthCheckPolicy(p *UpdateLBHealthCheckPolicyParams) (*UpdateLBHealthCheckPolicyResponse, error) @@ -110,304 +111,6 @@ type LoadBalancerServiceIface interface { NewUploadSslCertParams(certificate string, name string, privatekey string) *UploadSslCertParams } -type AddNetscalerLoadBalancerParams struct { - p map[string]interface{} -} - -func (p *AddNetscalerLoadBalancerParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["gslbprovider"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("gslbprovider", vv) - } - if v, found := p.p["gslbproviderprivateip"]; found { - u.Set("gslbproviderprivateip", v.(string)) - } - if v, found := p.p["gslbproviderpublicip"]; found { - u.Set("gslbproviderpublicip", v.(string)) - } - if v, found := p.p["isexclusivegslbprovider"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("isexclusivegslbprovider", vv) - } - if v, found := p.p["networkdevicetype"]; found { - u.Set("networkdevicetype", v.(string)) - } - if v, found := p.p["password"]; found { - u.Set("password", v.(string)) - } - if v, found := p.p["physicalnetworkid"]; found { - u.Set("physicalnetworkid", v.(string)) - } - if v, found := p.p["url"]; found { - u.Set("url", v.(string)) - } - if v, found := p.p["username"]; found { - u.Set("username", v.(string)) - } - return u -} - -func (p *AddNetscalerLoadBalancerParams) SetGslbprovider(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["gslbprovider"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetGslbprovider() { - if p.p != nil && p.p["gslbprovider"] != nil { - delete(p.p, "gslbprovider") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetGslbprovider() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["gslbprovider"].(bool) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetGslbproviderprivateip(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["gslbproviderprivateip"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetGslbproviderprivateip() { - if p.p != nil && p.p["gslbproviderprivateip"] != nil { - delete(p.p, "gslbproviderprivateip") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetGslbproviderprivateip() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["gslbproviderprivateip"].(string) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetGslbproviderpublicip(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["gslbproviderpublicip"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetGslbproviderpublicip() { - if p.p != nil && p.p["gslbproviderpublicip"] != nil { - delete(p.p, "gslbproviderpublicip") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetGslbproviderpublicip() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["gslbproviderpublicip"].(string) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetIsexclusivegslbprovider(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["isexclusivegslbprovider"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetIsexclusivegslbprovider() { - if p.p != nil && p.p["isexclusivegslbprovider"] != nil { - delete(p.p, "isexclusivegslbprovider") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetIsexclusivegslbprovider() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["isexclusivegslbprovider"].(bool) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetNetworkdevicetype(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["networkdevicetype"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetNetworkdevicetype() { - if p.p != nil && p.p["networkdevicetype"] != nil { - delete(p.p, "networkdevicetype") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetNetworkdevicetype() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["networkdevicetype"].(string) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetPassword(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["password"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetPassword() { - if p.p != nil && p.p["password"] != nil { - delete(p.p, "password") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetPassword() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["password"].(string) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetPhysicalnetworkid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["physicalnetworkid"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetPhysicalnetworkid() { - if p.p != nil && p.p["physicalnetworkid"] != nil { - delete(p.p, "physicalnetworkid") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetPhysicalnetworkid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["physicalnetworkid"].(string) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetUrl(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["url"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetUrl() { - if p.p != nil && p.p["url"] != nil { - delete(p.p, "url") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetUrl() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["url"].(string) - return value, ok -} - -func (p *AddNetscalerLoadBalancerParams) SetUsername(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["username"] = v -} - -func (p *AddNetscalerLoadBalancerParams) ResetUsername() { - if p.p != nil && p.p["username"] != nil { - delete(p.p, "username") - } -} - -func (p *AddNetscalerLoadBalancerParams) GetUsername() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["username"].(string) - return value, ok -} - -// You should always use this function to get a new AddNetscalerLoadBalancerParams instance, -// as then you are sure you have configured all required params -func (s *LoadBalancerService) NewAddNetscalerLoadBalancerParams(networkdevicetype string, password string, physicalnetworkid string, url string, username string) *AddNetscalerLoadBalancerParams { - p := &AddNetscalerLoadBalancerParams{} - p.p = make(map[string]interface{}) - p.p["networkdevicetype"] = networkdevicetype - p.p["password"] = password - p.p["physicalnetworkid"] = physicalnetworkid - p.p["url"] = url - p.p["username"] = username - return p -} - -// Adds a netscaler load balancer device -func (s *LoadBalancerService) AddNetscalerLoadBalancer(p *AddNetscalerLoadBalancerParams) (*AddNetscalerLoadBalancerResponse, error) { - resp, err := s.cs.newRequest("addNetscalerLoadBalancer", p.toURLValues()) - if err != nil { - return nil, err - } - - var r AddNetscalerLoadBalancerResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } - - b, err = getRawValue(b) - if err != nil { - return nil, err - } - - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } - } - - return &r, nil -} - -type AddNetscalerLoadBalancerResponse struct { - Gslbprovider bool `json:"gslbprovider"` - Gslbproviderprivateip string `json:"gslbproviderprivateip"` - Gslbproviderpublicip string `json:"gslbproviderpublicip"` - Ipaddress string `json:"ipaddress"` - Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Lbdevicecapacity int64 `json:"lbdevicecapacity"` - Lbdevicededicated bool `json:"lbdevicededicated"` - Lbdeviceid string `json:"lbdeviceid"` - Lbdevicename string `json:"lbdevicename"` - Lbdevicestate string `json:"lbdevicestate"` - Physicalnetworkid string `json:"physicalnetworkid"` - Podids []string `json:"podids"` - Privateinterface string `json:"privateinterface"` - Provider string `json:"provider"` - Publicinterface string `json:"publicinterface"` -} - type AssignCertToLoadBalancerParams struct { p map[string]interface{} } @@ -663,282 +366,100 @@ func (p *AssignToLoadBalancerRuleParams) toURLValues() url.Values { if v, found := p.p["id"]; found { u.Set("id", v.(string)) } - if v, found := p.p["virtualmachineids"]; found { - vv := strings.Join(v.([]string), ",") - u.Set("virtualmachineids", vv) - } - if v, found := p.p["vmidipmap"]; found { - m := v.(map[string]string) - for i, k := range getSortedKeysFromMap(m) { - u.Set(fmt.Sprintf("vmidipmap[%d].key", i), k) - u.Set(fmt.Sprintf("vmidipmap[%d].value", i), m[k]) - } - } - return u -} - -func (p *AssignToLoadBalancerRuleParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["id"] = v -} - -func (p *AssignToLoadBalancerRuleParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") - } -} - -func (p *AssignToLoadBalancerRuleParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["id"].(string) - return value, ok -} - -func (p *AssignToLoadBalancerRuleParams) SetVirtualmachineids(v []string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["virtualmachineids"] = v -} - -func (p *AssignToLoadBalancerRuleParams) ResetVirtualmachineids() { - if p.p != nil && p.p["virtualmachineids"] != nil { - delete(p.p, "virtualmachineids") - } -} - -func (p *AssignToLoadBalancerRuleParams) GetVirtualmachineids() ([]string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["virtualmachineids"].([]string) - return value, ok -} - -func (p *AssignToLoadBalancerRuleParams) SetVmidipmap(v map[string]string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["vmidipmap"] = v -} - -func (p *AssignToLoadBalancerRuleParams) ResetVmidipmap() { - if p.p != nil && p.p["vmidipmap"] != nil { - delete(p.p, "vmidipmap") - } -} - -func (p *AssignToLoadBalancerRuleParams) GetVmidipmap() (map[string]string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["vmidipmap"].(map[string]string) - return value, ok -} - -// You should always use this function to get a new AssignToLoadBalancerRuleParams instance, -// as then you are sure you have configured all required params -func (s *LoadBalancerService) NewAssignToLoadBalancerRuleParams(id string) *AssignToLoadBalancerRuleParams { - p := &AssignToLoadBalancerRuleParams{} - p.p = make(map[string]interface{}) - p.p["id"] = id - return p -} - -// Assigns virtual machine or a list of virtual machines to a load balancer rule. -func (s *LoadBalancerService) AssignToLoadBalancerRule(p *AssignToLoadBalancerRuleParams) (*AssignToLoadBalancerRuleResponse, error) { - resp, err := s.cs.newRequest("assignToLoadBalancerRule", p.toURLValues()) - if err != nil { - return nil, err - } - - var r AssignToLoadBalancerRuleResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } - - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } - } - - return &r, nil -} - -type AssignToLoadBalancerRuleResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` -} - -type ConfigureNetscalerLoadBalancerParams struct { - p map[string]interface{} -} - -func (p *ConfigureNetscalerLoadBalancerParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["inline"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("inline", vv) - } - if v, found := p.p["lbdevicecapacity"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("lbdevicecapacity", vv) - } - if v, found := p.p["lbdevicededicated"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("lbdevicededicated", vv) - } - if v, found := p.p["lbdeviceid"]; found { - u.Set("lbdeviceid", v.(string)) - } - if v, found := p.p["podids"]; found { - vv := strings.Join(v.([]string), ",") - u.Set("podids", vv) - } - return u -} - -func (p *ConfigureNetscalerLoadBalancerParams) SetInline(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["inline"] = v -} - -func (p *ConfigureNetscalerLoadBalancerParams) ResetInline() { - if p.p != nil && p.p["inline"] != nil { - delete(p.p, "inline") - } -} - -func (p *ConfigureNetscalerLoadBalancerParams) GetInline() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["inline"].(bool) - return value, ok -} - -func (p *ConfigureNetscalerLoadBalancerParams) SetLbdevicecapacity(v int64) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["lbdevicecapacity"] = v -} - -func (p *ConfigureNetscalerLoadBalancerParams) ResetLbdevicecapacity() { - if p.p != nil && p.p["lbdevicecapacity"] != nil { - delete(p.p, "lbdevicecapacity") + if v, found := p.p["virtualmachineids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("virtualmachineids", vv) } -} - -func (p *ConfigureNetscalerLoadBalancerParams) GetLbdevicecapacity() (int64, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["vmidipmap"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("vmidipmap[%d].key", i), k) + u.Set(fmt.Sprintf("vmidipmap[%d].value", i), m[k]) + } } - value, ok := p.p["lbdevicecapacity"].(int64) - return value, ok + return u } -func (p *ConfigureNetscalerLoadBalancerParams) SetLbdevicededicated(v bool) { +func (p *AssignToLoadBalancerRuleParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["lbdevicededicated"] = v + p.p["id"] = v } -func (p *ConfigureNetscalerLoadBalancerParams) ResetLbdevicededicated() { - if p.p != nil && p.p["lbdevicededicated"] != nil { - delete(p.p, "lbdevicededicated") +func (p *AssignToLoadBalancerRuleParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *ConfigureNetscalerLoadBalancerParams) GetLbdevicededicated() (bool, bool) { +func (p *AssignToLoadBalancerRuleParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["lbdevicededicated"].(bool) + value, ok := p.p["id"].(string) return value, ok } -func (p *ConfigureNetscalerLoadBalancerParams) SetLbdeviceid(v string) { +func (p *AssignToLoadBalancerRuleParams) SetVirtualmachineids(v []string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["lbdeviceid"] = v + p.p["virtualmachineids"] = v } -func (p *ConfigureNetscalerLoadBalancerParams) ResetLbdeviceid() { - if p.p != nil && p.p["lbdeviceid"] != nil { - delete(p.p, "lbdeviceid") +func (p *AssignToLoadBalancerRuleParams) ResetVirtualmachineids() { + if p.p != nil && p.p["virtualmachineids"] != nil { + delete(p.p, "virtualmachineids") } } -func (p *ConfigureNetscalerLoadBalancerParams) GetLbdeviceid() (string, bool) { +func (p *AssignToLoadBalancerRuleParams) GetVirtualmachineids() ([]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["lbdeviceid"].(string) + value, ok := p.p["virtualmachineids"].([]string) return value, ok } -func (p *ConfigureNetscalerLoadBalancerParams) SetPodids(v []string) { +func (p *AssignToLoadBalancerRuleParams) SetVmidipmap(v map[string]string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["podids"] = v + p.p["vmidipmap"] = v } -func (p *ConfigureNetscalerLoadBalancerParams) ResetPodids() { - if p.p != nil && p.p["podids"] != nil { - delete(p.p, "podids") +func (p *AssignToLoadBalancerRuleParams) ResetVmidipmap() { + if p.p != nil && p.p["vmidipmap"] != nil { + delete(p.p, "vmidipmap") } } -func (p *ConfigureNetscalerLoadBalancerParams) GetPodids() ([]string, bool) { +func (p *AssignToLoadBalancerRuleParams) GetVmidipmap() (map[string]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["podids"].([]string) + value, ok := p.p["vmidipmap"].(map[string]string) return value, ok } -// You should always use this function to get a new ConfigureNetscalerLoadBalancerParams instance, +// You should always use this function to get a new AssignToLoadBalancerRuleParams instance, // as then you are sure you have configured all required params -func (s *LoadBalancerService) NewConfigureNetscalerLoadBalancerParams(lbdeviceid string) *ConfigureNetscalerLoadBalancerParams { - p := &ConfigureNetscalerLoadBalancerParams{} +func (s *LoadBalancerService) NewAssignToLoadBalancerRuleParams(id string) *AssignToLoadBalancerRuleParams { + p := &AssignToLoadBalancerRuleParams{} p.p = make(map[string]interface{}) - p.p["lbdeviceid"] = lbdeviceid + p.p["id"] = id return p } -// configures a netscaler load balancer device -func (s *LoadBalancerService) ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) { - resp, err := s.cs.newRequest("configureNetscalerLoadBalancer", p.toURLValues()) +// Assigns virtual machine or a list of virtual machines to a load balancer rule. +func (s *LoadBalancerService) AssignToLoadBalancerRule(p *AssignToLoadBalancerRuleParams) (*AssignToLoadBalancerRuleResponse, error) { + resp, err := s.cs.newRequest("assignToLoadBalancerRule", p.toURLValues()) if err != nil { return nil, err } - var r NetscalerLoadBalancerResponse + var r AssignToLoadBalancerRuleResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -953,11 +474,6 @@ func (s *LoadBalancerService) ConfigureNetscalerLoadBalancer(p *ConfigureNetscal return nil, err } - b, err = getRawValue(b) - if err != nil { - return nil, err - } - if err := json.Unmarshal(b, &r); err != nil { return nil, err } @@ -966,24 +482,11 @@ func (s *LoadBalancerService) ConfigureNetscalerLoadBalancer(p *ConfigureNetscal return &r, nil } -type NetscalerLoadBalancerResponse struct { - Gslbprovider bool `json:"gslbprovider"` - Gslbproviderprivateip string `json:"gslbproviderprivateip"` - Gslbproviderpublicip string `json:"gslbproviderpublicip"` - Ipaddress string `json:"ipaddress"` - Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Lbdevicecapacity int64 `json:"lbdevicecapacity"` - Lbdevicededicated bool `json:"lbdevicededicated"` - Lbdeviceid string `json:"lbdeviceid"` - Lbdevicename string `json:"lbdevicename"` - Lbdevicestate string `json:"lbdevicestate"` - Physicalnetworkid string `json:"physicalnetworkid"` - Podids []string `json:"podids"` - Privateinterface string `json:"privateinterface"` - Provider string `json:"provider"` - Publicinterface string `json:"publicinterface"` +type AssignToLoadBalancerRuleResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` } type CreateGlobalLoadBalancerRuleParams struct { @@ -2991,180 +2494,366 @@ type DeleteLoadBalancerRuleResponse struct { Success bool `json:"success"` } -type DeleteNetscalerLoadBalancerParams struct { +type DeleteServicePackageOfferingParams struct { p map[string]interface{} } -func (p *DeleteNetscalerLoadBalancerParams) toURLValues() url.Values { +func (p *DeleteServicePackageOfferingParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["lbdeviceid"]; found { - u.Set("lbdeviceid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } return u } -func (p *DeleteNetscalerLoadBalancerParams) SetLbdeviceid(v string) { +func (p *DeleteServicePackageOfferingParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["lbdeviceid"] = v + p.p["id"] = v } -func (p *DeleteNetscalerLoadBalancerParams) ResetLbdeviceid() { - if p.p != nil && p.p["lbdeviceid"] != nil { - delete(p.p, "lbdeviceid") +func (p *DeleteServicePackageOfferingParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *DeleteNetscalerLoadBalancerParams) GetLbdeviceid() (string, bool) { +func (p *DeleteServicePackageOfferingParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["lbdeviceid"].(string) + value, ok := p.p["id"].(string) return value, ok } -// You should always use this function to get a new DeleteNetscalerLoadBalancerParams instance, +// You should always use this function to get a new DeleteServicePackageOfferingParams instance, // as then you are sure you have configured all required params -func (s *LoadBalancerService) NewDeleteNetscalerLoadBalancerParams(lbdeviceid string) *DeleteNetscalerLoadBalancerParams { - p := &DeleteNetscalerLoadBalancerParams{} +func (s *LoadBalancerService) NewDeleteServicePackageOfferingParams(id string) *DeleteServicePackageOfferingParams { + p := &DeleteServicePackageOfferingParams{} p.p = make(map[string]interface{}) - p.p["lbdeviceid"] = lbdeviceid + p.p["id"] = id return p } -// delete a netscaler load balancer device -func (s *LoadBalancerService) DeleteNetscalerLoadBalancer(p *DeleteNetscalerLoadBalancerParams) (*DeleteNetscalerLoadBalancerResponse, error) { - resp, err := s.cs.newRequest("deleteNetscalerLoadBalancer", p.toURLValues()) +// Delete Service Package +func (s *LoadBalancerService) DeleteServicePackageOffering(p *DeleteServicePackageOfferingParams) (*DeleteServicePackageOfferingResponse, error) { + resp, err := s.cs.newRequest("deleteServicePackageOffering", p.toURLValues()) if err != nil { return nil, err } - var r DeleteNetscalerLoadBalancerResponse + var r DeleteServicePackageOfferingResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + return &r, nil +} + +type DeleteServicePackageOfferingResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DeleteServicePackageOfferingResponse) 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 { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err + return err } + } - if err := json.Unmarshal(b, &r); err != nil { - return nil, 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 DeleteServicePackageOfferingResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type DeleteSslCertParams struct { + p map[string]interface{} +} + +func (p *DeleteSslCertParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteSslCertParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteSslCertParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteSslCertParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteSslCertParams instance, +// as then you are sure you have configured all required params +func (s *LoadBalancerService) NewDeleteSslCertParams(id string) *DeleteSslCertParams { + p := &DeleteSslCertParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Delete a certificate to CloudStack +func (s *LoadBalancerService) DeleteSslCert(p *DeleteSslCertParams) (*DeleteSslCertResponse, error) { + resp, err := s.cs.newRequest("deleteSslCert", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteSslCertResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + return &r, nil } -type DeleteNetscalerLoadBalancerResponse struct { +type DeleteSslCertResponse struct { Displaytext string `json:"displaytext"` JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` Success bool `json:"success"` } -type DeleteSslCertParams struct { +func (r *DeleteSslCertResponse) 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 DeleteSslCertResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type DeployNetscalerVpxParams struct { p map[string]interface{} } -func (p *DeleteSslCertParams) toURLValues() url.Values { - u := url.Values{} +func (p *DeployNetscalerVpxParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + if v, found := p.p["templateid"]; found { + u.Set("templateid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *DeployNetscalerVpxParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *DeployNetscalerVpxParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *DeployNetscalerVpxParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *DeployNetscalerVpxParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v +} + +func (p *DeployNetscalerVpxParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") + } +} + +func (p *DeployNetscalerVpxParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +func (p *DeployNetscalerVpxParams) SetTemplateid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templateid"] = v +} + +func (p *DeployNetscalerVpxParams) ResetTemplateid() { + if p.p != nil && p.p["templateid"] != nil { + delete(p.p, "templateid") + } +} + +func (p *DeployNetscalerVpxParams) GetTemplateid() (string, bool) { if p.p == nil { - return u - } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["templateid"].(string) + return value, ok } -func (p *DeleteSslCertParams) SetId(v string) { +func (p *DeployNetscalerVpxParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["zoneid"] = v } -func (p *DeleteSslCertParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *DeployNetscalerVpxParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") } } -func (p *DeleteSslCertParams) GetId() (string, bool) { +func (p *DeployNetscalerVpxParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["zoneid"].(string) return value, ok } -// You should always use this function to get a new DeleteSslCertParams instance, +// You should always use this function to get a new DeployNetscalerVpxParams instance, // as then you are sure you have configured all required params -func (s *LoadBalancerService) NewDeleteSslCertParams(id string) *DeleteSslCertParams { - p := &DeleteSslCertParams{} +func (s *LoadBalancerService) NewDeployNetscalerVpxParams(serviceofferingid string, templateid string, zoneid string) *DeployNetscalerVpxParams { + p := &DeployNetscalerVpxParams{} p.p = make(map[string]interface{}) - p.p["id"] = id + p.p["serviceofferingid"] = serviceofferingid + p.p["templateid"] = templateid + p.p["zoneid"] = zoneid return p } -// Delete a certificate to CloudStack -func (s *LoadBalancerService) DeleteSslCert(p *DeleteSslCertParams) (*DeleteSslCertResponse, error) { - resp, err := s.cs.newRequest("deleteSslCert", p.toURLValues()) +// Creates new NS Vpx +func (s *LoadBalancerService) DeployNetscalerVpx(p *DeployNetscalerVpxParams) (*DeployNetscalerVpxResponse, error) { + resp, err := s.cs.newRequest("deployNetscalerVpx", p.toURLValues()) if err != nil { return nil, err } - var r DeleteSslCertResponse + var r DeployNetscalerVpxResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } - return &r, nil -} - -type DeleteSslCertResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` -} - -func (r *DeleteSslCertResponse) 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 we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) if err != nil { - return err + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err } - } - if ostypeid, ok := m["ostypeid"].(float64); ok { - m["ostypeid"] = strconv.Itoa(int(ostypeid)) - b, err = json.Marshal(m) + b, err = getRawValue(b) if err != nil { - return err + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err } } - type alias DeleteSslCertResponse - return json.Unmarshal(b, (*alias)(r)) + return &r, nil +} + +type DeployNetscalerVpxResponse struct { + Gslbprovider bool `json:"gslbprovider"` + Gslbproviderprivateip string `json:"gslbproviderprivateip"` + Gslbproviderpublicip string `json:"gslbproviderpublicip"` + Ipaddress string `json:"ipaddress"` + Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lbdevicecapacity int64 `json:"lbdevicecapacity"` + Lbdevicededicated bool `json:"lbdevicededicated"` + Lbdeviceid string `json:"lbdeviceid"` + Lbdevicename string `json:"lbdevicename"` + Lbdevicestate string `json:"lbdevicestate"` + Physicalnetworkid string `json:"physicalnetworkid"` + Podids []string `json:"podids"` + Privateinterface string `json:"privateinterface"` + Provider string `json:"provider"` + Publicinterface string `json:"publicinterface"` } type ListGlobalLoadBalancerRulesParams struct { @@ -5419,11 +5108,11 @@ type LoadBalancerLoadbalancerinstance struct { State string `json:"state"` } -type ListNetscalerLoadBalancersParams struct { +type ListRegisteredServicePackagesParams struct { p map[string]interface{} } -func (p *ListNetscalerLoadBalancersParams) toURLValues() url.Values { +func (p *ListRegisteredServicePackagesParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -5431,9 +5120,6 @@ func (p *ListNetscalerLoadBalancersParams) toURLValues() url.Values { if v, found := p.p["keyword"]; found { u.Set("keyword", v.(string)) } - if v, found := p.p["lbdeviceid"]; found { - u.Set("lbdeviceid", v.(string)) - } if v, found := p.p["page"]; found { vv := strconv.Itoa(v.(int)) u.Set("page", vv) @@ -5442,26 +5128,23 @@ func (p *ListNetscalerLoadBalancersParams) toURLValues() url.Values { vv := strconv.Itoa(v.(int)) u.Set("pagesize", vv) } - if v, found := p.p["physicalnetworkid"]; found { - u.Set("physicalnetworkid", v.(string)) - } return u } -func (p *ListNetscalerLoadBalancersParams) SetKeyword(v string) { +func (p *ListRegisteredServicePackagesParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListNetscalerLoadBalancersParams) ResetKeyword() { +func (p *ListRegisteredServicePackagesParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListNetscalerLoadBalancersParams) GetKeyword() (string, bool) { +func (p *ListRegisteredServicePackagesParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -5469,41 +5152,20 @@ func (p *ListNetscalerLoadBalancersParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListNetscalerLoadBalancersParams) SetLbdeviceid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["lbdeviceid"] = v -} - -func (p *ListNetscalerLoadBalancersParams) ResetLbdeviceid() { - if p.p != nil && p.p["lbdeviceid"] != nil { - delete(p.p, "lbdeviceid") - } -} - -func (p *ListNetscalerLoadBalancersParams) GetLbdeviceid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["lbdeviceid"].(string) - return value, ok -} - -func (p *ListNetscalerLoadBalancersParams) SetPage(v int) { +func (p *ListRegisteredServicePackagesParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["page"] = v } -func (p *ListNetscalerLoadBalancersParams) ResetPage() { +func (p *ListRegisteredServicePackagesParams) ResetPage() { if p.p != nil && p.p["page"] != nil { delete(p.p, "page") } } -func (p *ListNetscalerLoadBalancersParams) GetPage() (int, bool) { +func (p *ListRegisteredServicePackagesParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -5511,20 +5173,20 @@ func (p *ListNetscalerLoadBalancersParams) GetPage() (int, bool) { return value, ok } -func (p *ListNetscalerLoadBalancersParams) SetPagesize(v int) { +func (p *ListRegisteredServicePackagesParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["pagesize"] = v } -func (p *ListNetscalerLoadBalancersParams) ResetPagesize() { +func (p *ListRegisteredServicePackagesParams) ResetPagesize() { if p.p != nil && p.p["pagesize"] != nil { delete(p.p, "pagesize") } } -func (p *ListNetscalerLoadBalancersParams) GetPagesize() (int, bool) { +func (p *ListRegisteredServicePackagesParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -5532,43 +5194,58 @@ func (p *ListNetscalerLoadBalancersParams) GetPagesize() (int, bool) { return value, ok } -func (p *ListNetscalerLoadBalancersParams) SetPhysicalnetworkid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["physicalnetworkid"] = v +// You should always use this function to get a new ListRegisteredServicePackagesParams instance, +// as then you are sure you have configured all required params +func (s *LoadBalancerService) NewListRegisteredServicePackagesParams() *ListRegisteredServicePackagesParams { + p := &ListRegisteredServicePackagesParams{} + p.p = make(map[string]interface{}) + return p } -func (p *ListNetscalerLoadBalancersParams) ResetPhysicalnetworkid() { - if p.p != nil && p.p["physicalnetworkid"] != nil { - delete(p.p, "physicalnetworkid") +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *LoadBalancerService) GetRegisteredServicePackageID(keyword string, opts ...OptionFunc) (string, int, error) { + p := &ListRegisteredServicePackagesParams{} + p.p = make(map[string]interface{}) + + p.p["keyword"] = keyword + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return "", -1, err + } } -} -func (p *ListNetscalerLoadBalancersParams) GetPhysicalnetworkid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + l, err := s.ListRegisteredServicePackages(p) + if err != nil { + return "", -1, err } - value, ok := p.p["physicalnetworkid"].(string) - return value, ok -} -// You should always use this function to get a new ListNetscalerLoadBalancersParams instance, -// as then you are sure you have configured all required params -func (s *LoadBalancerService) NewListNetscalerLoadBalancersParams() *ListNetscalerLoadBalancersParams { - p := &ListNetscalerLoadBalancersParams{} - p.p = make(map[string]interface{}) - return p + if l.Count == 0 { + return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + } + + if l.Count == 1 { + return l.RegisteredServicePackages[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.RegisteredServicePackages { + if v.Name == keyword { + return v.Id, l.Count, nil + } + } + } + return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) } -// lists netscaler load balancer devices -func (s *LoadBalancerService) ListNetscalerLoadBalancers(p *ListNetscalerLoadBalancersParams) (*ListNetscalerLoadBalancersResponse, error) { - resp, err := s.cs.newRequest("listNetscalerLoadBalancers", p.toURLValues()) +// lists registered service packages +func (s *LoadBalancerService) ListRegisteredServicePackages(p *ListRegisteredServicePackagesParams) (*ListRegisteredServicePackagesResponse, error) { + resp, err := s.cs.newRequest("listRegisteredServicePackages", p.toURLValues()) if err != nil { return nil, err } - var r ListNetscalerLoadBalancersResponse + var r ListRegisteredServicePackagesResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -5576,29 +5253,17 @@ func (s *LoadBalancerService) ListNetscalerLoadBalancers(p *ListNetscalerLoadBal return &r, nil } -type ListNetscalerLoadBalancersResponse struct { - Count int `json:"count"` - NetscalerLoadBalancers []*NetscalerLoadBalancer `json:"netscalerloadbalancer"` +type ListRegisteredServicePackagesResponse struct { + Count int `json:"count"` + RegisteredServicePackages []*RegisteredServicePackage `json:"registeredservicepackage"` } -type NetscalerLoadBalancer struct { - Gslbprovider bool `json:"gslbprovider"` - Gslbproviderprivateip string `json:"gslbproviderprivateip"` - Gslbproviderpublicip string `json:"gslbproviderpublicip"` - Ipaddress string `json:"ipaddress"` - Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Lbdevicecapacity int64 `json:"lbdevicecapacity"` - Lbdevicededicated bool `json:"lbdevicededicated"` - Lbdeviceid string `json:"lbdeviceid"` - Lbdevicename string `json:"lbdevicename"` - Lbdevicestate string `json:"lbdevicestate"` - Physicalnetworkid string `json:"physicalnetworkid"` - Podids []string `json:"podids"` - Privateinterface string `json:"privateinterface"` - Provider string `json:"provider"` - Publicinterface string `json:"publicinterface"` +type RegisteredServicePackage struct { + Description string `json:"description"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` } type ListSslCertsParams struct { @@ -6078,6 +5743,178 @@ type RemoveFromLoadBalancerRuleResponse struct { Success bool `json:"success"` } +type StopNetScalerVpxParams struct { + p map[string]interface{} +} + +func (p *StopNetScalerVpxParams) toURLValues() url.Values { + u := 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 *StopNetScalerVpxParams) SetForced(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forced"] = v +} + +func (p *StopNetScalerVpxParams) ResetForced() { + if p.p != nil && p.p["forced"] != nil { + delete(p.p, "forced") + } +} + +func (p *StopNetScalerVpxParams) GetForced() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forced"].(bool) + return value, ok +} + +func (p *StopNetScalerVpxParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *StopNetScalerVpxParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *StopNetScalerVpxParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new StopNetScalerVpxParams instance, +// as then you are sure you have configured all required params +func (s *LoadBalancerService) NewStopNetScalerVpxParams(id string) *StopNetScalerVpxParams { + p := &StopNetScalerVpxParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Stops a NetScalervm. +func (s *LoadBalancerService) StopNetScalerVpx(p *StopNetScalerVpxParams) (*StopNetScalerVpxResponse, error) { + resp, err := s.cs.newRequest("stopNetScalerVpx", p.toURLValues()) + if err != nil { + return nil, err + } + + var r StopNetScalerVpxResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type StopNetScalerVpxResponse struct { + Account string `json:"account"` + Created string `json:"created"` + Dns1 string `json:"dns1"` + Dns2 string `json:"dns2"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Gateway string `json:"gateway"` + Guestipaddress string `json:"guestipaddress"` + Guestmacaddress string `json:"guestmacaddress"` + Guestnetmask string `json:"guestnetmask"` + Guestnetworkid string `json:"guestnetworkid"` + Guestnetworkname string `json:"guestnetworkname"` + Hasannotations bool `json:"hasannotations"` + Healthcheckresults []StopNetScalerVpxResponseHealthcheckresults `json:"healthcheckresults"` + Healthchecksfailed bool `json:"healthchecksfailed"` + Hostcontrolstate string `json:"hostcontrolstate"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Ip6dns1 string `json:"ip6dns1"` + Ip6dns2 string `json:"ip6dns2"` + Isredundantrouter bool `json:"isredundantrouter"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Linklocalip string `json:"linklocalip"` + Linklocalmacaddress string `json:"linklocalmacaddress"` + Linklocalnetmask string `json:"linklocalnetmask"` + Linklocalnetworkid string `json:"linklocalnetworkid"` + Name string `json:"name"` + Networkdomain string `json:"networkdomain"` + Nic []Nic `json:"nic"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Publicip string `json:"publicip"` + Publicmacaddress string `json:"publicmacaddress"` + Publicnetmask string `json:"publicnetmask"` + Publicnetworkid string `json:"publicnetworkid"` + Redundantstate string `json:"redundantstate"` + Requiresupgrade bool `json:"requiresupgrade"` + Role string `json:"role"` + Scriptsversion string `json:"scriptsversion"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Softwareversion string `json:"softwareversion"` + State string `json:"state"` + Templateid string `json:"templateid"` + Templatename string `json:"templatename"` + Version string `json:"version"` + Vpcid string `json:"vpcid"` + Vpcname string `json:"vpcname"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type StopNetScalerVpxResponseHealthcheckresults struct { + Checkname string `json:"checkname"` + Checktype string `json:"checktype"` + Details string `json:"details"` + Lastupdated string `json:"lastupdated"` + Success bool `json:"success"` +} + type UpdateGlobalLoadBalancerRuleParams struct { p map[string]interface{} } diff --git a/cloudstack/LoadBalancerService_mock.go b/cloudstack/LoadBalancerService_mock.go index 1dcf62b7..a611686d 100644 --- a/cloudstack/LoadBalancerService_mock.go +++ b/cloudstack/LoadBalancerService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/LoadBalancerService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/LoadBalancerService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/LoadBalancerService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockLoadBalancerServiceIface is a mock of LoadBalancerServiceIface interface. type MockLoadBalancerServiceIface struct { ctrl *gomock.Controller recorder *MockLoadBalancerServiceIfaceMockRecorder + isgomock struct{} } // MockLoadBalancerServiceIfaceMockRecorder is the mock recorder for MockLoadBalancerServiceIface. @@ -52,21 +58,6 @@ func (m *MockLoadBalancerServiceIface) EXPECT() *MockLoadBalancerServiceIfaceMoc return m.recorder } -// AddNetscalerLoadBalancer mocks base method. -func (m *MockLoadBalancerServiceIface) AddNetscalerLoadBalancer(p *AddNetscalerLoadBalancerParams) (*AddNetscalerLoadBalancerResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddNetscalerLoadBalancer", p) - ret0, _ := ret[0].(*AddNetscalerLoadBalancerResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AddNetscalerLoadBalancer indicates an expected call of AddNetscalerLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) AddNetscalerLoadBalancer(p interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetscalerLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).AddNetscalerLoadBalancer), p) -} - // AssignCertToLoadBalancer mocks base method. func (m *MockLoadBalancerServiceIface) AssignCertToLoadBalancer(p *AssignCertToLoadBalancerParams) (*AssignCertToLoadBalancerResponse, error) { m.ctrl.T.Helper() @@ -77,7 +68,7 @@ func (m *MockLoadBalancerServiceIface) AssignCertToLoadBalancer(p *AssignCertToL } // AssignCertToLoadBalancer indicates an expected call of AssignCertToLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) AssignCertToLoadBalancer(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) AssignCertToLoadBalancer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignCertToLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).AssignCertToLoadBalancer), p) } @@ -92,7 +83,7 @@ func (m *MockLoadBalancerServiceIface) AssignToGlobalLoadBalancerRule(p *AssignT } // AssignToGlobalLoadBalancerRule indicates an expected call of AssignToGlobalLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) AssignToGlobalLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) AssignToGlobalLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignToGlobalLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).AssignToGlobalLoadBalancerRule), p) } @@ -107,26 +98,11 @@ func (m *MockLoadBalancerServiceIface) AssignToLoadBalancerRule(p *AssignToLoadB } // AssignToLoadBalancerRule indicates an expected call of AssignToLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) AssignToLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) AssignToLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignToLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).AssignToLoadBalancerRule), p) } -// ConfigureNetscalerLoadBalancer mocks base method. -func (m *MockLoadBalancerServiceIface) ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ConfigureNetscalerLoadBalancer", p) - ret0, _ := ret[0].(*NetscalerLoadBalancerResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ConfigureNetscalerLoadBalancer indicates an expected call of ConfigureNetscalerLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ConfigureNetscalerLoadBalancer(p interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureNetscalerLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ConfigureNetscalerLoadBalancer), p) -} - // CreateGlobalLoadBalancerRule mocks base method. func (m *MockLoadBalancerServiceIface) CreateGlobalLoadBalancerRule(p *CreateGlobalLoadBalancerRuleParams) (*CreateGlobalLoadBalancerRuleResponse, error) { m.ctrl.T.Helper() @@ -137,7 +113,7 @@ func (m *MockLoadBalancerServiceIface) CreateGlobalLoadBalancerRule(p *CreateGlo } // CreateGlobalLoadBalancerRule indicates an expected call of CreateGlobalLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateGlobalLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateGlobalLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateGlobalLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).CreateGlobalLoadBalancerRule), p) } @@ -152,7 +128,7 @@ func (m *MockLoadBalancerServiceIface) CreateLBHealthCheckPolicy(p *CreateLBHeal } // CreateLBHealthCheckPolicy indicates an expected call of CreateLBHealthCheckPolicy. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLBHealthCheckPolicy(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLBHealthCheckPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLBHealthCheckPolicy", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).CreateLBHealthCheckPolicy), p) } @@ -167,7 +143,7 @@ func (m *MockLoadBalancerServiceIface) CreateLBStickinessPolicy(p *CreateLBStick } // CreateLBStickinessPolicy indicates an expected call of CreateLBStickinessPolicy. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLBStickinessPolicy(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLBStickinessPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLBStickinessPolicy", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).CreateLBStickinessPolicy), p) } @@ -182,7 +158,7 @@ func (m *MockLoadBalancerServiceIface) CreateLoadBalancer(p *CreateLoadBalancerP } // CreateLoadBalancer indicates an expected call of CreateLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLoadBalancer(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLoadBalancer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).CreateLoadBalancer), p) } @@ -197,7 +173,7 @@ func (m *MockLoadBalancerServiceIface) CreateLoadBalancerRule(p *CreateLoadBalan } // CreateLoadBalancerRule indicates an expected call of CreateLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) CreateLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).CreateLoadBalancerRule), p) } @@ -212,7 +188,7 @@ func (m *MockLoadBalancerServiceIface) DeleteGlobalLoadBalancerRule(p *DeleteGlo } // DeleteGlobalLoadBalancerRule indicates an expected call of DeleteGlobalLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteGlobalLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteGlobalLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGlobalLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteGlobalLoadBalancerRule), p) } @@ -227,7 +203,7 @@ func (m *MockLoadBalancerServiceIface) DeleteLBHealthCheckPolicy(p *DeleteLBHeal } // DeleteLBHealthCheckPolicy indicates an expected call of DeleteLBHealthCheckPolicy. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLBHealthCheckPolicy(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLBHealthCheckPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLBHealthCheckPolicy", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteLBHealthCheckPolicy), p) } @@ -242,7 +218,7 @@ func (m *MockLoadBalancerServiceIface) DeleteLBStickinessPolicy(p *DeleteLBStick } // DeleteLBStickinessPolicy indicates an expected call of DeleteLBStickinessPolicy. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLBStickinessPolicy(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLBStickinessPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLBStickinessPolicy", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteLBStickinessPolicy), p) } @@ -257,7 +233,7 @@ func (m *MockLoadBalancerServiceIface) DeleteLoadBalancer(p *DeleteLoadBalancerP } // DeleteLoadBalancer indicates an expected call of DeleteLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLoadBalancer(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLoadBalancer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteLoadBalancer), p) } @@ -272,24 +248,24 @@ func (m *MockLoadBalancerServiceIface) DeleteLoadBalancerRule(p *DeleteLoadBalan } // DeleteLoadBalancerRule indicates an expected call of DeleteLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteLoadBalancerRule), p) } -// DeleteNetscalerLoadBalancer mocks base method. -func (m *MockLoadBalancerServiceIface) DeleteNetscalerLoadBalancer(p *DeleteNetscalerLoadBalancerParams) (*DeleteNetscalerLoadBalancerResponse, error) { +// DeleteServicePackageOffering mocks base method. +func (m *MockLoadBalancerServiceIface) DeleteServicePackageOffering(p *DeleteServicePackageOfferingParams) (*DeleteServicePackageOfferingResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNetscalerLoadBalancer", p) - ret0, _ := ret[0].(*DeleteNetscalerLoadBalancerResponse) + ret := m.ctrl.Call(m, "DeleteServicePackageOffering", p) + ret0, _ := ret[0].(*DeleteServicePackageOfferingResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// DeleteNetscalerLoadBalancer indicates an expected call of DeleteNetscalerLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteNetscalerLoadBalancer(p interface{}) *gomock.Call { +// DeleteServicePackageOffering indicates an expected call of DeleteServicePackageOffering. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteServicePackageOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetscalerLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteNetscalerLoadBalancer), p) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServicePackageOffering", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteServicePackageOffering), p) } // DeleteSslCert mocks base method. @@ -302,15 +278,30 @@ func (m *MockLoadBalancerServiceIface) DeleteSslCert(p *DeleteSslCertParams) (*D } // DeleteSslCert indicates an expected call of DeleteSslCert. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteSslCert(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeleteSslCert(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSslCert", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeleteSslCert), p) } +// DeployNetscalerVpx mocks base method. +func (m *MockLoadBalancerServiceIface) DeployNetscalerVpx(p *DeployNetscalerVpxParams) (*DeployNetscalerVpxResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeployNetscalerVpx", p) + ret0, _ := ret[0].(*DeployNetscalerVpxResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeployNetscalerVpx indicates an expected call of DeployNetscalerVpx. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) DeployNetscalerVpx(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeployNetscalerVpx", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).DeployNetscalerVpx), p) +} + // GetGlobalLoadBalancerRuleByID mocks base method. func (m *MockLoadBalancerServiceIface) GetGlobalLoadBalancerRuleByID(id string, opts ...OptionFunc) (*GlobalLoadBalancerRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -322,16 +313,16 @@ func (m *MockLoadBalancerServiceIface) GetGlobalLoadBalancerRuleByID(id string, } // GetGlobalLoadBalancerRuleByID indicates an expected call of GetGlobalLoadBalancerRuleByID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetGlobalLoadBalancerRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetGlobalLoadBalancerRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalLoadBalancerRuleByID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetGlobalLoadBalancerRuleByID), varargs...) } // GetGlobalLoadBalancerRuleByName mocks base method. func (m *MockLoadBalancerServiceIface) GetGlobalLoadBalancerRuleByName(name string, opts ...OptionFunc) (*GlobalLoadBalancerRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -343,16 +334,16 @@ func (m *MockLoadBalancerServiceIface) GetGlobalLoadBalancerRuleByName(name stri } // GetGlobalLoadBalancerRuleByName indicates an expected call of GetGlobalLoadBalancerRuleByName. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetGlobalLoadBalancerRuleByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetGlobalLoadBalancerRuleByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalLoadBalancerRuleByName", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetGlobalLoadBalancerRuleByName), varargs...) } // GetGlobalLoadBalancerRuleID mocks base method. func (m *MockLoadBalancerServiceIface) GetGlobalLoadBalancerRuleID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -364,16 +355,16 @@ func (m *MockLoadBalancerServiceIface) GetGlobalLoadBalancerRuleID(keyword strin } // GetGlobalLoadBalancerRuleID indicates an expected call of GetGlobalLoadBalancerRuleID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetGlobalLoadBalancerRuleID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetGlobalLoadBalancerRuleID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalLoadBalancerRuleID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetGlobalLoadBalancerRuleID), varargs...) } // GetLBHealthCheckPolicyByID mocks base method. func (m *MockLoadBalancerServiceIface) GetLBHealthCheckPolicyByID(id string, opts ...OptionFunc) (*LBHealthCheckPolicy, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -385,16 +376,16 @@ func (m *MockLoadBalancerServiceIface) GetLBHealthCheckPolicyByID(id string, opt } // GetLBHealthCheckPolicyByID indicates an expected call of GetLBHealthCheckPolicyByID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLBHealthCheckPolicyByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLBHealthCheckPolicyByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLBHealthCheckPolicyByID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLBHealthCheckPolicyByID), varargs...) } // GetLBStickinessPolicyByID mocks base method. func (m *MockLoadBalancerServiceIface) GetLBStickinessPolicyByID(id string, opts ...OptionFunc) (*LBStickinessPolicy, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -406,16 +397,16 @@ func (m *MockLoadBalancerServiceIface) GetLBStickinessPolicyByID(id string, opts } // GetLBStickinessPolicyByID indicates an expected call of GetLBStickinessPolicyByID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLBStickinessPolicyByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLBStickinessPolicyByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLBStickinessPolicyByID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLBStickinessPolicyByID), varargs...) } // GetLoadBalancerByID mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerByID(id string, opts ...OptionFunc) (*LoadBalancer, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -427,16 +418,16 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerByID(id string, opts ...Op } // GetLoadBalancerByID indicates an expected call of GetLoadBalancerByID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerByID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerByID), varargs...) } // GetLoadBalancerByName mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerByName(name string, opts ...OptionFunc) (*LoadBalancer, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -448,16 +439,16 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerByName(name string, opts . } // GetLoadBalancerByName indicates an expected call of GetLoadBalancerByName. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerByName", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerByName), varargs...) } // GetLoadBalancerID mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -469,16 +460,16 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerID(name string, opts ...Op } // GetLoadBalancerID indicates an expected call of GetLoadBalancerID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerID), varargs...) } // GetLoadBalancerRuleByID mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleByID(id string, opts ...OptionFunc) (*LoadBalancerRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -490,16 +481,16 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleByID(id string, opts . } // GetLoadBalancerRuleByID indicates an expected call of GetLoadBalancerRuleByID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerRuleByID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerRuleByID), varargs...) } // GetLoadBalancerRuleByName mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleByName(name string, opts ...OptionFunc) (*LoadBalancerRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -511,16 +502,16 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleByName(name string, op } // GetLoadBalancerRuleByName indicates an expected call of GetLoadBalancerRuleByName. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerRuleByName", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerRuleByName), varargs...) } // GetLoadBalancerRuleID mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -532,16 +523,16 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleID(name string, opts . } // GetLoadBalancerRuleID indicates an expected call of GetLoadBalancerRuleID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerRuleID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerRuleID), varargs...) } // GetLoadBalancerRuleInstanceByID mocks base method. func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleInstanceByID(id string, opts ...OptionFunc) (*VirtualMachine, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -553,12 +544,33 @@ func (m *MockLoadBalancerServiceIface) GetLoadBalancerRuleInstanceByID(id string } // GetLoadBalancerRuleInstanceByID indicates an expected call of GetLoadBalancerRuleInstanceByID. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleInstanceByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetLoadBalancerRuleInstanceByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerRuleInstanceByID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetLoadBalancerRuleInstanceByID), varargs...) } +// GetRegisteredServicePackageID mocks base method. +func (m *MockLoadBalancerServiceIface) GetRegisteredServicePackageID(keyword string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{keyword} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetRegisteredServicePackageID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetRegisteredServicePackageID indicates an expected call of GetRegisteredServicePackageID. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) GetRegisteredServicePackageID(keyword any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{keyword}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRegisteredServicePackageID", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).GetRegisteredServicePackageID), varargs...) +} + // ListGlobalLoadBalancerRules mocks base method. func (m *MockLoadBalancerServiceIface) ListGlobalLoadBalancerRules(p *ListGlobalLoadBalancerRulesParams) (*ListGlobalLoadBalancerRulesResponse, error) { m.ctrl.T.Helper() @@ -569,7 +581,7 @@ func (m *MockLoadBalancerServiceIface) ListGlobalLoadBalancerRules(p *ListGlobal } // ListGlobalLoadBalancerRules indicates an expected call of ListGlobalLoadBalancerRules. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListGlobalLoadBalancerRules(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListGlobalLoadBalancerRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGlobalLoadBalancerRules", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListGlobalLoadBalancerRules), p) } @@ -584,7 +596,7 @@ func (m *MockLoadBalancerServiceIface) ListLBHealthCheckPolicies(p *ListLBHealth } // ListLBHealthCheckPolicies indicates an expected call of ListLBHealthCheckPolicies. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLBHealthCheckPolicies(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLBHealthCheckPolicies(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLBHealthCheckPolicies", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListLBHealthCheckPolicies), p) } @@ -599,7 +611,7 @@ func (m *MockLoadBalancerServiceIface) ListLBStickinessPolicies(p *ListLBStickin } // ListLBStickinessPolicies indicates an expected call of ListLBStickinessPolicies. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLBStickinessPolicies(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLBStickinessPolicies(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLBStickinessPolicies", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListLBStickinessPolicies), p) } @@ -614,7 +626,7 @@ func (m *MockLoadBalancerServiceIface) ListLoadBalancerRuleInstances(p *ListLoad } // ListLoadBalancerRuleInstances indicates an expected call of ListLoadBalancerRuleInstances. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLoadBalancerRuleInstances(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLoadBalancerRuleInstances(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancerRuleInstances", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListLoadBalancerRuleInstances), p) } @@ -629,7 +641,7 @@ func (m *MockLoadBalancerServiceIface) ListLoadBalancerRules(p *ListLoadBalancer } // ListLoadBalancerRules indicates an expected call of ListLoadBalancerRules. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLoadBalancerRules(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLoadBalancerRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancerRules", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListLoadBalancerRules), p) } @@ -644,24 +656,24 @@ func (m *MockLoadBalancerServiceIface) ListLoadBalancers(p *ListLoadBalancersPar } // ListLoadBalancers indicates an expected call of ListLoadBalancers. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLoadBalancers(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListLoadBalancers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancers", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListLoadBalancers), p) } -// ListNetscalerLoadBalancers mocks base method. -func (m *MockLoadBalancerServiceIface) ListNetscalerLoadBalancers(p *ListNetscalerLoadBalancersParams) (*ListNetscalerLoadBalancersResponse, error) { +// ListRegisteredServicePackages mocks base method. +func (m *MockLoadBalancerServiceIface) ListRegisteredServicePackages(p *ListRegisteredServicePackagesParams) (*ListRegisteredServicePackagesResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetscalerLoadBalancers", p) - ret0, _ := ret[0].(*ListNetscalerLoadBalancersResponse) + ret := m.ctrl.Call(m, "ListRegisteredServicePackages", p) + ret0, _ := ret[0].(*ListRegisteredServicePackagesResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListNetscalerLoadBalancers indicates an expected call of ListNetscalerLoadBalancers. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListNetscalerLoadBalancers(p interface{}) *gomock.Call { +// ListRegisteredServicePackages indicates an expected call of ListRegisteredServicePackages. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListRegisteredServicePackages(p any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetscalerLoadBalancers", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListNetscalerLoadBalancers), p) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRegisteredServicePackages", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListRegisteredServicePackages), p) } // ListSslCerts mocks base method. @@ -674,25 +686,11 @@ func (m *MockLoadBalancerServiceIface) ListSslCerts(p *ListSslCertsParams) (*Lis } // ListSslCerts indicates an expected call of ListSslCerts. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListSslCerts(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) ListSslCerts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSslCerts", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).ListSslCerts), p) } -// NewAddNetscalerLoadBalancerParams mocks base method. -func (m *MockLoadBalancerServiceIface) NewAddNetscalerLoadBalancerParams(networkdevicetype, password, physicalnetworkid, url, username string) *AddNetscalerLoadBalancerParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewAddNetscalerLoadBalancerParams", networkdevicetype, password, physicalnetworkid, url, username) - ret0, _ := ret[0].(*AddNetscalerLoadBalancerParams) - return ret0 -} - -// NewAddNetscalerLoadBalancerParams indicates an expected call of NewAddNetscalerLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAddNetscalerLoadBalancerParams(networkdevicetype, password, physicalnetworkid, url, username interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddNetscalerLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewAddNetscalerLoadBalancerParams), networkdevicetype, password, physicalnetworkid, url, username) -} - // NewAssignCertToLoadBalancerParams mocks base method. func (m *MockLoadBalancerServiceIface) NewAssignCertToLoadBalancerParams(certid, lbruleid string) *AssignCertToLoadBalancerParams { m.ctrl.T.Helper() @@ -702,7 +700,7 @@ func (m *MockLoadBalancerServiceIface) NewAssignCertToLoadBalancerParams(certid, } // NewAssignCertToLoadBalancerParams indicates an expected call of NewAssignCertToLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAssignCertToLoadBalancerParams(certid, lbruleid interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAssignCertToLoadBalancerParams(certid, lbruleid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAssignCertToLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewAssignCertToLoadBalancerParams), certid, lbruleid) } @@ -716,7 +714,7 @@ func (m *MockLoadBalancerServiceIface) NewAssignToGlobalLoadBalancerRuleParams(i } // NewAssignToGlobalLoadBalancerRuleParams indicates an expected call of NewAssignToGlobalLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAssignToGlobalLoadBalancerRuleParams(id, loadbalancerrulelist interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAssignToGlobalLoadBalancerRuleParams(id, loadbalancerrulelist any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAssignToGlobalLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewAssignToGlobalLoadBalancerRuleParams), id, loadbalancerrulelist) } @@ -730,25 +728,11 @@ func (m *MockLoadBalancerServiceIface) NewAssignToLoadBalancerRuleParams(id stri } // NewAssignToLoadBalancerRuleParams indicates an expected call of NewAssignToLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAssignToLoadBalancerRuleParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewAssignToLoadBalancerRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAssignToLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewAssignToLoadBalancerRuleParams), id) } -// NewConfigureNetscalerLoadBalancerParams mocks base method. -func (m *MockLoadBalancerServiceIface) NewConfigureNetscalerLoadBalancerParams(lbdeviceid string) *ConfigureNetscalerLoadBalancerParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewConfigureNetscalerLoadBalancerParams", lbdeviceid) - ret0, _ := ret[0].(*ConfigureNetscalerLoadBalancerParams) - return ret0 -} - -// NewConfigureNetscalerLoadBalancerParams indicates an expected call of NewConfigureNetscalerLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewConfigureNetscalerLoadBalancerParams(lbdeviceid interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureNetscalerLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewConfigureNetscalerLoadBalancerParams), lbdeviceid) -} - // NewCreateGlobalLoadBalancerRuleParams mocks base method. func (m *MockLoadBalancerServiceIface) NewCreateGlobalLoadBalancerRuleParams(gslbdomainname, gslbservicetype, name string, regionid int) *CreateGlobalLoadBalancerRuleParams { m.ctrl.T.Helper() @@ -758,7 +742,7 @@ func (m *MockLoadBalancerServiceIface) NewCreateGlobalLoadBalancerRuleParams(gsl } // NewCreateGlobalLoadBalancerRuleParams indicates an expected call of NewCreateGlobalLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateGlobalLoadBalancerRuleParams(gslbdomainname, gslbservicetype, name, regionid interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateGlobalLoadBalancerRuleParams(gslbdomainname, gslbservicetype, name, regionid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateGlobalLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewCreateGlobalLoadBalancerRuleParams), gslbdomainname, gslbservicetype, name, regionid) } @@ -772,7 +756,7 @@ func (m *MockLoadBalancerServiceIface) NewCreateLBHealthCheckPolicyParams(lbrule } // NewCreateLBHealthCheckPolicyParams indicates an expected call of NewCreateLBHealthCheckPolicyParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLBHealthCheckPolicyParams(lbruleid interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLBHealthCheckPolicyParams(lbruleid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateLBHealthCheckPolicyParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewCreateLBHealthCheckPolicyParams), lbruleid) } @@ -786,7 +770,7 @@ func (m *MockLoadBalancerServiceIface) NewCreateLBStickinessPolicyParams(lbrulei } // NewCreateLBStickinessPolicyParams indicates an expected call of NewCreateLBStickinessPolicyParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLBStickinessPolicyParams(lbruleid, methodname, name interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLBStickinessPolicyParams(lbruleid, methodname, name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateLBStickinessPolicyParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewCreateLBStickinessPolicyParams), lbruleid, methodname, name) } @@ -800,7 +784,7 @@ func (m *MockLoadBalancerServiceIface) NewCreateLoadBalancerParams(algorithm str } // NewCreateLoadBalancerParams indicates an expected call of NewCreateLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLoadBalancerParams(algorithm, instanceport, name, networkid, scheme, sourceipaddressnetworkid, sourceport interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLoadBalancerParams(algorithm, instanceport, name, networkid, scheme, sourceipaddressnetworkid, sourceport any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewCreateLoadBalancerParams), algorithm, instanceport, name, networkid, scheme, sourceipaddressnetworkid, sourceport) } @@ -814,7 +798,7 @@ func (m *MockLoadBalancerServiceIface) NewCreateLoadBalancerRuleParams(algorithm } // NewCreateLoadBalancerRuleParams indicates an expected call of NewCreateLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLoadBalancerRuleParams(algorithm, name, privateport, publicport interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewCreateLoadBalancerRuleParams(algorithm, name, privateport, publicport any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewCreateLoadBalancerRuleParams), algorithm, name, privateport, publicport) } @@ -828,7 +812,7 @@ func (m *MockLoadBalancerServiceIface) NewDeleteGlobalLoadBalancerRuleParams(id } // NewDeleteGlobalLoadBalancerRuleParams indicates an expected call of NewDeleteGlobalLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteGlobalLoadBalancerRuleParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteGlobalLoadBalancerRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteGlobalLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteGlobalLoadBalancerRuleParams), id) } @@ -842,7 +826,7 @@ func (m *MockLoadBalancerServiceIface) NewDeleteLBHealthCheckPolicyParams(id str } // NewDeleteLBHealthCheckPolicyParams indicates an expected call of NewDeleteLBHealthCheckPolicyParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLBHealthCheckPolicyParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLBHealthCheckPolicyParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteLBHealthCheckPolicyParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteLBHealthCheckPolicyParams), id) } @@ -856,7 +840,7 @@ func (m *MockLoadBalancerServiceIface) NewDeleteLBStickinessPolicyParams(id stri } // NewDeleteLBStickinessPolicyParams indicates an expected call of NewDeleteLBStickinessPolicyParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLBStickinessPolicyParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLBStickinessPolicyParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteLBStickinessPolicyParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteLBStickinessPolicyParams), id) } @@ -870,7 +854,7 @@ func (m *MockLoadBalancerServiceIface) NewDeleteLoadBalancerParams(id string) *D } // NewDeleteLoadBalancerParams indicates an expected call of NewDeleteLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLoadBalancerParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLoadBalancerParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteLoadBalancerParams), id) } @@ -884,23 +868,23 @@ func (m *MockLoadBalancerServiceIface) NewDeleteLoadBalancerRuleParams(id string } // NewDeleteLoadBalancerRuleParams indicates an expected call of NewDeleteLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLoadBalancerRuleParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteLoadBalancerRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteLoadBalancerRuleParams), id) } -// NewDeleteNetscalerLoadBalancerParams mocks base method. -func (m *MockLoadBalancerServiceIface) NewDeleteNetscalerLoadBalancerParams(lbdeviceid string) *DeleteNetscalerLoadBalancerParams { +// NewDeleteServicePackageOfferingParams mocks base method. +func (m *MockLoadBalancerServiceIface) NewDeleteServicePackageOfferingParams(id string) *DeleteServicePackageOfferingParams { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewDeleteNetscalerLoadBalancerParams", lbdeviceid) - ret0, _ := ret[0].(*DeleteNetscalerLoadBalancerParams) + ret := m.ctrl.Call(m, "NewDeleteServicePackageOfferingParams", id) + ret0, _ := ret[0].(*DeleteServicePackageOfferingParams) return ret0 } -// NewDeleteNetscalerLoadBalancerParams indicates an expected call of NewDeleteNetscalerLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteNetscalerLoadBalancerParams(lbdeviceid interface{}) *gomock.Call { +// NewDeleteServicePackageOfferingParams indicates an expected call of NewDeleteServicePackageOfferingParams. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteServicePackageOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetscalerLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteNetscalerLoadBalancerParams), lbdeviceid) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteServicePackageOfferingParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteServicePackageOfferingParams), id) } // NewDeleteSslCertParams mocks base method. @@ -912,11 +896,25 @@ func (m *MockLoadBalancerServiceIface) NewDeleteSslCertParams(id string) *Delete } // NewDeleteSslCertParams indicates an expected call of NewDeleteSslCertParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteSslCertParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeleteSslCertParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteSslCertParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeleteSslCertParams), id) } +// NewDeployNetscalerVpxParams mocks base method. +func (m *MockLoadBalancerServiceIface) NewDeployNetscalerVpxParams(serviceofferingid, templateid, zoneid string) *DeployNetscalerVpxParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeployNetscalerVpxParams", serviceofferingid, templateid, zoneid) + ret0, _ := ret[0].(*DeployNetscalerVpxParams) + return ret0 +} + +// NewDeployNetscalerVpxParams indicates an expected call of NewDeployNetscalerVpxParams. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewDeployNetscalerVpxParams(serviceofferingid, templateid, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeployNetscalerVpxParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewDeployNetscalerVpxParams), serviceofferingid, templateid, zoneid) +} + // NewListGlobalLoadBalancerRulesParams mocks base method. func (m *MockLoadBalancerServiceIface) NewListGlobalLoadBalancerRulesParams() *ListGlobalLoadBalancerRulesParams { m.ctrl.T.Helper() @@ -968,7 +966,7 @@ func (m *MockLoadBalancerServiceIface) NewListLoadBalancerRuleInstancesParams(id } // NewListLoadBalancerRuleInstancesParams indicates an expected call of NewListLoadBalancerRuleInstancesParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewListLoadBalancerRuleInstancesParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewListLoadBalancerRuleInstancesParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListLoadBalancerRuleInstancesParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewListLoadBalancerRuleInstancesParams), id) } @@ -1001,18 +999,18 @@ func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewListLoadBalancersParams() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListLoadBalancersParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewListLoadBalancersParams)) } -// NewListNetscalerLoadBalancersParams mocks base method. -func (m *MockLoadBalancerServiceIface) NewListNetscalerLoadBalancersParams() *ListNetscalerLoadBalancersParams { +// NewListRegisteredServicePackagesParams mocks base method. +func (m *MockLoadBalancerServiceIface) NewListRegisteredServicePackagesParams() *ListRegisteredServicePackagesParams { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewListNetscalerLoadBalancersParams") - ret0, _ := ret[0].(*ListNetscalerLoadBalancersParams) + ret := m.ctrl.Call(m, "NewListRegisteredServicePackagesParams") + ret0, _ := ret[0].(*ListRegisteredServicePackagesParams) return ret0 } -// NewListNetscalerLoadBalancersParams indicates an expected call of NewListNetscalerLoadBalancersParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewListNetscalerLoadBalancersParams() *gomock.Call { +// NewListRegisteredServicePackagesParams indicates an expected call of NewListRegisteredServicePackagesParams. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewListRegisteredServicePackagesParams() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetscalerLoadBalancersParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewListNetscalerLoadBalancersParams)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListRegisteredServicePackagesParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewListRegisteredServicePackagesParams)) } // NewListSslCertsParams mocks base method. @@ -1038,7 +1036,7 @@ func (m *MockLoadBalancerServiceIface) NewRemoveCertFromLoadBalancerParams(lbrul } // NewRemoveCertFromLoadBalancerParams indicates an expected call of NewRemoveCertFromLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewRemoveCertFromLoadBalancerParams(lbruleid interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewRemoveCertFromLoadBalancerParams(lbruleid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveCertFromLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewRemoveCertFromLoadBalancerParams), lbruleid) } @@ -1052,7 +1050,7 @@ func (m *MockLoadBalancerServiceIface) NewRemoveFromGlobalLoadBalancerRuleParams } // NewRemoveFromGlobalLoadBalancerRuleParams indicates an expected call of NewRemoveFromGlobalLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewRemoveFromGlobalLoadBalancerRuleParams(id, loadbalancerrulelist interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewRemoveFromGlobalLoadBalancerRuleParams(id, loadbalancerrulelist any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveFromGlobalLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewRemoveFromGlobalLoadBalancerRuleParams), id, loadbalancerrulelist) } @@ -1066,11 +1064,25 @@ func (m *MockLoadBalancerServiceIface) NewRemoveFromLoadBalancerRuleParams(id st } // NewRemoveFromLoadBalancerRuleParams indicates an expected call of NewRemoveFromLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewRemoveFromLoadBalancerRuleParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewRemoveFromLoadBalancerRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveFromLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewRemoveFromLoadBalancerRuleParams), id) } +// NewStopNetScalerVpxParams mocks base method. +func (m *MockLoadBalancerServiceIface) NewStopNetScalerVpxParams(id string) *StopNetScalerVpxParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewStopNetScalerVpxParams", id) + ret0, _ := ret[0].(*StopNetScalerVpxParams) + return ret0 +} + +// NewStopNetScalerVpxParams indicates an expected call of NewStopNetScalerVpxParams. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewStopNetScalerVpxParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopNetScalerVpxParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewStopNetScalerVpxParams), id) +} + // NewUpdateGlobalLoadBalancerRuleParams mocks base method. func (m *MockLoadBalancerServiceIface) NewUpdateGlobalLoadBalancerRuleParams(id string) *UpdateGlobalLoadBalancerRuleParams { m.ctrl.T.Helper() @@ -1080,7 +1092,7 @@ func (m *MockLoadBalancerServiceIface) NewUpdateGlobalLoadBalancerRuleParams(id } // NewUpdateGlobalLoadBalancerRuleParams indicates an expected call of NewUpdateGlobalLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateGlobalLoadBalancerRuleParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateGlobalLoadBalancerRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateGlobalLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewUpdateGlobalLoadBalancerRuleParams), id) } @@ -1094,7 +1106,7 @@ func (m *MockLoadBalancerServiceIface) NewUpdateLBHealthCheckPolicyParams(id str } // NewUpdateLBHealthCheckPolicyParams indicates an expected call of NewUpdateLBHealthCheckPolicyParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLBHealthCheckPolicyParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLBHealthCheckPolicyParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateLBHealthCheckPolicyParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewUpdateLBHealthCheckPolicyParams), id) } @@ -1108,7 +1120,7 @@ func (m *MockLoadBalancerServiceIface) NewUpdateLBStickinessPolicyParams(id stri } // NewUpdateLBStickinessPolicyParams indicates an expected call of NewUpdateLBStickinessPolicyParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLBStickinessPolicyParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLBStickinessPolicyParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateLBStickinessPolicyParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewUpdateLBStickinessPolicyParams), id) } @@ -1122,7 +1134,7 @@ func (m *MockLoadBalancerServiceIface) NewUpdateLoadBalancerParams(id string) *U } // NewUpdateLoadBalancerParams indicates an expected call of NewUpdateLoadBalancerParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLoadBalancerParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLoadBalancerParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateLoadBalancerParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewUpdateLoadBalancerParams), id) } @@ -1136,7 +1148,7 @@ func (m *MockLoadBalancerServiceIface) NewUpdateLoadBalancerRuleParams(id string } // NewUpdateLoadBalancerRuleParams indicates an expected call of NewUpdateLoadBalancerRuleParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLoadBalancerRuleParams(id interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUpdateLoadBalancerRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateLoadBalancerRuleParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewUpdateLoadBalancerRuleParams), id) } @@ -1150,7 +1162,7 @@ func (m *MockLoadBalancerServiceIface) NewUploadSslCertParams(certificate, name, } // NewUploadSslCertParams indicates an expected call of NewUploadSslCertParams. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUploadSslCertParams(certificate, name, privatekey interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) NewUploadSslCertParams(certificate, name, privatekey any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUploadSslCertParams", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).NewUploadSslCertParams), certificate, name, privatekey) } @@ -1165,7 +1177,7 @@ func (m *MockLoadBalancerServiceIface) RemoveCertFromLoadBalancer(p *RemoveCertF } // RemoveCertFromLoadBalancer indicates an expected call of RemoveCertFromLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) RemoveCertFromLoadBalancer(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) RemoveCertFromLoadBalancer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveCertFromLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).RemoveCertFromLoadBalancer), p) } @@ -1180,7 +1192,7 @@ func (m *MockLoadBalancerServiceIface) RemoveFromGlobalLoadBalancerRule(p *Remov } // RemoveFromGlobalLoadBalancerRule indicates an expected call of RemoveFromGlobalLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) RemoveFromGlobalLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) RemoveFromGlobalLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveFromGlobalLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).RemoveFromGlobalLoadBalancerRule), p) } @@ -1195,11 +1207,26 @@ func (m *MockLoadBalancerServiceIface) RemoveFromLoadBalancerRule(p *RemoveFromL } // RemoveFromLoadBalancerRule indicates an expected call of RemoveFromLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) RemoveFromLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) RemoveFromLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveFromLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).RemoveFromLoadBalancerRule), p) } +// StopNetScalerVpx mocks base method. +func (m *MockLoadBalancerServiceIface) StopNetScalerVpx(p *StopNetScalerVpxParams) (*StopNetScalerVpxResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StopNetScalerVpx", p) + ret0, _ := ret[0].(*StopNetScalerVpxResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StopNetScalerVpx indicates an expected call of StopNetScalerVpx. +func (mr *MockLoadBalancerServiceIfaceMockRecorder) StopNetScalerVpx(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopNetScalerVpx", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).StopNetScalerVpx), p) +} + // UpdateGlobalLoadBalancerRule mocks base method. func (m *MockLoadBalancerServiceIface) UpdateGlobalLoadBalancerRule(p *UpdateGlobalLoadBalancerRuleParams) (*UpdateGlobalLoadBalancerRuleResponse, error) { m.ctrl.T.Helper() @@ -1210,7 +1237,7 @@ func (m *MockLoadBalancerServiceIface) UpdateGlobalLoadBalancerRule(p *UpdateGlo } // UpdateGlobalLoadBalancerRule indicates an expected call of UpdateGlobalLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateGlobalLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateGlobalLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGlobalLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).UpdateGlobalLoadBalancerRule), p) } @@ -1225,7 +1252,7 @@ func (m *MockLoadBalancerServiceIface) UpdateLBHealthCheckPolicy(p *UpdateLBHeal } // UpdateLBHealthCheckPolicy indicates an expected call of UpdateLBHealthCheckPolicy. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLBHealthCheckPolicy(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLBHealthCheckPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLBHealthCheckPolicy", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).UpdateLBHealthCheckPolicy), p) } @@ -1240,7 +1267,7 @@ func (m *MockLoadBalancerServiceIface) UpdateLBStickinessPolicy(p *UpdateLBStick } // UpdateLBStickinessPolicy indicates an expected call of UpdateLBStickinessPolicy. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLBStickinessPolicy(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLBStickinessPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLBStickinessPolicy", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).UpdateLBStickinessPolicy), p) } @@ -1255,7 +1282,7 @@ func (m *MockLoadBalancerServiceIface) UpdateLoadBalancer(p *UpdateLoadBalancerP } // UpdateLoadBalancer indicates an expected call of UpdateLoadBalancer. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLoadBalancer(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLoadBalancer(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancer", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).UpdateLoadBalancer), p) } @@ -1270,7 +1297,7 @@ func (m *MockLoadBalancerServiceIface) UpdateLoadBalancerRule(p *UpdateLoadBalan } // UpdateLoadBalancerRule indicates an expected call of UpdateLoadBalancerRule. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLoadBalancerRule(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) UpdateLoadBalancerRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancerRule", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).UpdateLoadBalancerRule), p) } @@ -1285,7 +1312,7 @@ func (m *MockLoadBalancerServiceIface) UploadSslCert(p *UploadSslCertParams) (*U } // UploadSslCert indicates an expected call of UploadSslCert. -func (mr *MockLoadBalancerServiceIfaceMockRecorder) UploadSslCert(p interface{}) *gomock.Call { +func (mr *MockLoadBalancerServiceIfaceMockRecorder) UploadSslCert(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadSslCert", reflect.TypeOf((*MockLoadBalancerServiceIface)(nil).UploadSslCert), p) } diff --git a/cloudstack/ManagementService.go b/cloudstack/ManagementService.go index 8398c8d9..62430bbb 100644 --- a/cloudstack/ManagementService.go +++ b/cloudstack/ManagementService.go @@ -28,11 +28,93 @@ import ( ) type ManagementServiceIface interface { + CancelShutdown(p *CancelShutdownParams) (*CancelShutdownResponse, error) + NewCancelShutdownParams(managementserverid UUID) *CancelShutdownParams ListManagementServers(p *ListManagementServersParams) (*ListManagementServersResponse, error) NewListManagementServersParams() *ListManagementServersParams GetManagementServerID(name string, opts ...OptionFunc) (string, int, error) GetManagementServerByName(name string, opts ...OptionFunc) (*ManagementServer, int, error) GetManagementServerByID(id string, opts ...OptionFunc) (*ManagementServer, int, error) + ListManagementServersMetrics(p *ListManagementServersMetricsParams) (*ListManagementServersMetricsResponse, error) + NewListManagementServersMetricsParams() *ListManagementServersMetricsParams + GetManagementServersMetricID(name string, opts ...OptionFunc) (string, int, error) + GetManagementServersMetricByName(name string, opts ...OptionFunc) (*ManagementServersMetric, int, error) + GetManagementServersMetricByID(id string, opts ...OptionFunc) (*ManagementServersMetric, int, error) + PrepareForShutdown(p *PrepareForShutdownParams) (*PrepareForShutdownResponse, error) + NewPrepareForShutdownParams(managementserverid UUID) *PrepareForShutdownParams + ReadyForShutdown(p *ReadyForShutdownParams) (*ReadyForShutdownResponse, error) + NewReadyForShutdownParams() *ReadyForShutdownParams + TriggerShutdown(p *TriggerShutdownParams) (*TriggerShutdownResponse, error) + NewTriggerShutdownParams(managementserverid UUID) *TriggerShutdownParams +} + +type CancelShutdownParams struct { + p map[string]interface{} +} + +func (p *CancelShutdownParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["managementserverid"]; found { + u.Set("managementserverid", v.(string)) + } + return u +} + +func (p *CancelShutdownParams) SetManagementserverid(v UUID) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["managementserverid"] = v +} + +func (p *CancelShutdownParams) ResetManagementserverid() { + if p.p != nil && p.p["managementserverid"] != nil { + delete(p.p, "managementserverid") + } +} + +func (p *CancelShutdownParams) GetManagementserverid() (UUID, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["managementserverid"].(UUID) + return value, ok +} + +// You should always use this function to get a new CancelShutdownParams instance, +// as then you are sure you have configured all required params +func (s *ManagementService) NewCancelShutdownParams(managementserverid UUID) *CancelShutdownParams { + p := &CancelShutdownParams{} + p.p = make(map[string]interface{}) + p.p["managementserverid"] = managementserverid + return p +} + +// Cancels a triggered shutdown +func (s *ManagementService) CancelShutdown(p *CancelShutdownParams) (*CancelShutdownResponse, error) { + resp, err := s.cs.newRequest("cancelShutdown", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CancelShutdownResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type CancelShutdownResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Managementserverid UUID `json:"managementserverid"` + Pendingjobscount int64 `json:"pendingjobscount"` + Readyforshutdown bool `json:"readyforshutdown"` + Shutdowntriggered bool `json:"shutdowntriggered"` } type ListManagementServersParams struct { @@ -296,3 +378,522 @@ type ManagementServer struct { State string `json:"state"` Version string `json:"version"` } + +type ListManagementServersMetricsParams struct { + p map[string]interface{} +} + +func (p *ListManagementServersMetricsParams) 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["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["system"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("system", vv) + } + return u +} + +func (p *ListManagementServersMetricsParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListManagementServersMetricsParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListManagementServersMetricsParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListManagementServersMetricsParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListManagementServersMetricsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListManagementServersMetricsParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListManagementServersMetricsParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListManagementServersMetricsParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListManagementServersMetricsParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListManagementServersMetricsParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListManagementServersMetricsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListManagementServersMetricsParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListManagementServersMetricsParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListManagementServersMetricsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListManagementServersMetricsParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListManagementServersMetricsParams) SetSystem(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["system"] = v +} + +func (p *ListManagementServersMetricsParams) ResetSystem() { + if p.p != nil && p.p["system"] != nil { + delete(p.p, "system") + } +} + +func (p *ListManagementServersMetricsParams) GetSystem() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["system"].(bool) + return value, ok +} + +// You should always use this function to get a new ListManagementServersMetricsParams instance, +// as then you are sure you have configured all required params +func (s *ManagementService) NewListManagementServersMetricsParams() *ListManagementServersMetricsParams { + p := &ListManagementServersMetricsParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ManagementService) GetManagementServersMetricID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListManagementServersMetricsParams{} + 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.ListManagementServersMetrics(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.ManagementServersMetrics[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.ManagementServersMetrics { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ManagementService) GetManagementServersMetricByName(name string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { + id, count, err := s.GetManagementServersMetricID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetManagementServersMetricByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ManagementService) GetManagementServersMetricByID(id string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { + p := &ListManagementServersMetricsParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListManagementServersMetrics(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.ManagementServersMetrics[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for ManagementServersMetric UUID: %s!", id) +} + +// Lists Management Server metrics +func (s *ManagementService) ListManagementServersMetrics(p *ListManagementServersMetricsParams) (*ListManagementServersMetricsResponse, error) { + resp, err := s.cs.newRequest("listManagementServersMetrics", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListManagementServersMetricsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListManagementServersMetricsResponse struct { + Count int `json:"count"` + ManagementServersMetrics []*ManagementServersMetric `json:"managementserver"` +} + +type ManagementServersMetric struct { + Agentcount int `json:"agentcount"` + Availableprocessors int `json:"availableprocessors"` + Collectiontime string `json:"collectiontime"` + Cpuload string `json:"cpuload"` + Dbislocal bool `json:"dbislocal"` + Heapmemorytotal int64 `json:"heapmemorytotal"` + Heapmemoryused int64 `json:"heapmemoryused"` + Id string `json:"id"` + Javadistribution string `json:"javadistribution"` + Javaversion string `json:"javaversion"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Kernelversion string `json:"kernelversion"` + Lastboottime string `json:"lastboottime"` + Lastserverstart string `json:"lastserverstart"` + Lastserverstop string `json:"lastserverstop"` + Loginfo string `json:"loginfo"` + Name string `json:"name"` + Osdistribution string `json:"osdistribution"` + Serviceip string `json:"serviceip"` + Sessions int64 `json:"sessions"` + State string `json:"state"` + Systemcycleusage []int64 `json:"systemcycleusage"` + Systemloadaverages []float64 `json:"systemloadaverages"` + Systemmemoryfree string `json:"systemmemoryfree"` + Systemmemorytotal string `json:"systemmemorytotal"` + Systemmemoryused string `json:"systemmemoryused"` + Systemmemoryvirtualsize string `json:"systemmemoryvirtualsize"` + Systemtotalcpucycles float64 `json:"systemtotalcpucycles"` + Threadsblockedcount int `json:"threadsblockedcount"` + Threadsdaemoncount int `json:"threadsdaemoncount"` + Threadsrunnablecount int `json:"threadsrunnablecount"` + Threadsteminatedcount int `json:"threadsteminatedcount"` + Threadstotalcount int `json:"threadstotalcount"` + Threadswaitingcount int `json:"threadswaitingcount"` + Usageislocal bool `json:"usageislocal"` + Version string `json:"version"` +} + +type PrepareForShutdownParams struct { + p map[string]interface{} +} + +func (p *PrepareForShutdownParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["managementserverid"]; found { + u.Set("managementserverid", v.(string)) + } + return u +} + +func (p *PrepareForShutdownParams) SetManagementserverid(v UUID) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["managementserverid"] = v +} + +func (p *PrepareForShutdownParams) ResetManagementserverid() { + if p.p != nil && p.p["managementserverid"] != nil { + delete(p.p, "managementserverid") + } +} + +func (p *PrepareForShutdownParams) GetManagementserverid() (UUID, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["managementserverid"].(UUID) + return value, ok +} + +// You should always use this function to get a new PrepareForShutdownParams instance, +// as then you are sure you have configured all required params +func (s *ManagementService) NewPrepareForShutdownParams(managementserverid UUID) *PrepareForShutdownParams { + p := &PrepareForShutdownParams{} + p.p = make(map[string]interface{}) + p.p["managementserverid"] = managementserverid + return p +} + +// Prepares CloudStack for a safe manual shutdown by preventing new jobs from being accepted +func (s *ManagementService) PrepareForShutdown(p *PrepareForShutdownParams) (*PrepareForShutdownResponse, error) { + resp, err := s.cs.newRequest("prepareForShutdown", p.toURLValues()) + if err != nil { + return nil, err + } + + var r PrepareForShutdownResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type PrepareForShutdownResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Managementserverid UUID `json:"managementserverid"` + Pendingjobscount int64 `json:"pendingjobscount"` + Readyforshutdown bool `json:"readyforshutdown"` + Shutdowntriggered bool `json:"shutdowntriggered"` +} + +type ReadyForShutdownParams struct { + p map[string]interface{} +} + +func (p *ReadyForShutdownParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["managementserverid"]; found { + u.Set("managementserverid", v.(string)) + } + return u +} + +func (p *ReadyForShutdownParams) SetManagementserverid(v UUID) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["managementserverid"] = v +} + +func (p *ReadyForShutdownParams) ResetManagementserverid() { + if p.p != nil && p.p["managementserverid"] != nil { + delete(p.p, "managementserverid") + } +} + +func (p *ReadyForShutdownParams) GetManagementserverid() (UUID, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["managementserverid"].(UUID) + return value, ok +} + +// You should always use this function to get a new ReadyForShutdownParams instance, +// as then you are sure you have configured all required params +func (s *ManagementService) NewReadyForShutdownParams() *ReadyForShutdownParams { + p := &ReadyForShutdownParams{} + p.p = make(map[string]interface{}) + return p +} + +// Returns the status of CloudStack, whether a shutdown has been triggered and if ready to shutdown +func (s *ManagementService) ReadyForShutdown(p *ReadyForShutdownParams) (*ReadyForShutdownResponse, error) { + resp, err := s.cs.newRequest("readyForShutdown", p.toURLValues()) + if err != nil { + return nil, err + } + + var nested struct { + Response ReadyForShutdownResponse `json:"readyforshutdown"` + } + if err := json.Unmarshal(resp, &nested); err != nil { + return nil, err + } + r := nested.Response + + return &r, nil +} + +type ReadyForShutdownResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Managementserverid UUID `json:"managementserverid"` + Pendingjobscount int64 `json:"pendingjobscount"` + Readyforshutdown bool `json:"readyforshutdown"` + Shutdowntriggered bool `json:"shutdowntriggered"` +} + +type TriggerShutdownParams struct { + p map[string]interface{} +} + +func (p *TriggerShutdownParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["managementserverid"]; found { + u.Set("managementserverid", v.(string)) + } + return u +} + +func (p *TriggerShutdownParams) SetManagementserverid(v UUID) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["managementserverid"] = v +} + +func (p *TriggerShutdownParams) ResetManagementserverid() { + if p.p != nil && p.p["managementserverid"] != nil { + delete(p.p, "managementserverid") + } +} + +func (p *TriggerShutdownParams) GetManagementserverid() (UUID, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["managementserverid"].(UUID) + return value, ok +} + +// You should always use this function to get a new TriggerShutdownParams instance, +// as then you are sure you have configured all required params +func (s *ManagementService) NewTriggerShutdownParams(managementserverid UUID) *TriggerShutdownParams { + p := &TriggerShutdownParams{} + p.p = make(map[string]interface{}) + p.p["managementserverid"] = managementserverid + return p +} + +// Triggers an automatic safe shutdown of CloudStack by not accepting new jobs and shutting down when all pending jobbs have been completed. Triggers an immediate shutdown if forced +func (s *ManagementService) TriggerShutdown(p *TriggerShutdownParams) (*TriggerShutdownResponse, error) { + resp, err := s.cs.newRequest("triggerShutdown", p.toURLValues()) + if err != nil { + return nil, err + } + + var r TriggerShutdownResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type TriggerShutdownResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Managementserverid UUID `json:"managementserverid"` + Pendingjobscount int64 `json:"pendingjobscount"` + Readyforshutdown bool `json:"readyforshutdown"` + Shutdowntriggered bool `json:"shutdowntriggered"` +} diff --git a/cloudstack/ManagementService_mock.go b/cloudstack/ManagementService_mock.go index 2b1e31b2..5a57d572 100644 --- a/cloudstack/ManagementService_mock.go +++ b/cloudstack/ManagementService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ManagementService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ManagementService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ManagementService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockManagementServiceIface is a mock of ManagementServiceIface interface. type MockManagementServiceIface struct { ctrl *gomock.Controller recorder *MockManagementServiceIfaceMockRecorder + isgomock struct{} } // MockManagementServiceIfaceMockRecorder is the mock recorder for MockManagementServiceIface. @@ -52,10 +58,25 @@ func (m *MockManagementServiceIface) EXPECT() *MockManagementServiceIfaceMockRec return m.recorder } +// CancelShutdown mocks base method. +func (m *MockManagementServiceIface) CancelShutdown(p *CancelShutdownParams) (*CancelShutdownResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CancelShutdown", p) + ret0, _ := ret[0].(*CancelShutdownResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CancelShutdown indicates an expected call of CancelShutdown. +func (mr *MockManagementServiceIfaceMockRecorder) CancelShutdown(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelShutdown", reflect.TypeOf((*MockManagementServiceIface)(nil).CancelShutdown), p) +} + // GetManagementServerByID mocks base method. func (m *MockManagementServiceIface) GetManagementServerByID(id string, opts ...OptionFunc) (*ManagementServer, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -67,16 +88,16 @@ func (m *MockManagementServiceIface) GetManagementServerByID(id string, opts ... } // GetManagementServerByID indicates an expected call of GetManagementServerByID. -func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServerByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServerByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServerByID", reflect.TypeOf((*MockManagementServiceIface)(nil).GetManagementServerByID), varargs...) } // GetManagementServerByName mocks base method. func (m *MockManagementServiceIface) GetManagementServerByName(name string, opts ...OptionFunc) (*ManagementServer, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -88,16 +109,16 @@ func (m *MockManagementServiceIface) GetManagementServerByName(name string, opts } // GetManagementServerByName indicates an expected call of GetManagementServerByName. -func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServerByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServerByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServerByName", reflect.TypeOf((*MockManagementServiceIface)(nil).GetManagementServerByName), varargs...) } // GetManagementServerID mocks base method. func (m *MockManagementServiceIface) GetManagementServerID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -109,12 +130,75 @@ func (m *MockManagementServiceIface) GetManagementServerID(name string, opts ... } // GetManagementServerID indicates an expected call of GetManagementServerID. -func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServerID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServerID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServerID", reflect.TypeOf((*MockManagementServiceIface)(nil).GetManagementServerID), varargs...) } +// GetManagementServersMetricByID mocks base method. +func (m *MockManagementServiceIface) GetManagementServersMetricByID(id string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetManagementServersMetricByID", varargs...) + ret0, _ := ret[0].(*ManagementServersMetric) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetManagementServersMetricByID indicates an expected call of GetManagementServersMetricByID. +func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServersMetricByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServersMetricByID", reflect.TypeOf((*MockManagementServiceIface)(nil).GetManagementServersMetricByID), varargs...) +} + +// GetManagementServersMetricByName mocks base method. +func (m *MockManagementServiceIface) GetManagementServersMetricByName(name string, opts ...OptionFunc) (*ManagementServersMetric, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetManagementServersMetricByName", varargs...) + ret0, _ := ret[0].(*ManagementServersMetric) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetManagementServersMetricByName indicates an expected call of GetManagementServersMetricByName. +func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServersMetricByName(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServersMetricByName", reflect.TypeOf((*MockManagementServiceIface)(nil).GetManagementServersMetricByName), varargs...) +} + +// GetManagementServersMetricID mocks base method. +func (m *MockManagementServiceIface) GetManagementServersMetricID(name string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetManagementServersMetricID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetManagementServersMetricID indicates an expected call of GetManagementServersMetricID. +func (mr *MockManagementServiceIfaceMockRecorder) GetManagementServersMetricID(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetManagementServersMetricID", reflect.TypeOf((*MockManagementServiceIface)(nil).GetManagementServersMetricID), varargs...) +} + // ListManagementServers mocks base method. func (m *MockManagementServiceIface) ListManagementServers(p *ListManagementServersParams) (*ListManagementServersResponse, error) { m.ctrl.T.Helper() @@ -125,11 +209,54 @@ func (m *MockManagementServiceIface) ListManagementServers(p *ListManagementServ } // ListManagementServers indicates an expected call of ListManagementServers. -func (mr *MockManagementServiceIfaceMockRecorder) ListManagementServers(p interface{}) *gomock.Call { +func (mr *MockManagementServiceIfaceMockRecorder) ListManagementServers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListManagementServers", reflect.TypeOf((*MockManagementServiceIface)(nil).ListManagementServers), p) } +// ListManagementServersMetrics mocks base method. +func (m *MockManagementServiceIface) ListManagementServersMetrics(p *ListManagementServersMetricsParams) (*ListManagementServersMetricsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListManagementServersMetrics", p) + ret0, _ := ret[0].(*ListManagementServersMetricsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListManagementServersMetrics indicates an expected call of ListManagementServersMetrics. +func (mr *MockManagementServiceIfaceMockRecorder) ListManagementServersMetrics(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListManagementServersMetrics", reflect.TypeOf((*MockManagementServiceIface)(nil).ListManagementServersMetrics), p) +} + +// NewCancelShutdownParams mocks base method. +func (m *MockManagementServiceIface) NewCancelShutdownParams(managementserverid UUID) *CancelShutdownParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCancelShutdownParams", managementserverid) + ret0, _ := ret[0].(*CancelShutdownParams) + return ret0 +} + +// NewCancelShutdownParams indicates an expected call of NewCancelShutdownParams. +func (mr *MockManagementServiceIfaceMockRecorder) NewCancelShutdownParams(managementserverid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCancelShutdownParams", reflect.TypeOf((*MockManagementServiceIface)(nil).NewCancelShutdownParams), managementserverid) +} + +// NewListManagementServersMetricsParams mocks base method. +func (m *MockManagementServiceIface) NewListManagementServersMetricsParams() *ListManagementServersMetricsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListManagementServersMetricsParams") + ret0, _ := ret[0].(*ListManagementServersMetricsParams) + return ret0 +} + +// NewListManagementServersMetricsParams indicates an expected call of NewListManagementServersMetricsParams. +func (mr *MockManagementServiceIfaceMockRecorder) NewListManagementServersMetricsParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListManagementServersMetricsParams", reflect.TypeOf((*MockManagementServiceIface)(nil).NewListManagementServersMetricsParams)) +} + // NewListManagementServersParams mocks base method. func (m *MockManagementServiceIface) NewListManagementServersParams() *ListManagementServersParams { m.ctrl.T.Helper() @@ -143,3 +270,90 @@ func (mr *MockManagementServiceIfaceMockRecorder) NewListManagementServersParams mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListManagementServersParams", reflect.TypeOf((*MockManagementServiceIface)(nil).NewListManagementServersParams)) } + +// NewPrepareForShutdownParams mocks base method. +func (m *MockManagementServiceIface) NewPrepareForShutdownParams(managementserverid UUID) *PrepareForShutdownParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewPrepareForShutdownParams", managementserverid) + ret0, _ := ret[0].(*PrepareForShutdownParams) + return ret0 +} + +// NewPrepareForShutdownParams indicates an expected call of NewPrepareForShutdownParams. +func (mr *MockManagementServiceIfaceMockRecorder) NewPrepareForShutdownParams(managementserverid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewPrepareForShutdownParams", reflect.TypeOf((*MockManagementServiceIface)(nil).NewPrepareForShutdownParams), managementserverid) +} + +// NewReadyForShutdownParams mocks base method. +func (m *MockManagementServiceIface) NewReadyForShutdownParams() *ReadyForShutdownParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewReadyForShutdownParams") + ret0, _ := ret[0].(*ReadyForShutdownParams) + return ret0 +} + +// NewReadyForShutdownParams indicates an expected call of NewReadyForShutdownParams. +func (mr *MockManagementServiceIfaceMockRecorder) NewReadyForShutdownParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReadyForShutdownParams", reflect.TypeOf((*MockManagementServiceIface)(nil).NewReadyForShutdownParams)) +} + +// NewTriggerShutdownParams mocks base method. +func (m *MockManagementServiceIface) NewTriggerShutdownParams(managementserverid UUID) *TriggerShutdownParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewTriggerShutdownParams", managementserverid) + ret0, _ := ret[0].(*TriggerShutdownParams) + return ret0 +} + +// NewTriggerShutdownParams indicates an expected call of NewTriggerShutdownParams. +func (mr *MockManagementServiceIfaceMockRecorder) NewTriggerShutdownParams(managementserverid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewTriggerShutdownParams", reflect.TypeOf((*MockManagementServiceIface)(nil).NewTriggerShutdownParams), managementserverid) +} + +// PrepareForShutdown mocks base method. +func (m *MockManagementServiceIface) PrepareForShutdown(p *PrepareForShutdownParams) (*PrepareForShutdownResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PrepareForShutdown", p) + ret0, _ := ret[0].(*PrepareForShutdownResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PrepareForShutdown indicates an expected call of PrepareForShutdown. +func (mr *MockManagementServiceIfaceMockRecorder) PrepareForShutdown(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PrepareForShutdown", reflect.TypeOf((*MockManagementServiceIface)(nil).PrepareForShutdown), p) +} + +// ReadyForShutdown mocks base method. +func (m *MockManagementServiceIface) ReadyForShutdown(p *ReadyForShutdownParams) (*ReadyForShutdownResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReadyForShutdown", p) + ret0, _ := ret[0].(*ReadyForShutdownResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReadyForShutdown indicates an expected call of ReadyForShutdown. +func (mr *MockManagementServiceIfaceMockRecorder) ReadyForShutdown(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadyForShutdown", reflect.TypeOf((*MockManagementServiceIface)(nil).ReadyForShutdown), p) +} + +// TriggerShutdown mocks base method. +func (m *MockManagementServiceIface) TriggerShutdown(p *TriggerShutdownParams) (*TriggerShutdownResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "TriggerShutdown", p) + ret0, _ := ret[0].(*TriggerShutdownResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// TriggerShutdown indicates an expected call of TriggerShutdown. +func (mr *MockManagementServiceIfaceMockRecorder) TriggerShutdown(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TriggerShutdown", reflect.TypeOf((*MockManagementServiceIface)(nil).TriggerShutdown), p) +} diff --git a/cloudstack/MetricsService_mock.go b/cloudstack/MetricsService_mock.go index f3a0fddf..152724dd 100644 --- a/cloudstack/MetricsService_mock.go +++ b/cloudstack/MetricsService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/MetricsService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/MetricsService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/MetricsService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockMetricsServiceIface is a mock of MetricsServiceIface interface. type MockMetricsServiceIface struct { ctrl *gomock.Controller recorder *MockMetricsServiceIfaceMockRecorder + isgomock struct{} } // MockMetricsServiceIfaceMockRecorder is the mock recorder for MockMetricsServiceIface. @@ -62,7 +68,7 @@ func (m *MockMetricsServiceIface) ListInfrastructure(p *ListInfrastructureParams } // ListInfrastructure indicates an expected call of ListInfrastructure. -func (mr *MockMetricsServiceIfaceMockRecorder) ListInfrastructure(p interface{}) *gomock.Call { +func (mr *MockMetricsServiceIfaceMockRecorder) ListInfrastructure(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListInfrastructure", reflect.TypeOf((*MockMetricsServiceIface)(nil).ListInfrastructure), p) } diff --git a/cloudstack/MiscService.go b/cloudstack/MiscService.go new file mode 100644 index 00000000..14e58702 --- /dev/null +++ b/cloudstack/MiscService.go @@ -0,0 +1,105 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" +) + +type MiscServiceIface interface { + ListElastistorInterface(p *ListElastistorInterfaceParams) (*ListElastistorInterfaceResponse, error) + NewListElastistorInterfaceParams() *ListElastistorInterfaceParams +} + +type ListElastistorInterfaceParams struct { + p map[string]interface{} +} + +func (p *ListElastistorInterfaceParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["controllerid"]; found { + u.Set("controllerid", v.(string)) + } + return u +} + +func (p *ListElastistorInterfaceParams) SetControllerid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["controllerid"] = v +} + +func (p *ListElastistorInterfaceParams) ResetControllerid() { + if p.p != nil && p.p["controllerid"] != nil { + delete(p.p, "controllerid") + } +} + +func (p *ListElastistorInterfaceParams) GetControllerid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["controllerid"].(string) + return value, ok +} + +// You should always use this function to get a new ListElastistorInterfaceParams instance, +// as then you are sure you have configured all required params +func (s *MiscService) NewListElastistorInterfaceParams() *ListElastistorInterfaceParams { + p := &ListElastistorInterfaceParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists the network Interfaces of elastistor +func (s *MiscService) ListElastistorInterface(p *ListElastistorInterfaceParams) (*ListElastistorInterfaceResponse, error) { + resp, err := s.cs.newRequest("listElastistorInterface", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListElastistorInterfaceResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListElastistorInterfaceResponse struct { + Count int `json:"count"` + ElastistorInterface []*ElastistorInterface `json:"elastistorinterface"` +} + +type ElastistorInterface struct { + Compression string `json:"compression"` + Deduplication string `json:"deduplication"` + Graceallowed string `json:"graceallowed"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Sync string `json:"sync"` +} diff --git a/cloudstack/MiscService_mock.go b/cloudstack/MiscService_mock.go new file mode 100644 index 00000000..afd4bcb1 --- /dev/null +++ b/cloudstack/MiscService_mock.go @@ -0,0 +1,88 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/MiscService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/MiscService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/MiscService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockMiscServiceIface is a mock of MiscServiceIface interface. +type MockMiscServiceIface struct { + ctrl *gomock.Controller + recorder *MockMiscServiceIfaceMockRecorder + isgomock struct{} +} + +// MockMiscServiceIfaceMockRecorder is the mock recorder for MockMiscServiceIface. +type MockMiscServiceIfaceMockRecorder struct { + mock *MockMiscServiceIface +} + +// NewMockMiscServiceIface creates a new mock instance. +func NewMockMiscServiceIface(ctrl *gomock.Controller) *MockMiscServiceIface { + mock := &MockMiscServiceIface{ctrl: ctrl} + mock.recorder = &MockMiscServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockMiscServiceIface) EXPECT() *MockMiscServiceIfaceMockRecorder { + return m.recorder +} + +// ListElastistorInterface mocks base method. +func (m *MockMiscServiceIface) ListElastistorInterface(p *ListElastistorInterfaceParams) (*ListElastistorInterfaceResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListElastistorInterface", p) + ret0, _ := ret[0].(*ListElastistorInterfaceResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListElastistorInterface indicates an expected call of ListElastistorInterface. +func (mr *MockMiscServiceIfaceMockRecorder) ListElastistorInterface(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListElastistorInterface", reflect.TypeOf((*MockMiscServiceIface)(nil).ListElastistorInterface), p) +} + +// NewListElastistorInterfaceParams mocks base method. +func (m *MockMiscServiceIface) NewListElastistorInterfaceParams() *ListElastistorInterfaceParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListElastistorInterfaceParams") + ret0, _ := ret[0].(*ListElastistorInterfaceParams) + return ret0 +} + +// NewListElastistorInterfaceParams indicates an expected call of NewListElastistorInterfaceParams. +func (mr *MockMiscServiceIfaceMockRecorder) NewListElastistorInterfaceParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListElastistorInterfaceParams", reflect.TypeOf((*MockMiscServiceIface)(nil).NewListElastistorInterfaceParams)) +} diff --git a/cloudstack/NATService_mock.go b/cloudstack/NATService_mock.go index 5d75bc81..e7f6efe0 100644 --- a/cloudstack/NATService_mock.go +++ b/cloudstack/NATService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NATService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NATService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NATService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNATServiceIface is a mock of NATServiceIface interface. type MockNATServiceIface struct { ctrl *gomock.Controller recorder *MockNATServiceIfaceMockRecorder + isgomock struct{} } // MockNATServiceIfaceMockRecorder is the mock recorder for MockNATServiceIface. @@ -62,7 +68,7 @@ func (m *MockNATServiceIface) CreateIpForwardingRule(p *CreateIpForwardingRulePa } // CreateIpForwardingRule indicates an expected call of CreateIpForwardingRule. -func (mr *MockNATServiceIfaceMockRecorder) CreateIpForwardingRule(p interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) CreateIpForwardingRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIpForwardingRule", reflect.TypeOf((*MockNATServiceIface)(nil).CreateIpForwardingRule), p) } @@ -77,7 +83,7 @@ func (m *MockNATServiceIface) DeleteIpForwardingRule(p *DeleteIpForwardingRulePa } // DeleteIpForwardingRule indicates an expected call of DeleteIpForwardingRule. -func (mr *MockNATServiceIfaceMockRecorder) DeleteIpForwardingRule(p interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) DeleteIpForwardingRule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteIpForwardingRule", reflect.TypeOf((*MockNATServiceIface)(nil).DeleteIpForwardingRule), p) } @@ -92,7 +98,7 @@ func (m *MockNATServiceIface) DisableStaticNat(p *DisableStaticNatParams) (*Disa } // DisableStaticNat indicates an expected call of DisableStaticNat. -func (mr *MockNATServiceIfaceMockRecorder) DisableStaticNat(p interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) DisableStaticNat(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableStaticNat", reflect.TypeOf((*MockNATServiceIface)(nil).DisableStaticNat), p) } @@ -107,7 +113,7 @@ func (m *MockNATServiceIface) EnableStaticNat(p *EnableStaticNatParams) (*Enable } // EnableStaticNat indicates an expected call of EnableStaticNat. -func (mr *MockNATServiceIfaceMockRecorder) EnableStaticNat(p interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) EnableStaticNat(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableStaticNat", reflect.TypeOf((*MockNATServiceIface)(nil).EnableStaticNat), p) } @@ -115,7 +121,7 @@ func (mr *MockNATServiceIfaceMockRecorder) EnableStaticNat(p interface{}) *gomoc // GetIpForwardingRuleByID mocks base method. func (m *MockNATServiceIface) GetIpForwardingRuleByID(id string, opts ...OptionFunc) (*IpForwardingRule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -127,9 +133,9 @@ func (m *MockNATServiceIface) GetIpForwardingRuleByID(id string, opts ...OptionF } // GetIpForwardingRuleByID indicates an expected call of GetIpForwardingRuleByID. -func (mr *MockNATServiceIfaceMockRecorder) GetIpForwardingRuleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) GetIpForwardingRuleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIpForwardingRuleByID", reflect.TypeOf((*MockNATServiceIface)(nil).GetIpForwardingRuleByID), varargs...) } @@ -143,7 +149,7 @@ func (m *MockNATServiceIface) ListIpForwardingRules(p *ListIpForwardingRulesPara } // ListIpForwardingRules indicates an expected call of ListIpForwardingRules. -func (mr *MockNATServiceIfaceMockRecorder) ListIpForwardingRules(p interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) ListIpForwardingRules(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIpForwardingRules", reflect.TypeOf((*MockNATServiceIface)(nil).ListIpForwardingRules), p) } @@ -157,7 +163,7 @@ func (m *MockNATServiceIface) NewCreateIpForwardingRuleParams(ipaddressid, proto } // NewCreateIpForwardingRuleParams indicates an expected call of NewCreateIpForwardingRuleParams. -func (mr *MockNATServiceIfaceMockRecorder) NewCreateIpForwardingRuleParams(ipaddressid, protocol, startport interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) NewCreateIpForwardingRuleParams(ipaddressid, protocol, startport any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateIpForwardingRuleParams", reflect.TypeOf((*MockNATServiceIface)(nil).NewCreateIpForwardingRuleParams), ipaddressid, protocol, startport) } @@ -171,7 +177,7 @@ func (m *MockNATServiceIface) NewDeleteIpForwardingRuleParams(id string) *Delete } // NewDeleteIpForwardingRuleParams indicates an expected call of NewDeleteIpForwardingRuleParams. -func (mr *MockNATServiceIfaceMockRecorder) NewDeleteIpForwardingRuleParams(id interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) NewDeleteIpForwardingRuleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteIpForwardingRuleParams", reflect.TypeOf((*MockNATServiceIface)(nil).NewDeleteIpForwardingRuleParams), id) } @@ -185,7 +191,7 @@ func (m *MockNATServiceIface) NewDisableStaticNatParams(ipaddressid string) *Dis } // NewDisableStaticNatParams indicates an expected call of NewDisableStaticNatParams. -func (mr *MockNATServiceIfaceMockRecorder) NewDisableStaticNatParams(ipaddressid interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) NewDisableStaticNatParams(ipaddressid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableStaticNatParams", reflect.TypeOf((*MockNATServiceIface)(nil).NewDisableStaticNatParams), ipaddressid) } @@ -199,7 +205,7 @@ func (m *MockNATServiceIface) NewEnableStaticNatParams(ipaddressid, virtualmachi } // NewEnableStaticNatParams indicates an expected call of NewEnableStaticNatParams. -func (mr *MockNATServiceIfaceMockRecorder) NewEnableStaticNatParams(ipaddressid, virtualmachineid interface{}) *gomock.Call { +func (mr *MockNATServiceIfaceMockRecorder) NewEnableStaticNatParams(ipaddressid, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableStaticNatParams", reflect.TypeOf((*MockNATServiceIface)(nil).NewEnableStaticNatParams), ipaddressid, virtualmachineid) } diff --git a/cloudstack/NetscalerService.go b/cloudstack/NetscalerService.go new file mode 100644 index 00000000..c619fb76 --- /dev/null +++ b/cloudstack/NetscalerService.go @@ -0,0 +1,1578 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" +) + +type NetscalerServiceIface interface { + AddNetscalerLoadBalancer(p *AddNetscalerLoadBalancerParams) (*AddNetscalerLoadBalancerResponse, error) + NewAddNetscalerLoadBalancerParams(networkdevicetype string, password string, physicalnetworkid string, url string, username string) *AddNetscalerLoadBalancerParams + ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) + NewConfigureNetscalerLoadBalancerParams(lbdeviceid string) *ConfigureNetscalerLoadBalancerParams + DeleteNetscalerControlCenter(p *DeleteNetscalerControlCenterParams) (*DeleteNetscalerControlCenterResponse, error) + NewDeleteNetscalerControlCenterParams(id string) *DeleteNetscalerControlCenterParams + DeleteNetscalerLoadBalancer(p *DeleteNetscalerLoadBalancerParams) (*DeleteNetscalerLoadBalancerResponse, error) + NewDeleteNetscalerLoadBalancerParams(lbdeviceid string) *DeleteNetscalerLoadBalancerParams + ListNetscalerControlCenter(p *ListNetscalerControlCenterParams) (*ListNetscalerControlCenterResponse, error) + NewListNetscalerControlCenterParams() *ListNetscalerControlCenterParams + ListNetscalerLoadBalancerNetworks(p *ListNetscalerLoadBalancerNetworksParams) (*ListNetscalerLoadBalancerNetworksResponse, error) + NewListNetscalerLoadBalancerNetworksParams(lbdeviceid string) *ListNetscalerLoadBalancerNetworksParams + GetNetscalerLoadBalancerNetworkID(keyword string, lbdeviceid string, opts ...OptionFunc) (string, int, error) + ListNetscalerLoadBalancers(p *ListNetscalerLoadBalancersParams) (*ListNetscalerLoadBalancersResponse, error) + NewListNetscalerLoadBalancersParams() *ListNetscalerLoadBalancersParams + RegisterNetscalerControlCenter(p *RegisterNetscalerControlCenterParams) (*RegisterNetscalerControlCenterResponse, error) + NewRegisterNetscalerControlCenterParams(ipaddress string, numretries int, password string, username string) *RegisterNetscalerControlCenterParams + RegisterNetscalerServicePackage(p *RegisterNetscalerServicePackageParams) (*RegisterNetscalerServicePackageResponse, error) + NewRegisterNetscalerServicePackageParams(description string, name string) *RegisterNetscalerServicePackageParams +} + +type AddNetscalerLoadBalancerParams struct { + p map[string]interface{} +} + +func (p *AddNetscalerLoadBalancerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["gslbprovider"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("gslbprovider", vv) + } + if v, found := p.p["gslbproviderprivateip"]; found { + u.Set("gslbproviderprivateip", v.(string)) + } + if v, found := p.p["gslbproviderpublicip"]; found { + u.Set("gslbproviderpublicip", v.(string)) + } + if v, found := p.p["isexclusivegslbprovider"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isexclusivegslbprovider", vv) + } + if v, found := p.p["networkdevicetype"]; found { + u.Set("networkdevicetype", v.(string)) + } + if v, found := p.p["password"]; found { + u.Set("password", v.(string)) + } + if v, found := p.p["physicalnetworkid"]; found { + u.Set("physicalnetworkid", v.(string)) + } + if v, found := p.p["url"]; found { + u.Set("url", v.(string)) + } + if v, found := p.p["username"]; found { + u.Set("username", v.(string)) + } + return u +} + +func (p *AddNetscalerLoadBalancerParams) SetGslbprovider(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["gslbprovider"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetGslbprovider() { + if p.p != nil && p.p["gslbprovider"] != nil { + delete(p.p, "gslbprovider") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetGslbprovider() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["gslbprovider"].(bool) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetGslbproviderprivateip(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["gslbproviderprivateip"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetGslbproviderprivateip() { + if p.p != nil && p.p["gslbproviderprivateip"] != nil { + delete(p.p, "gslbproviderprivateip") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetGslbproviderprivateip() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["gslbproviderprivateip"].(string) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetGslbproviderpublicip(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["gslbproviderpublicip"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetGslbproviderpublicip() { + if p.p != nil && p.p["gslbproviderpublicip"] != nil { + delete(p.p, "gslbproviderpublicip") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetGslbproviderpublicip() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["gslbproviderpublicip"].(string) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetIsexclusivegslbprovider(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isexclusivegslbprovider"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetIsexclusivegslbprovider() { + if p.p != nil && p.p["isexclusivegslbprovider"] != nil { + delete(p.p, "isexclusivegslbprovider") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetIsexclusivegslbprovider() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isexclusivegslbprovider"].(bool) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetNetworkdevicetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkdevicetype"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetNetworkdevicetype() { + if p.p != nil && p.p["networkdevicetype"] != nil { + delete(p.p, "networkdevicetype") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetNetworkdevicetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkdevicetype"].(string) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetPhysicalnetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["physicalnetworkid"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetPhysicalnetworkid() { + if p.p != nil && p.p["physicalnetworkid"] != nil { + delete(p.p, "physicalnetworkid") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetPhysicalnetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["physicalnetworkid"].(string) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetUrl(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["url"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetUrl() { + if p.p != nil && p.p["url"] != nil { + delete(p.p, "url") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetUrl() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["url"].(string) + return value, ok +} + +func (p *AddNetscalerLoadBalancerParams) SetUsername(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["username"] = v +} + +func (p *AddNetscalerLoadBalancerParams) ResetUsername() { + if p.p != nil && p.p["username"] != nil { + delete(p.p, "username") + } +} + +func (p *AddNetscalerLoadBalancerParams) GetUsername() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["username"].(string) + return value, ok +} + +// You should always use this function to get a new AddNetscalerLoadBalancerParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewAddNetscalerLoadBalancerParams(networkdevicetype string, password string, physicalnetworkid string, url string, username string) *AddNetscalerLoadBalancerParams { + p := &AddNetscalerLoadBalancerParams{} + p.p = make(map[string]interface{}) + p.p["networkdevicetype"] = networkdevicetype + p.p["password"] = password + p.p["physicalnetworkid"] = physicalnetworkid + p.p["url"] = url + p.p["username"] = username + return p +} + +// Adds a netscaler load balancer device +func (s *NetscalerService) AddNetscalerLoadBalancer(p *AddNetscalerLoadBalancerParams) (*AddNetscalerLoadBalancerResponse, error) { + resp, err := s.cs.newRequest("addNetscalerLoadBalancer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r AddNetscalerLoadBalancerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type AddNetscalerLoadBalancerResponse struct { + Gslbprovider bool `json:"gslbprovider"` + Gslbproviderprivateip string `json:"gslbproviderprivateip"` + Gslbproviderpublicip string `json:"gslbproviderpublicip"` + Ipaddress string `json:"ipaddress"` + Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lbdevicecapacity int64 `json:"lbdevicecapacity"` + Lbdevicededicated bool `json:"lbdevicededicated"` + Lbdeviceid string `json:"lbdeviceid"` + Lbdevicename string `json:"lbdevicename"` + Lbdevicestate string `json:"lbdevicestate"` + Physicalnetworkid string `json:"physicalnetworkid"` + Podids []string `json:"podids"` + Privateinterface string `json:"privateinterface"` + Provider string `json:"provider"` + Publicinterface string `json:"publicinterface"` +} + +type ConfigureNetscalerLoadBalancerParams struct { + p map[string]interface{} +} + +func (p *ConfigureNetscalerLoadBalancerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["inline"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("inline", vv) + } + if v, found := p.p["lbdevicecapacity"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("lbdevicecapacity", vv) + } + if v, found := p.p["lbdevicededicated"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("lbdevicededicated", vv) + } + if v, found := p.p["lbdeviceid"]; found { + u.Set("lbdeviceid", v.(string)) + } + if v, found := p.p["podids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("podids", vv) + } + return u +} + +func (p *ConfigureNetscalerLoadBalancerParams) SetInline(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["inline"] = v +} + +func (p *ConfigureNetscalerLoadBalancerParams) ResetInline() { + if p.p != nil && p.p["inline"] != nil { + delete(p.p, "inline") + } +} + +func (p *ConfigureNetscalerLoadBalancerParams) GetInline() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["inline"].(bool) + return value, ok +} + +func (p *ConfigureNetscalerLoadBalancerParams) SetLbdevicecapacity(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["lbdevicecapacity"] = v +} + +func (p *ConfigureNetscalerLoadBalancerParams) ResetLbdevicecapacity() { + if p.p != nil && p.p["lbdevicecapacity"] != nil { + delete(p.p, "lbdevicecapacity") + } +} + +func (p *ConfigureNetscalerLoadBalancerParams) GetLbdevicecapacity() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["lbdevicecapacity"].(int64) + return value, ok +} + +func (p *ConfigureNetscalerLoadBalancerParams) SetLbdevicededicated(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["lbdevicededicated"] = v +} + +func (p *ConfigureNetscalerLoadBalancerParams) ResetLbdevicededicated() { + if p.p != nil && p.p["lbdevicededicated"] != nil { + delete(p.p, "lbdevicededicated") + } +} + +func (p *ConfigureNetscalerLoadBalancerParams) GetLbdevicededicated() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["lbdevicededicated"].(bool) + return value, ok +} + +func (p *ConfigureNetscalerLoadBalancerParams) SetLbdeviceid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["lbdeviceid"] = v +} + +func (p *ConfigureNetscalerLoadBalancerParams) ResetLbdeviceid() { + if p.p != nil && p.p["lbdeviceid"] != nil { + delete(p.p, "lbdeviceid") + } +} + +func (p *ConfigureNetscalerLoadBalancerParams) GetLbdeviceid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["lbdeviceid"].(string) + return value, ok +} + +func (p *ConfigureNetscalerLoadBalancerParams) SetPodids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["podids"] = v +} + +func (p *ConfigureNetscalerLoadBalancerParams) ResetPodids() { + if p.p != nil && p.p["podids"] != nil { + delete(p.p, "podids") + } +} + +func (p *ConfigureNetscalerLoadBalancerParams) GetPodids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["podids"].([]string) + return value, ok +} + +// You should always use this function to get a new ConfigureNetscalerLoadBalancerParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewConfigureNetscalerLoadBalancerParams(lbdeviceid string) *ConfigureNetscalerLoadBalancerParams { + p := &ConfigureNetscalerLoadBalancerParams{} + p.p = make(map[string]interface{}) + p.p["lbdeviceid"] = lbdeviceid + return p +} + +// configures a netscaler load balancer device +func (s *NetscalerService) ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) { + resp, err := s.cs.newRequest("configureNetscalerLoadBalancer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r NetscalerLoadBalancerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type NetscalerLoadBalancerResponse struct { + Gslbprovider bool `json:"gslbprovider"` + Gslbproviderprivateip string `json:"gslbproviderprivateip"` + Gslbproviderpublicip string `json:"gslbproviderpublicip"` + Ipaddress string `json:"ipaddress"` + Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lbdevicecapacity int64 `json:"lbdevicecapacity"` + Lbdevicededicated bool `json:"lbdevicededicated"` + Lbdeviceid string `json:"lbdeviceid"` + Lbdevicename string `json:"lbdevicename"` + Lbdevicestate string `json:"lbdevicestate"` + Physicalnetworkid string `json:"physicalnetworkid"` + Podids []string `json:"podids"` + Privateinterface string `json:"privateinterface"` + Provider string `json:"provider"` + Publicinterface string `json:"publicinterface"` +} + +type DeleteNetscalerControlCenterParams struct { + p map[string]interface{} +} + +func (p *DeleteNetscalerControlCenterParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteNetscalerControlCenterParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteNetscalerControlCenterParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteNetscalerControlCenterParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteNetscalerControlCenterParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewDeleteNetscalerControlCenterParams(id string) *DeleteNetscalerControlCenterParams { + p := &DeleteNetscalerControlCenterParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Delete Netscaler Control Center +func (s *NetscalerService) DeleteNetscalerControlCenter(p *DeleteNetscalerControlCenterParams) (*DeleteNetscalerControlCenterResponse, error) { + resp, err := s.cs.newRequest("deleteNetscalerControlCenter", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteNetscalerControlCenterResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type DeleteNetscalerControlCenterResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DeleteNetscalerControlCenterResponse) 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 DeleteNetscalerControlCenterResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type DeleteNetscalerLoadBalancerParams struct { + p map[string]interface{} +} + +func (p *DeleteNetscalerLoadBalancerParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["lbdeviceid"]; found { + u.Set("lbdeviceid", v.(string)) + } + return u +} + +func (p *DeleteNetscalerLoadBalancerParams) SetLbdeviceid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["lbdeviceid"] = v +} + +func (p *DeleteNetscalerLoadBalancerParams) ResetLbdeviceid() { + if p.p != nil && p.p["lbdeviceid"] != nil { + delete(p.p, "lbdeviceid") + } +} + +func (p *DeleteNetscalerLoadBalancerParams) GetLbdeviceid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["lbdeviceid"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteNetscalerLoadBalancerParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewDeleteNetscalerLoadBalancerParams(lbdeviceid string) *DeleteNetscalerLoadBalancerParams { + p := &DeleteNetscalerLoadBalancerParams{} + p.p = make(map[string]interface{}) + p.p["lbdeviceid"] = lbdeviceid + return p +} + +// delete a netscaler load balancer device +func (s *NetscalerService) DeleteNetscalerLoadBalancer(p *DeleteNetscalerLoadBalancerParams) (*DeleteNetscalerLoadBalancerResponse, error) { + resp, err := s.cs.newRequest("deleteNetscalerLoadBalancer", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteNetscalerLoadBalancerResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteNetscalerLoadBalancerResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ListNetscalerControlCenterParams struct { + p map[string]interface{} +} + +func (p *ListNetscalerControlCenterParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + return u +} + +func (p *ListNetscalerControlCenterParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListNetscalerControlCenterParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListNetscalerControlCenterParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListNetscalerControlCenterParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListNetscalerControlCenterParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListNetscalerControlCenterParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListNetscalerControlCenterParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListNetscalerControlCenterParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListNetscalerControlCenterParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +// You should always use this function to get a new ListNetscalerControlCenterParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewListNetscalerControlCenterParams() *ListNetscalerControlCenterParams { + p := &ListNetscalerControlCenterParams{} + p.p = make(map[string]interface{}) + return p +} + +// list control center +func (s *NetscalerService) ListNetscalerControlCenter(p *ListNetscalerControlCenterParams) (*ListNetscalerControlCenterResponse, error) { + resp, err := s.cs.newRequest("listNetscalerControlCenter", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListNetscalerControlCenterResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListNetscalerControlCenterResponse struct { + Count int `json:"count"` + NetscalerControlCenter []*NetscalerControlCenter `json:"netscalercontrolcenter"` +} + +type NetscalerControlCenter struct { + Id string `json:"id"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Numretries string `json:"numretries"` + Username string `json:"username"` + Uuid string `json:"uuid"` +} + +type ListNetscalerLoadBalancerNetworksParams struct { + p map[string]interface{} +} + +func (p *ListNetscalerLoadBalancerNetworksParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["lbdeviceid"]; found { + u.Set("lbdeviceid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + return u +} + +func (p *ListNetscalerLoadBalancerNetworksParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListNetscalerLoadBalancerNetworksParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListNetscalerLoadBalancerNetworksParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListNetscalerLoadBalancerNetworksParams) SetLbdeviceid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["lbdeviceid"] = v +} + +func (p *ListNetscalerLoadBalancerNetworksParams) ResetLbdeviceid() { + if p.p != nil && p.p["lbdeviceid"] != nil { + delete(p.p, "lbdeviceid") + } +} + +func (p *ListNetscalerLoadBalancerNetworksParams) GetLbdeviceid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["lbdeviceid"].(string) + return value, ok +} + +func (p *ListNetscalerLoadBalancerNetworksParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListNetscalerLoadBalancerNetworksParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListNetscalerLoadBalancerNetworksParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListNetscalerLoadBalancerNetworksParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListNetscalerLoadBalancerNetworksParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListNetscalerLoadBalancerNetworksParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +// You should always use this function to get a new ListNetscalerLoadBalancerNetworksParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewListNetscalerLoadBalancerNetworksParams(lbdeviceid string) *ListNetscalerLoadBalancerNetworksParams { + p := &ListNetscalerLoadBalancerNetworksParams{} + p.p = make(map[string]interface{}) + p.p["lbdeviceid"] = lbdeviceid + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *NetscalerService) GetNetscalerLoadBalancerNetworkID(keyword string, lbdeviceid string, opts ...OptionFunc) (string, int, error) { + p := &ListNetscalerLoadBalancerNetworksParams{} + p.p = make(map[string]interface{}) + + p.p["keyword"] = keyword + p.p["lbdeviceid"] = lbdeviceid + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return "", -1, err + } + } + + l, err := s.ListNetscalerLoadBalancerNetworks(p) + if err != nil { + return "", -1, err + } + + if l.Count == 0 { + return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + } + + if l.Count == 1 { + return l.NetscalerLoadBalancerNetworks[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.NetscalerLoadBalancerNetworks { + if v.Name == keyword { + return v.Id, l.Count, nil + } + } + } + return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) +} + +// lists network that are using a netscaler load balancer device +func (s *NetscalerService) ListNetscalerLoadBalancerNetworks(p *ListNetscalerLoadBalancerNetworksParams) (*ListNetscalerLoadBalancerNetworksResponse, error) { + resp, err := s.cs.newRequest("listNetscalerLoadBalancerNetworks", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListNetscalerLoadBalancerNetworksResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListNetscalerLoadBalancerNetworksResponse struct { + Count int `json:"count"` + NetscalerLoadBalancerNetworks []*NetscalerLoadBalancerNetwork `json:"netscalerloadbalancernetwork"` +} + +type NetscalerLoadBalancerNetwork struct { + Account string `json:"account"` + Aclid string `json:"aclid"` + Aclname string `json:"aclname"` + Acltype string `json:"acltype"` + Asnumber int64 `json:"asnumber"` + Asnumberid string `json:"asnumberid"` + Associatednetwork string `json:"associatednetwork"` + Associatednetworkid string `json:"associatednetworkid"` + Bgppeers []interface{} `json:"bgppeers"` + Broadcastdomaintype string `json:"broadcastdomaintype"` + 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"` + Dns1 string `json:"dns1"` + Dns2 string `json:"dns2"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressdefaultpolicy bool `json:"egressdefaultpolicy"` + Externalid string `json:"externalid"` + Gateway string `json:"gateway"` + Hasannotations bool `json:"hasannotations"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Internetprotocol string `json:"internetprotocol"` + Ip4routes []interface{} `json:"ip4routes"` + Ip4routing string `json:"ip4routing"` + Ip6cidr string `json:"ip6cidr"` + Ip6dns1 string `json:"ip6dns1"` + Ip6dns2 string `json:"ip6dns2"` + Ip6gateway string `json:"ip6gateway"` + Ip6routes []interface{} `json:"ip6routes"` + Ip6routing string `json:"ip6routing"` + Isdefault bool `json:"isdefault"` + Ispersistent bool `json:"ispersistent"` + Issystem bool `json:"issystem"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + 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"` + Privatemtu int `json:"privatemtu"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Publicmtu int `json:"publicmtu"` + 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"` + Strechedl2subnet bool `json:"strechedl2subnet"` + Subdomainaccess bool `json:"subdomainaccess"` + Supportsvmautoscaling bool `json:"supportsvmautoscaling"` + Tags []Tags `json:"tags"` + Traffictype string `json:"traffictype"` + Tungstenvirtualrouteruuid string `json:"tungstenvirtualrouteruuid"` + 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 NetscalerLoadBalancerNetworkService struct { + Capability []NetscalerLoadBalancerNetworkServiceCapability `json:"capability"` + Name string `json:"name"` + Provider []NetscalerLoadBalancerNetworkServiceProvider `json:"provider"` +} + +type NetscalerLoadBalancerNetworkServiceProvider struct { + Canenableindividualservice bool `json:"canenableindividualservice"` + Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"` + Id string `json:"id"` + Name string `json:"name"` + Physicalnetworkid string `json:"physicalnetworkid"` + Servicelist []string `json:"servicelist"` + State string `json:"state"` +} + +type NetscalerLoadBalancerNetworkServiceCapability struct { + Canchooseservicecapability bool `json:"canchooseservicecapability"` + Name string `json:"name"` + Value string `json:"value"` +} + +type ListNetscalerLoadBalancersParams struct { + p map[string]interface{} +} + +func (p *ListNetscalerLoadBalancersParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["lbdeviceid"]; found { + u.Set("lbdeviceid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["physicalnetworkid"]; found { + u.Set("physicalnetworkid", v.(string)) + } + return u +} + +func (p *ListNetscalerLoadBalancersParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListNetscalerLoadBalancersParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListNetscalerLoadBalancersParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListNetscalerLoadBalancersParams) SetLbdeviceid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["lbdeviceid"] = v +} + +func (p *ListNetscalerLoadBalancersParams) ResetLbdeviceid() { + if p.p != nil && p.p["lbdeviceid"] != nil { + delete(p.p, "lbdeviceid") + } +} + +func (p *ListNetscalerLoadBalancersParams) GetLbdeviceid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["lbdeviceid"].(string) + return value, ok +} + +func (p *ListNetscalerLoadBalancersParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListNetscalerLoadBalancersParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListNetscalerLoadBalancersParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListNetscalerLoadBalancersParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListNetscalerLoadBalancersParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListNetscalerLoadBalancersParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListNetscalerLoadBalancersParams) SetPhysicalnetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["physicalnetworkid"] = v +} + +func (p *ListNetscalerLoadBalancersParams) ResetPhysicalnetworkid() { + if p.p != nil && p.p["physicalnetworkid"] != nil { + delete(p.p, "physicalnetworkid") + } +} + +func (p *ListNetscalerLoadBalancersParams) GetPhysicalnetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["physicalnetworkid"].(string) + return value, ok +} + +// You should always use this function to get a new ListNetscalerLoadBalancersParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewListNetscalerLoadBalancersParams() *ListNetscalerLoadBalancersParams { + p := &ListNetscalerLoadBalancersParams{} + p.p = make(map[string]interface{}) + return p +} + +// lists netscaler load balancer devices +func (s *NetscalerService) ListNetscalerLoadBalancers(p *ListNetscalerLoadBalancersParams) (*ListNetscalerLoadBalancersResponse, error) { + resp, err := s.cs.newRequest("listNetscalerLoadBalancers", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListNetscalerLoadBalancersResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListNetscalerLoadBalancersResponse struct { + Count int `json:"count"` + NetscalerLoadBalancers []*NetscalerLoadBalancer `json:"netscalerloadbalancer"` +} + +type NetscalerLoadBalancer struct { + Gslbprovider bool `json:"gslbprovider"` + Gslbproviderprivateip string `json:"gslbproviderprivateip"` + Gslbproviderpublicip string `json:"gslbproviderpublicip"` + Ipaddress string `json:"ipaddress"` + Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lbdevicecapacity int64 `json:"lbdevicecapacity"` + Lbdevicededicated bool `json:"lbdevicededicated"` + Lbdeviceid string `json:"lbdeviceid"` + Lbdevicename string `json:"lbdevicename"` + Lbdevicestate string `json:"lbdevicestate"` + Physicalnetworkid string `json:"physicalnetworkid"` + Podids []string `json:"podids"` + Privateinterface string `json:"privateinterface"` + Provider string `json:"provider"` + Publicinterface string `json:"publicinterface"` +} + +type RegisterNetscalerControlCenterParams struct { + p map[string]interface{} +} + +func (p *RegisterNetscalerControlCenterParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["numretries"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("numretries", vv) + } + if v, found := p.p["password"]; found { + u.Set("password", v.(string)) + } + if v, found := p.p["username"]; found { + u.Set("username", v.(string)) + } + return u +} + +func (p *RegisterNetscalerControlCenterParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *RegisterNetscalerControlCenterParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *RegisterNetscalerControlCenterParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *RegisterNetscalerControlCenterParams) SetNumretries(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["numretries"] = v +} + +func (p *RegisterNetscalerControlCenterParams) ResetNumretries() { + if p.p != nil && p.p["numretries"] != nil { + delete(p.p, "numretries") + } +} + +func (p *RegisterNetscalerControlCenterParams) GetNumretries() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["numretries"].(int) + return value, ok +} + +func (p *RegisterNetscalerControlCenterParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *RegisterNetscalerControlCenterParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *RegisterNetscalerControlCenterParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +func (p *RegisterNetscalerControlCenterParams) SetUsername(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["username"] = v +} + +func (p *RegisterNetscalerControlCenterParams) ResetUsername() { + if p.p != nil && p.p["username"] != nil { + delete(p.p, "username") + } +} + +func (p *RegisterNetscalerControlCenterParams) GetUsername() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["username"].(string) + return value, ok +} + +// You should always use this function to get a new RegisterNetscalerControlCenterParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewRegisterNetscalerControlCenterParams(ipaddress string, numretries int, password string, username string) *RegisterNetscalerControlCenterParams { + p := &RegisterNetscalerControlCenterParams{} + p.p = make(map[string]interface{}) + p.p["ipaddress"] = ipaddress + p.p["numretries"] = numretries + p.p["password"] = password + p.p["username"] = username + return p +} + +// Adds a netscaler control center device +func (s *NetscalerService) RegisterNetscalerControlCenter(p *RegisterNetscalerControlCenterParams) (*RegisterNetscalerControlCenterResponse, error) { + resp, err := s.cs.newRequest("registerNetscalerControlCenter", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RegisterNetscalerControlCenterResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type RegisterNetscalerControlCenterResponse struct { + Gslbprovider bool `json:"gslbprovider"` + Gslbproviderprivateip string `json:"gslbproviderprivateip"` + Gslbproviderpublicip string `json:"gslbproviderpublicip"` + Ipaddress string `json:"ipaddress"` + Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lbdevicecapacity int64 `json:"lbdevicecapacity"` + Lbdevicededicated bool `json:"lbdevicededicated"` + Lbdeviceid string `json:"lbdeviceid"` + Lbdevicename string `json:"lbdevicename"` + Lbdevicestate string `json:"lbdevicestate"` + Physicalnetworkid string `json:"physicalnetworkid"` + Podids []string `json:"podids"` + Privateinterface string `json:"privateinterface"` + Provider string `json:"provider"` + Publicinterface string `json:"publicinterface"` +} + +type RegisterNetscalerServicePackageParams struct { + p map[string]interface{} +} + +func (p *RegisterNetscalerServicePackageParams) 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["name"]; found { + u.Set("name", v.(string)) + } + return u +} + +func (p *RegisterNetscalerServicePackageParams) SetDescription(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["description"] = v +} + +func (p *RegisterNetscalerServicePackageParams) ResetDescription() { + if p.p != nil && p.p["description"] != nil { + delete(p.p, "description") + } +} + +func (p *RegisterNetscalerServicePackageParams) GetDescription() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["description"].(string) + return value, ok +} + +func (p *RegisterNetscalerServicePackageParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *RegisterNetscalerServicePackageParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *RegisterNetscalerServicePackageParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +// You should always use this function to get a new RegisterNetscalerServicePackageParams instance, +// as then you are sure you have configured all required params +func (s *NetscalerService) NewRegisterNetscalerServicePackageParams(description string, name string) *RegisterNetscalerServicePackageParams { + p := &RegisterNetscalerServicePackageParams{} + p.p = make(map[string]interface{}) + p.p["description"] = description + p.p["name"] = name + return p +} + +// Registers NCC Service Package +func (s *NetscalerService) RegisterNetscalerServicePackage(p *RegisterNetscalerServicePackageParams) (*RegisterNetscalerServicePackageResponse, error) { + resp, err := s.cs.newRequest("registerNetscalerServicePackage", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RegisterNetscalerServicePackageResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type RegisterNetscalerServicePackageResponse struct { + Description string `json:"description"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` +} diff --git a/cloudstack/NetscalerService_mock.go b/cloudstack/NetscalerService_mock.go new file mode 100644 index 00000000..38472bfa --- /dev/null +++ b/cloudstack/NetscalerService_mock.go @@ -0,0 +1,341 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/NetscalerService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NetscalerService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NetscalerService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockNetscalerServiceIface is a mock of NetscalerServiceIface interface. +type MockNetscalerServiceIface struct { + ctrl *gomock.Controller + recorder *MockNetscalerServiceIfaceMockRecorder + isgomock struct{} +} + +// MockNetscalerServiceIfaceMockRecorder is the mock recorder for MockNetscalerServiceIface. +type MockNetscalerServiceIfaceMockRecorder struct { + mock *MockNetscalerServiceIface +} + +// NewMockNetscalerServiceIface creates a new mock instance. +func NewMockNetscalerServiceIface(ctrl *gomock.Controller) *MockNetscalerServiceIface { + mock := &MockNetscalerServiceIface{ctrl: ctrl} + mock.recorder = &MockNetscalerServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockNetscalerServiceIface) EXPECT() *MockNetscalerServiceIfaceMockRecorder { + return m.recorder +} + +// AddNetscalerLoadBalancer mocks base method. +func (m *MockNetscalerServiceIface) AddNetscalerLoadBalancer(p *AddNetscalerLoadBalancerParams) (*AddNetscalerLoadBalancerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AddNetscalerLoadBalancer", p) + ret0, _ := ret[0].(*AddNetscalerLoadBalancerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AddNetscalerLoadBalancer indicates an expected call of AddNetscalerLoadBalancer. +func (mr *MockNetscalerServiceIfaceMockRecorder) AddNetscalerLoadBalancer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetscalerLoadBalancer", reflect.TypeOf((*MockNetscalerServiceIface)(nil).AddNetscalerLoadBalancer), p) +} + +// ConfigureNetscalerLoadBalancer mocks base method. +func (m *MockNetscalerServiceIface) ConfigureNetscalerLoadBalancer(p *ConfigureNetscalerLoadBalancerParams) (*NetscalerLoadBalancerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ConfigureNetscalerLoadBalancer", p) + ret0, _ := ret[0].(*NetscalerLoadBalancerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ConfigureNetscalerLoadBalancer indicates an expected call of ConfigureNetscalerLoadBalancer. +func (mr *MockNetscalerServiceIfaceMockRecorder) ConfigureNetscalerLoadBalancer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureNetscalerLoadBalancer", reflect.TypeOf((*MockNetscalerServiceIface)(nil).ConfigureNetscalerLoadBalancer), p) +} + +// DeleteNetscalerControlCenter mocks base method. +func (m *MockNetscalerServiceIface) DeleteNetscalerControlCenter(p *DeleteNetscalerControlCenterParams) (*DeleteNetscalerControlCenterResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteNetscalerControlCenter", p) + ret0, _ := ret[0].(*DeleteNetscalerControlCenterResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteNetscalerControlCenter indicates an expected call of DeleteNetscalerControlCenter. +func (mr *MockNetscalerServiceIfaceMockRecorder) DeleteNetscalerControlCenter(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetscalerControlCenter", reflect.TypeOf((*MockNetscalerServiceIface)(nil).DeleteNetscalerControlCenter), p) +} + +// DeleteNetscalerLoadBalancer mocks base method. +func (m *MockNetscalerServiceIface) DeleteNetscalerLoadBalancer(p *DeleteNetscalerLoadBalancerParams) (*DeleteNetscalerLoadBalancerResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteNetscalerLoadBalancer", p) + ret0, _ := ret[0].(*DeleteNetscalerLoadBalancerResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteNetscalerLoadBalancer indicates an expected call of DeleteNetscalerLoadBalancer. +func (mr *MockNetscalerServiceIfaceMockRecorder) DeleteNetscalerLoadBalancer(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetscalerLoadBalancer", reflect.TypeOf((*MockNetscalerServiceIface)(nil).DeleteNetscalerLoadBalancer), p) +} + +// GetNetscalerLoadBalancerNetworkID mocks base method. +func (m *MockNetscalerServiceIface) GetNetscalerLoadBalancerNetworkID(keyword, lbdeviceid string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{keyword, lbdeviceid} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetNetscalerLoadBalancerNetworkID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetNetscalerLoadBalancerNetworkID indicates an expected call of GetNetscalerLoadBalancerNetworkID. +func (mr *MockNetscalerServiceIfaceMockRecorder) GetNetscalerLoadBalancerNetworkID(keyword, lbdeviceid any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{keyword, lbdeviceid}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetscalerLoadBalancerNetworkID", reflect.TypeOf((*MockNetscalerServiceIface)(nil).GetNetscalerLoadBalancerNetworkID), varargs...) +} + +// ListNetscalerControlCenter mocks base method. +func (m *MockNetscalerServiceIface) ListNetscalerControlCenter(p *ListNetscalerControlCenterParams) (*ListNetscalerControlCenterResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListNetscalerControlCenter", p) + ret0, _ := ret[0].(*ListNetscalerControlCenterResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListNetscalerControlCenter indicates an expected call of ListNetscalerControlCenter. +func (mr *MockNetscalerServiceIfaceMockRecorder) ListNetscalerControlCenter(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetscalerControlCenter", reflect.TypeOf((*MockNetscalerServiceIface)(nil).ListNetscalerControlCenter), p) +} + +// ListNetscalerLoadBalancerNetworks mocks base method. +func (m *MockNetscalerServiceIface) ListNetscalerLoadBalancerNetworks(p *ListNetscalerLoadBalancerNetworksParams) (*ListNetscalerLoadBalancerNetworksResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListNetscalerLoadBalancerNetworks", p) + ret0, _ := ret[0].(*ListNetscalerLoadBalancerNetworksResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListNetscalerLoadBalancerNetworks indicates an expected call of ListNetscalerLoadBalancerNetworks. +func (mr *MockNetscalerServiceIfaceMockRecorder) ListNetscalerLoadBalancerNetworks(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetscalerLoadBalancerNetworks", reflect.TypeOf((*MockNetscalerServiceIface)(nil).ListNetscalerLoadBalancerNetworks), p) +} + +// ListNetscalerLoadBalancers mocks base method. +func (m *MockNetscalerServiceIface) ListNetscalerLoadBalancers(p *ListNetscalerLoadBalancersParams) (*ListNetscalerLoadBalancersResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListNetscalerLoadBalancers", p) + ret0, _ := ret[0].(*ListNetscalerLoadBalancersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListNetscalerLoadBalancers indicates an expected call of ListNetscalerLoadBalancers. +func (mr *MockNetscalerServiceIfaceMockRecorder) ListNetscalerLoadBalancers(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetscalerLoadBalancers", reflect.TypeOf((*MockNetscalerServiceIface)(nil).ListNetscalerLoadBalancers), p) +} + +// NewAddNetscalerLoadBalancerParams mocks base method. +func (m *MockNetscalerServiceIface) NewAddNetscalerLoadBalancerParams(networkdevicetype, password, physicalnetworkid, url, username string) *AddNetscalerLoadBalancerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewAddNetscalerLoadBalancerParams", networkdevicetype, password, physicalnetworkid, url, username) + ret0, _ := ret[0].(*AddNetscalerLoadBalancerParams) + return ret0 +} + +// NewAddNetscalerLoadBalancerParams indicates an expected call of NewAddNetscalerLoadBalancerParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewAddNetscalerLoadBalancerParams(networkdevicetype, password, physicalnetworkid, url, username any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddNetscalerLoadBalancerParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewAddNetscalerLoadBalancerParams), networkdevicetype, password, physicalnetworkid, url, username) +} + +// NewConfigureNetscalerLoadBalancerParams mocks base method. +func (m *MockNetscalerServiceIface) NewConfigureNetscalerLoadBalancerParams(lbdeviceid string) *ConfigureNetscalerLoadBalancerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewConfigureNetscalerLoadBalancerParams", lbdeviceid) + ret0, _ := ret[0].(*ConfigureNetscalerLoadBalancerParams) + return ret0 +} + +// NewConfigureNetscalerLoadBalancerParams indicates an expected call of NewConfigureNetscalerLoadBalancerParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewConfigureNetscalerLoadBalancerParams(lbdeviceid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureNetscalerLoadBalancerParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewConfigureNetscalerLoadBalancerParams), lbdeviceid) +} + +// NewDeleteNetscalerControlCenterParams mocks base method. +func (m *MockNetscalerServiceIface) NewDeleteNetscalerControlCenterParams(id string) *DeleteNetscalerControlCenterParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteNetscalerControlCenterParams", id) + ret0, _ := ret[0].(*DeleteNetscalerControlCenterParams) + return ret0 +} + +// NewDeleteNetscalerControlCenterParams indicates an expected call of NewDeleteNetscalerControlCenterParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewDeleteNetscalerControlCenterParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetscalerControlCenterParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewDeleteNetscalerControlCenterParams), id) +} + +// NewDeleteNetscalerLoadBalancerParams mocks base method. +func (m *MockNetscalerServiceIface) NewDeleteNetscalerLoadBalancerParams(lbdeviceid string) *DeleteNetscalerLoadBalancerParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteNetscalerLoadBalancerParams", lbdeviceid) + ret0, _ := ret[0].(*DeleteNetscalerLoadBalancerParams) + return ret0 +} + +// NewDeleteNetscalerLoadBalancerParams indicates an expected call of NewDeleteNetscalerLoadBalancerParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewDeleteNetscalerLoadBalancerParams(lbdeviceid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetscalerLoadBalancerParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewDeleteNetscalerLoadBalancerParams), lbdeviceid) +} + +// NewListNetscalerControlCenterParams mocks base method. +func (m *MockNetscalerServiceIface) NewListNetscalerControlCenterParams() *ListNetscalerControlCenterParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListNetscalerControlCenterParams") + ret0, _ := ret[0].(*ListNetscalerControlCenterParams) + return ret0 +} + +// NewListNetscalerControlCenterParams indicates an expected call of NewListNetscalerControlCenterParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewListNetscalerControlCenterParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetscalerControlCenterParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewListNetscalerControlCenterParams)) +} + +// NewListNetscalerLoadBalancerNetworksParams mocks base method. +func (m *MockNetscalerServiceIface) NewListNetscalerLoadBalancerNetworksParams(lbdeviceid string) *ListNetscalerLoadBalancerNetworksParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListNetscalerLoadBalancerNetworksParams", lbdeviceid) + ret0, _ := ret[0].(*ListNetscalerLoadBalancerNetworksParams) + return ret0 +} + +// NewListNetscalerLoadBalancerNetworksParams indicates an expected call of NewListNetscalerLoadBalancerNetworksParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewListNetscalerLoadBalancerNetworksParams(lbdeviceid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetscalerLoadBalancerNetworksParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewListNetscalerLoadBalancerNetworksParams), lbdeviceid) +} + +// NewListNetscalerLoadBalancersParams mocks base method. +func (m *MockNetscalerServiceIface) NewListNetscalerLoadBalancersParams() *ListNetscalerLoadBalancersParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListNetscalerLoadBalancersParams") + ret0, _ := ret[0].(*ListNetscalerLoadBalancersParams) + return ret0 +} + +// NewListNetscalerLoadBalancersParams indicates an expected call of NewListNetscalerLoadBalancersParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewListNetscalerLoadBalancersParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetscalerLoadBalancersParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewListNetscalerLoadBalancersParams)) +} + +// NewRegisterNetscalerControlCenterParams mocks base method. +func (m *MockNetscalerServiceIface) NewRegisterNetscalerControlCenterParams(ipaddress string, numretries int, password, username string) *RegisterNetscalerControlCenterParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRegisterNetscalerControlCenterParams", ipaddress, numretries, password, username) + ret0, _ := ret[0].(*RegisterNetscalerControlCenterParams) + return ret0 +} + +// NewRegisterNetscalerControlCenterParams indicates an expected call of NewRegisterNetscalerControlCenterParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewRegisterNetscalerControlCenterParams(ipaddress, numretries, password, username any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterNetscalerControlCenterParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewRegisterNetscalerControlCenterParams), ipaddress, numretries, password, username) +} + +// NewRegisterNetscalerServicePackageParams mocks base method. +func (m *MockNetscalerServiceIface) NewRegisterNetscalerServicePackageParams(description, name string) *RegisterNetscalerServicePackageParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRegisterNetscalerServicePackageParams", description, name) + ret0, _ := ret[0].(*RegisterNetscalerServicePackageParams) + return ret0 +} + +// NewRegisterNetscalerServicePackageParams indicates an expected call of NewRegisterNetscalerServicePackageParams. +func (mr *MockNetscalerServiceIfaceMockRecorder) NewRegisterNetscalerServicePackageParams(description, name any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterNetscalerServicePackageParams", reflect.TypeOf((*MockNetscalerServiceIface)(nil).NewRegisterNetscalerServicePackageParams), description, name) +} + +// RegisterNetscalerControlCenter mocks base method. +func (m *MockNetscalerServiceIface) RegisterNetscalerControlCenter(p *RegisterNetscalerControlCenterParams) (*RegisterNetscalerControlCenterResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RegisterNetscalerControlCenter", p) + ret0, _ := ret[0].(*RegisterNetscalerControlCenterResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RegisterNetscalerControlCenter indicates an expected call of RegisterNetscalerControlCenter. +func (mr *MockNetscalerServiceIfaceMockRecorder) RegisterNetscalerControlCenter(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterNetscalerControlCenter", reflect.TypeOf((*MockNetscalerServiceIface)(nil).RegisterNetscalerControlCenter), p) +} + +// RegisterNetscalerServicePackage mocks base method. +func (m *MockNetscalerServiceIface) RegisterNetscalerServicePackage(p *RegisterNetscalerServicePackageParams) (*RegisterNetscalerServicePackageResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RegisterNetscalerServicePackage", p) + ret0, _ := ret[0].(*RegisterNetscalerServicePackageResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RegisterNetscalerServicePackage indicates an expected call of RegisterNetscalerServicePackage. +func (mr *MockNetscalerServiceIfaceMockRecorder) RegisterNetscalerServicePackage(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterNetscalerServicePackage", reflect.TypeOf((*MockNetscalerServiceIface)(nil).RegisterNetscalerServicePackage), p) +} diff --git a/cloudstack/NetworkACLService.go b/cloudstack/NetworkACLService.go index 42166eb0..5fcae6ce 100644 --- a/cloudstack/NetworkACLService.go +++ b/cloudstack/NetworkACLService.go @@ -44,6 +44,8 @@ type NetworkACLServiceIface interface { ListNetworkACLs(p *ListNetworkACLsParams) (*ListNetworkACLsResponse, error) NewListNetworkACLsParams() *ListNetworkACLsParams GetNetworkACLByID(id string, opts ...OptionFunc) (*NetworkACL, int, error) + MoveNetworkAclItem(p *MoveNetworkAclItemParams) (*MoveNetworkAclItemResponse, error) + NewMoveNetworkAclItemParams(id string) *MoveNetworkAclItemParams ReplaceNetworkACLList(p *ReplaceNetworkACLListParams) (*ReplaceNetworkACLListResponse, error) NewReplaceNetworkACLListParams(aclid string) *ReplaceNetworkACLListParams UpdateNetworkACLItem(p *UpdateNetworkACLItemParams) (*UpdateNetworkACLItemResponse, error) @@ -1715,6 +1717,203 @@ type NetworkACL struct { Traffictype string `json:"traffictype"` } +type MoveNetworkAclItemParams struct { + p map[string]interface{} +} + +func (p *MoveNetworkAclItemParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["aclconsistencyhash"]; found { + u.Set("aclconsistencyhash", v.(string)) + } + if v, found := p.p["customid"]; found { + u.Set("customid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["nextaclruleid"]; found { + u.Set("nextaclruleid", v.(string)) + } + if v, found := p.p["previousaclruleid"]; found { + u.Set("previousaclruleid", v.(string)) + } + return u +} + +func (p *MoveNetworkAclItemParams) SetAclconsistencyhash(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["aclconsistencyhash"] = v +} + +func (p *MoveNetworkAclItemParams) ResetAclconsistencyhash() { + if p.p != nil && p.p["aclconsistencyhash"] != nil { + delete(p.p, "aclconsistencyhash") + } +} + +func (p *MoveNetworkAclItemParams) GetAclconsistencyhash() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["aclconsistencyhash"].(string) + return value, ok +} + +func (p *MoveNetworkAclItemParams) SetCustomid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["customid"] = v +} + +func (p *MoveNetworkAclItemParams) ResetCustomid() { + if p.p != nil && p.p["customid"] != nil { + delete(p.p, "customid") + } +} + +func (p *MoveNetworkAclItemParams) GetCustomid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["customid"].(string) + return value, ok +} + +func (p *MoveNetworkAclItemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *MoveNetworkAclItemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *MoveNetworkAclItemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *MoveNetworkAclItemParams) SetNextaclruleid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["nextaclruleid"] = v +} + +func (p *MoveNetworkAclItemParams) ResetNextaclruleid() { + if p.p != nil && p.p["nextaclruleid"] != nil { + delete(p.p, "nextaclruleid") + } +} + +func (p *MoveNetworkAclItemParams) GetNextaclruleid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["nextaclruleid"].(string) + return value, ok +} + +func (p *MoveNetworkAclItemParams) SetPreviousaclruleid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["previousaclruleid"] = v +} + +func (p *MoveNetworkAclItemParams) ResetPreviousaclruleid() { + if p.p != nil && p.p["previousaclruleid"] != nil { + delete(p.p, "previousaclruleid") + } +} + +func (p *MoveNetworkAclItemParams) GetPreviousaclruleid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["previousaclruleid"].(string) + return value, ok +} + +// You should always use this function to get a new MoveNetworkAclItemParams instance, +// as then you are sure you have configured all required params +func (s *NetworkACLService) NewMoveNetworkAclItemParams(id string) *MoveNetworkAclItemParams { + p := &MoveNetworkAclItemParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Move an ACL rule to a position bettwen two other ACL rules of the same ACL network list +func (s *NetworkACLService) MoveNetworkAclItem(p *MoveNetworkAclItemParams) (*MoveNetworkAclItemResponse, error) { + resp, err := s.cs.newRequest("moveNetworkAclItem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r MoveNetworkAclItemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type MoveNetworkAclItemResponse struct { + Aclid string `json:"aclid"` + Aclname string `json:"aclname"` + Action string `json:"action"` + Cidrlist string `json:"cidrlist"` + Endport string `json:"endport"` + Fordisplay bool `json:"fordisplay"` + Icmpcode int `json:"icmpcode"` + Icmptype int `json:"icmptype"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Number int `json:"number"` + Protocol string `json:"protocol"` + Reason string `json:"reason"` + Startport string `json:"startport"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Traffictype string `json:"traffictype"` +} + type ReplaceNetworkACLListParams struct { p map[string]interface{} } diff --git a/cloudstack/NetworkACLService_mock.go b/cloudstack/NetworkACLService_mock.go index 3d261653..8e4e4e6d 100644 --- a/cloudstack/NetworkACLService_mock.go +++ b/cloudstack/NetworkACLService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NetworkACLService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NetworkACLService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NetworkACLService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNetworkACLServiceIface is a mock of NetworkACLServiceIface interface. type MockNetworkACLServiceIface struct { ctrl *gomock.Controller recorder *MockNetworkACLServiceIfaceMockRecorder + isgomock struct{} } // MockNetworkACLServiceIfaceMockRecorder is the mock recorder for MockNetworkACLServiceIface. @@ -62,7 +68,7 @@ func (m *MockNetworkACLServiceIface) CreateNetworkACL(p *CreateNetworkACLParams) } // CreateNetworkACL indicates an expected call of CreateNetworkACL. -func (mr *MockNetworkACLServiceIfaceMockRecorder) CreateNetworkACL(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) CreateNetworkACL(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkACL", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).CreateNetworkACL), p) } @@ -77,7 +83,7 @@ func (m *MockNetworkACLServiceIface) CreateNetworkACLList(p *CreateNetworkACLLis } // CreateNetworkACLList indicates an expected call of CreateNetworkACLList. -func (mr *MockNetworkACLServiceIfaceMockRecorder) CreateNetworkACLList(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) CreateNetworkACLList(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkACLList", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).CreateNetworkACLList), p) } @@ -92,7 +98,7 @@ func (m *MockNetworkACLServiceIface) DeleteNetworkACL(p *DeleteNetworkACLParams) } // DeleteNetworkACL indicates an expected call of DeleteNetworkACL. -func (mr *MockNetworkACLServiceIfaceMockRecorder) DeleteNetworkACL(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) DeleteNetworkACL(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkACL", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).DeleteNetworkACL), p) } @@ -107,7 +113,7 @@ func (m *MockNetworkACLServiceIface) DeleteNetworkACLList(p *DeleteNetworkACLLis } // DeleteNetworkACLList indicates an expected call of DeleteNetworkACLList. -func (mr *MockNetworkACLServiceIfaceMockRecorder) DeleteNetworkACLList(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) DeleteNetworkACLList(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkACLList", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).DeleteNetworkACLList), p) } @@ -115,7 +121,7 @@ func (mr *MockNetworkACLServiceIfaceMockRecorder) DeleteNetworkACLList(p interfa // GetNetworkACLByID mocks base method. func (m *MockNetworkACLServiceIface) GetNetworkACLByID(id string, opts ...OptionFunc) (*NetworkACL, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +133,16 @@ func (m *MockNetworkACLServiceIface) GetNetworkACLByID(id string, opts ...Option } // GetNetworkACLByID indicates an expected call of GetNetworkACLByID. -func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkACLByID", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).GetNetworkACLByID), varargs...) } // GetNetworkACLListByID mocks base method. func (m *MockNetworkACLServiceIface) GetNetworkACLListByID(id string, opts ...OptionFunc) (*NetworkACLList, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -148,16 +154,16 @@ func (m *MockNetworkACLServiceIface) GetNetworkACLListByID(id string, opts ...Op } // GetNetworkACLListByID indicates an expected call of GetNetworkACLListByID. -func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLListByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLListByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkACLListByID", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).GetNetworkACLListByID), varargs...) } // GetNetworkACLListByName mocks base method. func (m *MockNetworkACLServiceIface) GetNetworkACLListByName(name string, opts ...OptionFunc) (*NetworkACLList, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -169,16 +175,16 @@ func (m *MockNetworkACLServiceIface) GetNetworkACLListByName(name string, opts . } // GetNetworkACLListByName indicates an expected call of GetNetworkACLListByName. -func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLListByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLListByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkACLListByName", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).GetNetworkACLListByName), varargs...) } // GetNetworkACLListID mocks base method. func (m *MockNetworkACLServiceIface) GetNetworkACLListID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -190,9 +196,9 @@ func (m *MockNetworkACLServiceIface) GetNetworkACLListID(name string, opts ...Op } // GetNetworkACLListID indicates an expected call of GetNetworkACLListID. -func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLListID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) GetNetworkACLListID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkACLListID", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).GetNetworkACLListID), varargs...) } @@ -206,7 +212,7 @@ func (m *MockNetworkACLServiceIface) ListNetworkACLLists(p *ListNetworkACLListsP } // ListNetworkACLLists indicates an expected call of ListNetworkACLLists. -func (mr *MockNetworkACLServiceIfaceMockRecorder) ListNetworkACLLists(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) ListNetworkACLLists(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkACLLists", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).ListNetworkACLLists), p) } @@ -221,11 +227,26 @@ func (m *MockNetworkACLServiceIface) ListNetworkACLs(p *ListNetworkACLsParams) ( } // ListNetworkACLs indicates an expected call of ListNetworkACLs. -func (mr *MockNetworkACLServiceIfaceMockRecorder) ListNetworkACLs(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) ListNetworkACLs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkACLs", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).ListNetworkACLs), p) } +// MoveNetworkAclItem mocks base method. +func (m *MockNetworkACLServiceIface) MoveNetworkAclItem(p *MoveNetworkAclItemParams) (*MoveNetworkAclItemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MoveNetworkAclItem", p) + ret0, _ := ret[0].(*MoveNetworkAclItemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MoveNetworkAclItem indicates an expected call of MoveNetworkAclItem. +func (mr *MockNetworkACLServiceIfaceMockRecorder) MoveNetworkAclItem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MoveNetworkAclItem", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).MoveNetworkAclItem), p) +} + // NewCreateNetworkACLListParams mocks base method. func (m *MockNetworkACLServiceIface) NewCreateNetworkACLListParams(name, vpcid string) *CreateNetworkACLListParams { m.ctrl.T.Helper() @@ -235,7 +256,7 @@ func (m *MockNetworkACLServiceIface) NewCreateNetworkACLListParams(name, vpcid s } // NewCreateNetworkACLListParams indicates an expected call of NewCreateNetworkACLListParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewCreateNetworkACLListParams(name, vpcid interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewCreateNetworkACLListParams(name, vpcid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkACLListParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewCreateNetworkACLListParams), name, vpcid) } @@ -249,7 +270,7 @@ func (m *MockNetworkACLServiceIface) NewCreateNetworkACLParams(protocol string) } // NewCreateNetworkACLParams indicates an expected call of NewCreateNetworkACLParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewCreateNetworkACLParams(protocol interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewCreateNetworkACLParams(protocol any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkACLParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewCreateNetworkACLParams), protocol) } @@ -263,7 +284,7 @@ func (m *MockNetworkACLServiceIface) NewDeleteNetworkACLListParams(id string) *D } // NewDeleteNetworkACLListParams indicates an expected call of NewDeleteNetworkACLListParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewDeleteNetworkACLListParams(id interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewDeleteNetworkACLListParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetworkACLListParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewDeleteNetworkACLListParams), id) } @@ -277,7 +298,7 @@ func (m *MockNetworkACLServiceIface) NewDeleteNetworkACLParams(id string) *Delet } // NewDeleteNetworkACLParams indicates an expected call of NewDeleteNetworkACLParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewDeleteNetworkACLParams(id interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewDeleteNetworkACLParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetworkACLParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewDeleteNetworkACLParams), id) } @@ -310,6 +331,20 @@ func (mr *MockNetworkACLServiceIfaceMockRecorder) NewListNetworkACLsParams() *go return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetworkACLsParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewListNetworkACLsParams)) } +// NewMoveNetworkAclItemParams mocks base method. +func (m *MockNetworkACLServiceIface) NewMoveNetworkAclItemParams(id string) *MoveNetworkAclItemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewMoveNetworkAclItemParams", id) + ret0, _ := ret[0].(*MoveNetworkAclItemParams) + return ret0 +} + +// NewMoveNetworkAclItemParams indicates an expected call of NewMoveNetworkAclItemParams. +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewMoveNetworkAclItemParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMoveNetworkAclItemParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewMoveNetworkAclItemParams), id) +} + // NewReplaceNetworkACLListParams mocks base method. func (m *MockNetworkACLServiceIface) NewReplaceNetworkACLListParams(aclid string) *ReplaceNetworkACLListParams { m.ctrl.T.Helper() @@ -319,7 +354,7 @@ func (m *MockNetworkACLServiceIface) NewReplaceNetworkACLListParams(aclid string } // NewReplaceNetworkACLListParams indicates an expected call of NewReplaceNetworkACLListParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewReplaceNetworkACLListParams(aclid interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewReplaceNetworkACLListParams(aclid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReplaceNetworkACLListParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewReplaceNetworkACLListParams), aclid) } @@ -333,7 +368,7 @@ func (m *MockNetworkACLServiceIface) NewUpdateNetworkACLItemParams(id string) *U } // NewUpdateNetworkACLItemParams indicates an expected call of NewUpdateNetworkACLItemParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewUpdateNetworkACLItemParams(id interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewUpdateNetworkACLItemParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateNetworkACLItemParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewUpdateNetworkACLItemParams), id) } @@ -347,7 +382,7 @@ func (m *MockNetworkACLServiceIface) NewUpdateNetworkACLListParams(id string) *U } // NewUpdateNetworkACLListParams indicates an expected call of NewUpdateNetworkACLListParams. -func (mr *MockNetworkACLServiceIfaceMockRecorder) NewUpdateNetworkACLListParams(id interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) NewUpdateNetworkACLListParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateNetworkACLListParams", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).NewUpdateNetworkACLListParams), id) } @@ -362,7 +397,7 @@ func (m *MockNetworkACLServiceIface) ReplaceNetworkACLList(p *ReplaceNetworkACLL } // ReplaceNetworkACLList indicates an expected call of ReplaceNetworkACLList. -func (mr *MockNetworkACLServiceIfaceMockRecorder) ReplaceNetworkACLList(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) ReplaceNetworkACLList(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplaceNetworkACLList", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).ReplaceNetworkACLList), p) } @@ -377,7 +412,7 @@ func (m *MockNetworkACLServiceIface) UpdateNetworkACLItem(p *UpdateNetworkACLIte } // UpdateNetworkACLItem indicates an expected call of UpdateNetworkACLItem. -func (mr *MockNetworkACLServiceIfaceMockRecorder) UpdateNetworkACLItem(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) UpdateNetworkACLItem(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkACLItem", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).UpdateNetworkACLItem), p) } @@ -392,7 +427,7 @@ func (m *MockNetworkACLServiceIface) UpdateNetworkACLList(p *UpdateNetworkACLLis } // UpdateNetworkACLList indicates an expected call of UpdateNetworkACLList. -func (mr *MockNetworkACLServiceIfaceMockRecorder) UpdateNetworkACLList(p interface{}) *gomock.Call { +func (mr *MockNetworkACLServiceIfaceMockRecorder) UpdateNetworkACLList(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkACLList", reflect.TypeOf((*MockNetworkACLServiceIface)(nil).UpdateNetworkACLList), p) } diff --git a/cloudstack/NetworkDeviceService_mock.go b/cloudstack/NetworkDeviceService_mock.go index de6004d8..722d78c8 100644 --- a/cloudstack/NetworkDeviceService_mock.go +++ b/cloudstack/NetworkDeviceService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NetworkDeviceService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NetworkDeviceService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NetworkDeviceService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNetworkDeviceServiceIface is a mock of NetworkDeviceServiceIface interface. type MockNetworkDeviceServiceIface struct { ctrl *gomock.Controller recorder *MockNetworkDeviceServiceIfaceMockRecorder + isgomock struct{} } // MockNetworkDeviceServiceIfaceMockRecorder is the mock recorder for MockNetworkDeviceServiceIface. @@ -62,7 +68,7 @@ func (m *MockNetworkDeviceServiceIface) AddNetworkDevice(p *AddNetworkDevicePara } // AddNetworkDevice indicates an expected call of AddNetworkDevice. -func (mr *MockNetworkDeviceServiceIfaceMockRecorder) AddNetworkDevice(p interface{}) *gomock.Call { +func (mr *MockNetworkDeviceServiceIfaceMockRecorder) AddNetworkDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetworkDevice", reflect.TypeOf((*MockNetworkDeviceServiceIface)(nil).AddNetworkDevice), p) } @@ -77,7 +83,7 @@ func (m *MockNetworkDeviceServiceIface) DeleteNetworkDevice(p *DeleteNetworkDevi } // DeleteNetworkDevice indicates an expected call of DeleteNetworkDevice. -func (mr *MockNetworkDeviceServiceIfaceMockRecorder) DeleteNetworkDevice(p interface{}) *gomock.Call { +func (mr *MockNetworkDeviceServiceIfaceMockRecorder) DeleteNetworkDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkDevice", reflect.TypeOf((*MockNetworkDeviceServiceIface)(nil).DeleteNetworkDevice), p) } @@ -92,7 +98,7 @@ func (m *MockNetworkDeviceServiceIface) ListNetworkDevice(p *ListNetworkDevicePa } // ListNetworkDevice indicates an expected call of ListNetworkDevice. -func (mr *MockNetworkDeviceServiceIfaceMockRecorder) ListNetworkDevice(p interface{}) *gomock.Call { +func (mr *MockNetworkDeviceServiceIfaceMockRecorder) ListNetworkDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkDevice", reflect.TypeOf((*MockNetworkDeviceServiceIface)(nil).ListNetworkDevice), p) } @@ -120,7 +126,7 @@ func (m *MockNetworkDeviceServiceIface) NewDeleteNetworkDeviceParams(id string) } // NewDeleteNetworkDeviceParams indicates an expected call of NewDeleteNetworkDeviceParams. -func (mr *MockNetworkDeviceServiceIfaceMockRecorder) NewDeleteNetworkDeviceParams(id interface{}) *gomock.Call { +func (mr *MockNetworkDeviceServiceIfaceMockRecorder) NewDeleteNetworkDeviceParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetworkDeviceParams", reflect.TypeOf((*MockNetworkDeviceServiceIface)(nil).NewDeleteNetworkDeviceParams), id) } diff --git a/cloudstack/NetworkOfferingService_mock.go b/cloudstack/NetworkOfferingService_mock.go index aeda2fbb..91534471 100644 --- a/cloudstack/NetworkOfferingService_mock.go +++ b/cloudstack/NetworkOfferingService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NetworkOfferingService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NetworkOfferingService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NetworkOfferingService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNetworkOfferingServiceIface is a mock of NetworkOfferingServiceIface interface. type MockNetworkOfferingServiceIface struct { ctrl *gomock.Controller recorder *MockNetworkOfferingServiceIfaceMockRecorder + isgomock struct{} } // MockNetworkOfferingServiceIfaceMockRecorder is the mock recorder for MockNetworkOfferingServiceIface. @@ -62,7 +68,7 @@ func (m *MockNetworkOfferingServiceIface) CreateNetworkOffering(p *CreateNetwork } // CreateNetworkOffering indicates an expected call of CreateNetworkOffering. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) CreateNetworkOffering(p interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) CreateNetworkOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkOffering", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).CreateNetworkOffering), p) } @@ -77,7 +83,7 @@ func (m *MockNetworkOfferingServiceIface) DeleteNetworkOffering(p *DeleteNetwork } // DeleteNetworkOffering indicates an expected call of DeleteNetworkOffering. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) DeleteNetworkOffering(p interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) DeleteNetworkOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkOffering", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).DeleteNetworkOffering), p) } @@ -85,7 +91,7 @@ func (mr *MockNetworkOfferingServiceIfaceMockRecorder) DeleteNetworkOffering(p i // GetNetworkOfferingByID mocks base method. func (m *MockNetworkOfferingServiceIface) GetNetworkOfferingByID(id string, opts ...OptionFunc) (*NetworkOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockNetworkOfferingServiceIface) GetNetworkOfferingByID(id string, opts } // GetNetworkOfferingByID indicates an expected call of GetNetworkOfferingByID. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) GetNetworkOfferingByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) GetNetworkOfferingByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkOfferingByID", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).GetNetworkOfferingByID), varargs...) } // GetNetworkOfferingByName mocks base method. func (m *MockNetworkOfferingServiceIface) GetNetworkOfferingByName(name string, opts ...OptionFunc) (*NetworkOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockNetworkOfferingServiceIface) GetNetworkOfferingByName(name string, } // GetNetworkOfferingByName indicates an expected call of GetNetworkOfferingByName. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) GetNetworkOfferingByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) GetNetworkOfferingByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkOfferingByName", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).GetNetworkOfferingByName), varargs...) } // GetNetworkOfferingID mocks base method. func (m *MockNetworkOfferingServiceIface) GetNetworkOfferingID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockNetworkOfferingServiceIface) GetNetworkOfferingID(name string, opts } // GetNetworkOfferingID indicates an expected call of GetNetworkOfferingID. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) GetNetworkOfferingID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) GetNetworkOfferingID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkOfferingID", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).GetNetworkOfferingID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockNetworkOfferingServiceIface) ListNetworkOfferings(p *ListNetworkOff } // ListNetworkOfferings indicates an expected call of ListNetworkOfferings. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) ListNetworkOfferings(p interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) ListNetworkOfferings(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkOfferings", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).ListNetworkOfferings), p) } @@ -169,7 +175,7 @@ func (m *MockNetworkOfferingServiceIface) NewCreateNetworkOfferingParams(display } // NewCreateNetworkOfferingParams indicates an expected call of NewCreateNetworkOfferingParams. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) NewCreateNetworkOfferingParams(displaytext, guestiptype, name, traffictype interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) NewCreateNetworkOfferingParams(displaytext, guestiptype, name, traffictype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkOfferingParams", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).NewCreateNetworkOfferingParams), displaytext, guestiptype, name, traffictype) } @@ -183,7 +189,7 @@ func (m *MockNetworkOfferingServiceIface) NewDeleteNetworkOfferingParams(id stri } // NewDeleteNetworkOfferingParams indicates an expected call of NewDeleteNetworkOfferingParams. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) NewDeleteNetworkOfferingParams(id interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) NewDeleteNetworkOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetworkOfferingParams", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).NewDeleteNetworkOfferingParams), id) } @@ -226,7 +232,7 @@ func (m *MockNetworkOfferingServiceIface) UpdateNetworkOffering(p *UpdateNetwork } // UpdateNetworkOffering indicates an expected call of UpdateNetworkOffering. -func (mr *MockNetworkOfferingServiceIfaceMockRecorder) UpdateNetworkOffering(p interface{}) *gomock.Call { +func (mr *MockNetworkOfferingServiceIfaceMockRecorder) UpdateNetworkOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkOffering", reflect.TypeOf((*MockNetworkOfferingServiceIface)(nil).UpdateNetworkOffering), p) } diff --git a/cloudstack/NetworkService.go b/cloudstack/NetworkService.go index 016dff05..aef4d8cc 100644 --- a/cloudstack/NetworkService.go +++ b/cloudstack/NetworkService.go @@ -32,6 +32,10 @@ type NetworkServiceIface interface { NewAddNetworkServiceProviderParams(name string, physicalnetworkid string) *AddNetworkServiceProviderParams AddOpenDaylightController(p *AddOpenDaylightControllerParams) (*AddOpenDaylightControllerResponse, error) NewAddOpenDaylightControllerParams(password string, physicalnetworkid string, url string, username string) *AddOpenDaylightControllerParams + ChangeBgpPeersForNetwork(p *ChangeBgpPeersForNetworkParams) (*ChangeBgpPeersForNetworkResponse, error) + NewChangeBgpPeersForNetworkParams(networkid string) *ChangeBgpPeersForNetworkParams + CreateIpv4SubnetForGuestNetwork(p *CreateIpv4SubnetForGuestNetworkParams) (*CreateIpv4SubnetForGuestNetworkResponse, error) + NewCreateIpv4SubnetForGuestNetworkParams(parentid string) *CreateIpv4SubnetForGuestNetworkParams CreateNetwork(p *CreateNetworkParams) (*CreateNetworkResponse, error) NewCreateNetworkParams(name string, networkofferingid string, zoneid string) *CreateNetworkParams CreatePhysicalNetwork(p *CreatePhysicalNetworkParams) (*CreatePhysicalNetworkResponse, error) @@ -42,6 +46,8 @@ type NetworkServiceIface interface { NewCreateStorageNetworkIpRangeParams(gateway string, netmask string, podid string, startip string) *CreateStorageNetworkIpRangeParams DedicatePublicIpRange(p *DedicatePublicIpRangeParams) (*DedicatePublicIpRangeResponse, error) NewDedicatePublicIpRangeParams(domainid string, id string) *DedicatePublicIpRangeParams + DeleteIpv4SubnetForGuestNetwork(p *DeleteIpv4SubnetForGuestNetworkParams) (*DeleteIpv4SubnetForGuestNetworkResponse, error) + NewDeleteIpv4SubnetForGuestNetworkParams(id string) *DeleteIpv4SubnetForGuestNetworkParams DeleteNetwork(p *DeleteNetworkParams) (*DeleteNetworkResponse, error) NewDeleteNetworkParams(id string) *DeleteNetworkParams DeleteNetworkServiceProvider(p *DeleteNetworkServiceProviderParams) (*DeleteNetworkServiceProviderResponse, error) @@ -52,11 +58,13 @@ type NetworkServiceIface interface { NewDeletePhysicalNetworkParams(id string) *DeletePhysicalNetworkParams DeleteStorageNetworkIpRange(p *DeleteStorageNetworkIpRangeParams) (*DeleteStorageNetworkIpRangeResponse, error) NewDeleteStorageNetworkIpRangeParams(id string) *DeleteStorageNetworkIpRangeParams - ListNetscalerLoadBalancerNetworks(p *ListNetscalerLoadBalancerNetworksParams) (*ListNetscalerLoadBalancerNetworksResponse, error) - NewListNetscalerLoadBalancerNetworksParams(lbdeviceid string) *ListNetscalerLoadBalancerNetworksParams - GetNetscalerLoadBalancerNetworkID(keyword string, lbdeviceid string, opts ...OptionFunc) (string, int, error) + ListIpv4SubnetsForGuestNetwork(p *ListIpv4SubnetsForGuestNetworkParams) (*ListIpv4SubnetsForGuestNetworkResponse, error) + NewListIpv4SubnetsForGuestNetworkParams() *ListIpv4SubnetsForGuestNetworkParams + GetIpv4SubnetsForGuestNetworkByID(id string, opts ...OptionFunc) (*Ipv4SubnetsForGuestNetwork, int, error) ListNetworkIsolationMethods(p *ListNetworkIsolationMethodsParams) (*ListNetworkIsolationMethodsResponse, error) NewListNetworkIsolationMethodsParams() *ListNetworkIsolationMethodsParams + ListNetworkProtocols(p *ListNetworkProtocolsParams) (*ListNetworkProtocolsResponse, error) + NewListNetworkProtocolsParams(option string) *ListNetworkProtocolsParams ListNetworkServiceProviders(p *ListNetworkServiceProvidersParams) (*ListNetworkServiceProvidersResponse, error) NewListNetworkServiceProvidersParams() *ListNetworkServiceProvidersParams GetNetworkServiceProviderID(name string, opts ...OptionFunc) (string, int, error) @@ -84,6 +92,8 @@ type NetworkServiceIface interface { GetStorageNetworkIpRangeByID(id string, opts ...OptionFunc) (*StorageNetworkIpRange, int, error) ListSupportedNetworkServices(p *ListSupportedNetworkServicesParams) (*ListSupportedNetworkServicesResponse, error) NewListSupportedNetworkServicesParams() *ListSupportedNetworkServicesParams + MigrateNetwork(p *MigrateNetworkParams) (*MigrateNetworkResponse, error) + NewMigrateNetworkParams(networkid string, networkofferingid string) *MigrateNetworkParams ReleasePublicIpRange(p *ReleasePublicIpRangeParams) (*ReleasePublicIpRangeResponse, error) NewReleasePublicIpRangeParams(id string) *ReleasePublicIpRangeParams RestartNetwork(p *RestartNetworkParams) (*RestartNetworkResponse, error) @@ -399,7 +409,7 @@ func (s *NetworkService) NewAddOpenDaylightControllerParams(password string, phy return p } -// Adds an OpenDaylight controller +// Adds an OpenDyalight controler func (s *NetworkService) AddOpenDaylightController(p *AddOpenDaylightControllerParams) (*AddOpenDaylightControllerResponse, error) { resp, err := s.cs.newRequest("addOpenDaylightController", p.toURLValues()) if err != nil { @@ -444,6 +454,278 @@ type AddOpenDaylightControllerResponse struct { Username string `json:"username"` } +type ChangeBgpPeersForNetworkParams struct { + p map[string]interface{} +} + +func (p *ChangeBgpPeersForNetworkParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["bgppeerids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("bgppeerids", vv) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + return u +} + +func (p *ChangeBgpPeersForNetworkParams) SetBgppeerids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bgppeerids"] = v +} + +func (p *ChangeBgpPeersForNetworkParams) ResetBgppeerids() { + if p.p != nil && p.p["bgppeerids"] != nil { + delete(p.p, "bgppeerids") + } +} + +func (p *ChangeBgpPeersForNetworkParams) GetBgppeerids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bgppeerids"].([]string) + return value, ok +} + +func (p *ChangeBgpPeersForNetworkParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *ChangeBgpPeersForNetworkParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *ChangeBgpPeersForNetworkParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +// You should always use this function to get a new ChangeBgpPeersForNetworkParams instance, +// as then you are sure you have configured all required params +func (s *NetworkService) NewChangeBgpPeersForNetworkParams(networkid string) *ChangeBgpPeersForNetworkParams { + p := &ChangeBgpPeersForNetworkParams{} + p.p = make(map[string]interface{}) + p.p["networkid"] = networkid + return p +} + +// Change the BGP peers for a network. +func (s *NetworkService) ChangeBgpPeersForNetwork(p *ChangeBgpPeersForNetworkParams) (*ChangeBgpPeersForNetworkResponse, error) { + resp, err := s.cs.newRequest("changeBgpPeersForNetwork", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ChangeBgpPeersForNetworkResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ChangeBgpPeersForNetworkResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Created string `json:"created"` + Details map[string]string `json:"details"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Id string `json:"id"` + Ip6address string `json:"ip6address"` + Ipaddress string `json:"ipaddress"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Password string `json:"password"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type CreateIpv4SubnetForGuestNetworkParams struct { + p map[string]interface{} +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["cidrsize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("cidrsize", vv) + } + if v, found := p.p["parentid"]; found { + u.Set("parentid", v.(string)) + } + if v, found := p.p["subnet"]; found { + u.Set("subnet", v.(string)) + } + return u +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) SetCidrsize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cidrsize"] = v +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) ResetCidrsize() { + if p.p != nil && p.p["cidrsize"] != nil { + delete(p.p, "cidrsize") + } +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) GetCidrsize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cidrsize"].(int) + return value, ok +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) SetParentid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["parentid"] = v +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) ResetParentid() { + if p.p != nil && p.p["parentid"] != nil { + delete(p.p, "parentid") + } +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) GetParentid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["parentid"].(string) + return value, ok +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) SetSubnet(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["subnet"] = v +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) ResetSubnet() { + if p.p != nil && p.p["subnet"] != nil { + delete(p.p, "subnet") + } +} + +func (p *CreateIpv4SubnetForGuestNetworkParams) GetSubnet() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["subnet"].(string) + return value, ok +} + +// You should always use this function to get a new CreateIpv4SubnetForGuestNetworkParams instance, +// as then you are sure you have configured all required params +func (s *NetworkService) NewCreateIpv4SubnetForGuestNetworkParams(parentid string) *CreateIpv4SubnetForGuestNetworkParams { + p := &CreateIpv4SubnetForGuestNetworkParams{} + p.p = make(map[string]interface{}) + p.p["parentid"] = parentid + return p +} + +// Creates a IPv4 subnet for guest networks. +func (s *NetworkService) CreateIpv4SubnetForGuestNetwork(p *CreateIpv4SubnetForGuestNetworkParams) (*CreateIpv4SubnetForGuestNetworkResponse, error) { + resp, err := s.cs.newRequest("createIpv4SubnetForGuestNetwork", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateIpv4SubnetForGuestNetworkResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateIpv4SubnetForGuestNetworkResponse struct { + Allocated string `json:"allocated"` + Created string `json:"created"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Parentid string `json:"parentid"` + Parentsubnet string `json:"parentsubnet"` + Removed string `json:"removed"` + State string `json:"state"` + Subnet string `json:"subnet"` + Vpcid string `json:"vpcid"` + Vpcname string `json:"vpcname"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + type CreateNetworkParams struct { p map[string]interface{} } @@ -2546,6 +2828,88 @@ type DedicatePublicIpRangeResponse struct { Zoneid string `json:"zoneid"` } +type DeleteIpv4SubnetForGuestNetworkParams struct { + p map[string]interface{} +} + +func (p *DeleteIpv4SubnetForGuestNetworkParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteIpv4SubnetForGuestNetworkParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteIpv4SubnetForGuestNetworkParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteIpv4SubnetForGuestNetworkParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteIpv4SubnetForGuestNetworkParams instance, +// as then you are sure you have configured all required params +func (s *NetworkService) NewDeleteIpv4SubnetForGuestNetworkParams(id string) *DeleteIpv4SubnetForGuestNetworkParams { + p := &DeleteIpv4SubnetForGuestNetworkParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes an existing IPv4 subnet for guest network. +func (s *NetworkService) DeleteIpv4SubnetForGuestNetwork(p *DeleteIpv4SubnetForGuestNetworkParams) (*DeleteIpv4SubnetForGuestNetworkResponse, error) { + resp, err := s.cs.newRequest("deleteIpv4SubnetForGuestNetwork", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteIpv4SubnetForGuestNetworkResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteIpv4SubnetForGuestNetworkResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + type DeleteNetworkParams struct { p map[string]interface{} } @@ -2780,7 +3144,7 @@ func (s *NetworkService) NewDeleteOpenDaylightControllerParams(id string) *Delet return p } -// Removes an OpenDaylight controller +// Removes an OpenDyalight controler func (s *NetworkService) DeleteOpenDaylightController(p *DeleteOpenDaylightControllerParams) (*DeleteOpenDaylightControllerResponse, error) { resp, err := s.cs.newRequest("deleteOpenDaylightController", p.toURLValues()) if err != nil { @@ -2989,20 +3353,23 @@ type DeleteStorageNetworkIpRangeResponse struct { Success bool `json:"success"` } -type ListNetscalerLoadBalancerNetworksParams struct { +type ListIpv4SubnetsForGuestNetworkParams struct { p map[string]interface{} } -func (p *ListNetscalerLoadBalancerNetworksParams) toURLValues() url.Values { +func (p *ListIpv4SubnetsForGuestNetworkParams) 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["keyword"]; found { u.Set("keyword", v.(string)) } - if v, found := p.p["lbdeviceid"]; found { - u.Set("lbdeviceid", v.(string)) + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) } if v, found := p.p["page"]; found { vv := strconv.Itoa(v.(int)) @@ -3012,23 +3379,56 @@ func (p *ListNetscalerLoadBalancerNetworksParams) toURLValues() url.Values { vv := strconv.Itoa(v.(int)) u.Set("pagesize", vv) } + if v, found := p.p["parentid"]; found { + u.Set("parentid", v.(string)) + } + if v, found := p.p["subnet"]; found { + u.Set("subnet", v.(string)) + } + if v, found := p.p["vpcid"]; found { + u.Set("vpcid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } return u } -func (p *ListNetscalerLoadBalancerNetworksParams) SetKeyword(v string) { +func (p *ListIpv4SubnetsForGuestNetworkParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListNetscalerLoadBalancerNetworksParams) ResetKeyword() { +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListNetscalerLoadBalancerNetworksParams) GetKeyword() (string, bool) { +func (p *ListIpv4SubnetsForGuestNetworkParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3036,41 +3436,41 @@ func (p *ListNetscalerLoadBalancerNetworksParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListNetscalerLoadBalancerNetworksParams) SetLbdeviceid(v string) { +func (p *ListIpv4SubnetsForGuestNetworkParams) SetNetworkid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["lbdeviceid"] = v + p.p["networkid"] = v } -func (p *ListNetscalerLoadBalancerNetworksParams) ResetLbdeviceid() { - if p.p != nil && p.p["lbdeviceid"] != nil { - delete(p.p, "lbdeviceid") +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") } } -func (p *ListNetscalerLoadBalancerNetworksParams) GetLbdeviceid() (string, bool) { +func (p *ListIpv4SubnetsForGuestNetworkParams) GetNetworkid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["lbdeviceid"].(string) + value, ok := p.p["networkid"].(string) return value, ok } -func (p *ListNetscalerLoadBalancerNetworksParams) SetPage(v int) { +func (p *ListIpv4SubnetsForGuestNetworkParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["page"] = v } -func (p *ListNetscalerLoadBalancerNetworksParams) ResetPage() { +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetPage() { if p.p != nil && p.p["page"] != nil { delete(p.p, "page") } } -func (p *ListNetscalerLoadBalancerNetworksParams) GetPage() (int, bool) { +func (p *ListIpv4SubnetsForGuestNetworkParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3078,20 +3478,20 @@ func (p *ListNetscalerLoadBalancerNetworksParams) GetPage() (int, bool) { return value, ok } -func (p *ListNetscalerLoadBalancerNetworksParams) SetPagesize(v int) { +func (p *ListIpv4SubnetsForGuestNetworkParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["pagesize"] = v } -func (p *ListNetscalerLoadBalancerNetworksParams) ResetPagesize() { +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetPagesize() { if p.p != nil && p.p["pagesize"] != nil { delete(p.p, "pagesize") } } -func (p *ListNetscalerLoadBalancerNetworksParams) GetPagesize() (int, bool) { +func (p *ListIpv4SubnetsForGuestNetworkParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -3099,173 +3499,168 @@ func (p *ListNetscalerLoadBalancerNetworksParams) GetPagesize() (int, bool) { return value, ok } -// You should always use this function to get a new ListNetscalerLoadBalancerNetworksParams instance, +func (p *ListIpv4SubnetsForGuestNetworkParams) SetParentid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["parentid"] = v +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetParentid() { + if p.p != nil && p.p["parentid"] != nil { + delete(p.p, "parentid") + } +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) GetParentid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["parentid"].(string) + return value, ok +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) SetSubnet(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["subnet"] = v +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetSubnet() { + if p.p != nil && p.p["subnet"] != nil { + delete(p.p, "subnet") + } +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) GetSubnet() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["subnet"].(string) + return value, ok +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) SetVpcid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vpcid"] = v +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetVpcid() { + if p.p != nil && p.p["vpcid"] != nil { + delete(p.p, "vpcid") + } +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) GetVpcid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vpcid"].(string) + return value, ok +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListIpv4SubnetsForGuestNetworkParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListIpv4SubnetsForGuestNetworkParams instance, // as then you are sure you have configured all required params -func (s *NetworkService) NewListNetscalerLoadBalancerNetworksParams(lbdeviceid string) *ListNetscalerLoadBalancerNetworksParams { - p := &ListNetscalerLoadBalancerNetworksParams{} +func (s *NetworkService) NewListIpv4SubnetsForGuestNetworkParams() *ListIpv4SubnetsForGuestNetworkParams { + p := &ListIpv4SubnetsForGuestNetworkParams{} p.p = make(map[string]interface{}) - p.p["lbdeviceid"] = lbdeviceid return p } // This is a courtesy helper function, which in some cases may not work as expected! -func (s *NetworkService) GetNetscalerLoadBalancerNetworkID(keyword string, lbdeviceid string, opts ...OptionFunc) (string, int, error) { - p := &ListNetscalerLoadBalancerNetworksParams{} +func (s *NetworkService) GetIpv4SubnetsForGuestNetworkByID(id string, opts ...OptionFunc) (*Ipv4SubnetsForGuestNetwork, int, error) { + p := &ListIpv4SubnetsForGuestNetworkParams{} p.p = make(map[string]interface{}) - p.p["keyword"] = keyword - p.p["lbdeviceid"] = lbdeviceid + p.p["id"] = id for _, fn := range append(s.cs.options, opts...) { if err := fn(s.cs, p); err != nil { - return "", -1, err + return nil, -1, err } } - l, err := s.ListNetscalerLoadBalancerNetworks(p) + l, err := s.ListIpv4SubnetsForGuestNetwork(p) if err != nil { - return "", -1, err + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err } if l.Count == 0 { - return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) } if l.Count == 1 { - return l.NetscalerLoadBalancerNetworks[0].Id, l.Count, nil - } - - if l.Count > 1 { - for _, v := range l.NetscalerLoadBalancerNetworks { - if v.Name == keyword { - return v.Id, l.Count, nil - } - } + return l.Ipv4SubnetsForGuestNetwork[0], l.Count, nil } - return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) + return nil, l.Count, fmt.Errorf("There is more then one result for Ipv4SubnetsForGuestNetwork UUID: %s!", id) } -// lists network that are using a netscaler load balancer device -func (s *NetworkService) ListNetscalerLoadBalancerNetworks(p *ListNetscalerLoadBalancerNetworksParams) (*ListNetscalerLoadBalancerNetworksResponse, error) { - resp, err := s.cs.newRequest("listNetscalerLoadBalancerNetworks", p.toURLValues()) +// Lists IPv4 subnets for guest networks. +func (s *NetworkService) ListIpv4SubnetsForGuestNetwork(p *ListIpv4SubnetsForGuestNetworkParams) (*ListIpv4SubnetsForGuestNetworkResponse, error) { + resp, err := s.cs.newRequest("listIpv4SubnetsForGuestNetwork", p.toURLValues()) if err != nil { return nil, err } - var r ListNetscalerLoadBalancerNetworksResponse + var r ListIpv4SubnetsForGuestNetworkResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err - } - - return &r, nil -} - -type ListNetscalerLoadBalancerNetworksResponse struct { - Count int `json:"count"` - NetscalerLoadBalancerNetworks []*NetscalerLoadBalancerNetwork `json:"netscalerloadbalancernetwork"` -} - -type NetscalerLoadBalancerNetwork struct { - Account string `json:"account"` - Aclid string `json:"aclid"` - Aclname string `json:"aclname"` - Acltype string `json:"acltype"` - Asnumber int64 `json:"asnumber"` - Asnumberid string `json:"asnumberid"` - Associatednetwork string `json:"associatednetwork"` - Associatednetworkid string `json:"associatednetworkid"` - Bgppeers []interface{} `json:"bgppeers"` - Broadcastdomaintype string `json:"broadcastdomaintype"` - 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"` - Dns1 string `json:"dns1"` - Dns2 string `json:"dns2"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainpath string `json:"domainpath"` - Egressdefaultpolicy bool `json:"egressdefaultpolicy"` - Externalid string `json:"externalid"` - Gateway string `json:"gateway"` - Hasannotations bool `json:"hasannotations"` - Icon interface{} `json:"icon"` - Id string `json:"id"` - Internetprotocol string `json:"internetprotocol"` - Ip4routes []interface{} `json:"ip4routes"` - Ip4routing string `json:"ip4routing"` - Ip6cidr string `json:"ip6cidr"` - Ip6dns1 string `json:"ip6dns1"` - Ip6dns2 string `json:"ip6dns2"` - Ip6gateway string `json:"ip6gateway"` - Ip6routes []interface{} `json:"ip6routes"` - Ip6routing string `json:"ip6routing"` - Isdefault bool `json:"isdefault"` - Ispersistent bool `json:"ispersistent"` - Issystem bool `json:"issystem"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - 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"` - Privatemtu int `json:"privatemtu"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Publicmtu int `json:"publicmtu"` - 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"` - Strechedl2subnet bool `json:"strechedl2subnet"` - Subdomainaccess bool `json:"subdomainaccess"` - Supportsvmautoscaling bool `json:"supportsvmautoscaling"` - Tags []Tags `json:"tags"` - Traffictype string `json:"traffictype"` - Tungstenvirtualrouteruuid string `json:"tungstenvirtualrouteruuid"` - 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 NetscalerLoadBalancerNetworkService struct { - Capability []NetscalerLoadBalancerNetworkServiceCapability `json:"capability"` - Name string `json:"name"` - Provider []NetscalerLoadBalancerNetworkServiceProvider `json:"provider"` -} - -type NetscalerLoadBalancerNetworkServiceProvider struct { - Canenableindividualservice bool `json:"canenableindividualservice"` - Destinationphysicalnetworkid string `json:"destinationphysicalnetworkid"` - Id string `json:"id"` - Name string `json:"name"` - Physicalnetworkid string `json:"physicalnetworkid"` - Servicelist []string `json:"servicelist"` - State string `json:"state"` + } + + return &r, nil } -type NetscalerLoadBalancerNetworkServiceCapability struct { - Canchooseservicecapability bool `json:"canchooseservicecapability"` - Name string `json:"name"` - Value string `json:"value"` +type ListIpv4SubnetsForGuestNetworkResponse struct { + Count int `json:"count"` + Ipv4SubnetsForGuestNetwork []*Ipv4SubnetsForGuestNetwork `json:"ipv4subnetsforguestnetwork"` +} + +type Ipv4SubnetsForGuestNetwork struct { + Allocated string `json:"allocated"` + Created string `json:"created"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Parentid string `json:"parentid"` + Parentsubnet string `json:"parentsubnet"` + Removed string `json:"removed"` + State string `json:"state"` + Subnet string `json:"subnet"` + Vpcid string `json:"vpcid"` + Vpcname string `json:"vpcname"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } type ListNetworkIsolationMethodsParams struct { @@ -3388,6 +3783,80 @@ type NetworkIsolationMethod struct { Name string `json:"name"` } +type ListNetworkProtocolsParams struct { + p map[string]interface{} +} + +func (p *ListNetworkProtocolsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["option"]; found { + u.Set("option", v.(string)) + } + return u +} + +func (p *ListNetworkProtocolsParams) SetOption(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["option"] = v +} + +func (p *ListNetworkProtocolsParams) ResetOption() { + if p.p != nil && p.p["option"] != nil { + delete(p.p, "option") + } +} + +func (p *ListNetworkProtocolsParams) GetOption() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["option"].(string) + return value, ok +} + +// You should always use this function to get a new ListNetworkProtocolsParams instance, +// as then you are sure you have configured all required params +func (s *NetworkService) NewListNetworkProtocolsParams(option string) *ListNetworkProtocolsParams { + p := &ListNetworkProtocolsParams{} + p.p = make(map[string]interface{}) + p.p["option"] = option + return p +} + +// Lists details of network protocols +func (s *NetworkService) ListNetworkProtocols(p *ListNetworkProtocolsParams) (*ListNetworkProtocolsResponse, error) { + resp, err := s.cs.newRequest("listNetworkProtocols", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListNetworkProtocolsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListNetworkProtocolsResponse struct { + Count int `json:"count"` + NetworkProtocols []*NetworkProtocol `json:"networkprotocol"` +} + +type NetworkProtocol struct { + Description string `json:"description"` + Details map[string]string `json:"details"` + Index int `json:"index"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` +} + type ListNetworkServiceProvidersParams struct { p map[string]interface{} } @@ -4941,7 +5410,7 @@ func (s *NetworkService) GetOpenDaylightControllerByID(id string, opts ...Option return nil, l.Count, fmt.Errorf("There is more then one result for OpenDaylightController UUID: %s!", id) } -// Lists OpenDaylight controllers +// Lists OpenDyalight controllers func (s *NetworkService) ListOpenDaylightControllers(p *ListOpenDaylightControllersParams) (*ListOpenDaylightControllersResponse, error) { resp, err := s.cs.newRequest("listOpenDaylightControllers", p.toURLValues()) if err != nil { @@ -5954,6 +6423,239 @@ type SupportedNetworkServiceCapability struct { Value string `json:"value"` } +type MigrateNetworkParams struct { + p map[string]interface{} +} + +func (p *MigrateNetworkParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["networkofferingid"]; found { + u.Set("networkofferingid", v.(string)) + } + if v, found := p.p["resume"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("resume", vv) + } + return u +} + +func (p *MigrateNetworkParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *MigrateNetworkParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *MigrateNetworkParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *MigrateNetworkParams) SetNetworkofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkofferingid"] = v +} + +func (p *MigrateNetworkParams) ResetNetworkofferingid() { + if p.p != nil && p.p["networkofferingid"] != nil { + delete(p.p, "networkofferingid") + } +} + +func (p *MigrateNetworkParams) GetNetworkofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkofferingid"].(string) + return value, ok +} + +func (p *MigrateNetworkParams) SetResume(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resume"] = v +} + +func (p *MigrateNetworkParams) ResetResume() { + if p.p != nil && p.p["resume"] != nil { + delete(p.p, "resume") + } +} + +func (p *MigrateNetworkParams) GetResume() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resume"].(bool) + return value, ok +} + +// You should always use this function to get a new MigrateNetworkParams instance, +// as then you are sure you have configured all required params +func (s *NetworkService) NewMigrateNetworkParams(networkid string, networkofferingid string) *MigrateNetworkParams { + p := &MigrateNetworkParams{} + p.p = make(map[string]interface{}) + p.p["networkid"] = networkid + p.p["networkofferingid"] = networkofferingid + return p +} + +// moves a network to another physical network +func (s *NetworkService) MigrateNetwork(p *MigrateNetworkParams) (*MigrateNetworkResponse, error) { + resp, err := s.cs.newRequest("migrateNetwork", p.toURLValues()) + if err != nil { + return nil, err + } + + var r MigrateNetworkResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type MigrateNetworkResponse struct { + Account string `json:"account"` + Aclid string `json:"aclid"` + Aclname string `json:"aclname"` + Acltype string `json:"acltype"` + Asnumber int64 `json:"asnumber"` + Asnumberid string `json:"asnumberid"` + Associatednetwork string `json:"associatednetwork"` + Associatednetworkid string `json:"associatednetworkid"` + Bgppeers []interface{} `json:"bgppeers"` + Broadcastdomaintype string `json:"broadcastdomaintype"` + 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"` + Dns1 string `json:"dns1"` + Dns2 string `json:"dns2"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressdefaultpolicy bool `json:"egressdefaultpolicy"` + Externalid string `json:"externalid"` + Gateway string `json:"gateway"` + Hasannotations bool `json:"hasannotations"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Internetprotocol string `json:"internetprotocol"` + Ip4routes []interface{} `json:"ip4routes"` + Ip4routing string `json:"ip4routing"` + Ip6cidr string `json:"ip6cidr"` + Ip6dns1 string `json:"ip6dns1"` + Ip6dns2 string `json:"ip6dns2"` + Ip6gateway string `json:"ip6gateway"` + Ip6routes []interface{} `json:"ip6routes"` + Ip6routing string `json:"ip6routing"` + Isdefault bool `json:"isdefault"` + Ispersistent bool `json:"ispersistent"` + Issystem bool `json:"issystem"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + 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"` + Privatemtu int `json:"privatemtu"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Publicmtu int `json:"publicmtu"` + 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 []MigrateNetworkResponseService `json:"service"` + Specifyipranges bool `json:"specifyipranges"` + State string `json:"state"` + Strechedl2subnet bool `json:"strechedl2subnet"` + Subdomainaccess bool `json:"subdomainaccess"` + Supportsvmautoscaling bool `json:"supportsvmautoscaling"` + Tags []Tags `json:"tags"` + Traffictype string `json:"traffictype"` + Tungstenvirtualrouteruuid string `json:"tungstenvirtualrouteruuid"` + 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 MigrateNetworkResponseService struct { + Capability []MigrateNetworkResponseServiceCapability `json:"capability"` + Name string `json:"name"` + Provider []MigrateNetworkResponseServiceProvider `json:"provider"` +} + +type MigrateNetworkResponseServiceProvider 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 MigrateNetworkResponseServiceCapability struct { + Canchooseservicecapability bool `json:"canchooseservicecapability"` + Name string `json:"name"` + Value string `json:"value"` +} + type ReleasePublicIpRangeParams struct { p map[string]interface{} } diff --git a/cloudstack/NetworkService_mock.go b/cloudstack/NetworkService_mock.go index 1ff2df8c..afad806d 100644 --- a/cloudstack/NetworkService_mock.go +++ b/cloudstack/NetworkService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NetworkService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NetworkService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NetworkService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNetworkServiceIface is a mock of NetworkServiceIface interface. type MockNetworkServiceIface struct { ctrl *gomock.Controller recorder *MockNetworkServiceIfaceMockRecorder + isgomock struct{} } // MockNetworkServiceIfaceMockRecorder is the mock recorder for MockNetworkServiceIface. @@ -62,7 +68,7 @@ func (m *MockNetworkServiceIface) AddNetworkServiceProvider(p *AddNetworkService } // AddNetworkServiceProvider indicates an expected call of AddNetworkServiceProvider. -func (mr *MockNetworkServiceIfaceMockRecorder) AddNetworkServiceProvider(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) AddNetworkServiceProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetworkServiceProvider", reflect.TypeOf((*MockNetworkServiceIface)(nil).AddNetworkServiceProvider), p) } @@ -77,11 +83,26 @@ func (m *MockNetworkServiceIface) AddOpenDaylightController(p *AddOpenDaylightCo } // AddOpenDaylightController indicates an expected call of AddOpenDaylightController. -func (mr *MockNetworkServiceIfaceMockRecorder) AddOpenDaylightController(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) AddOpenDaylightController(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddOpenDaylightController", reflect.TypeOf((*MockNetworkServiceIface)(nil).AddOpenDaylightController), p) } +// ChangeBgpPeersForNetwork mocks base method. +func (m *MockNetworkServiceIface) ChangeBgpPeersForNetwork(p *ChangeBgpPeersForNetworkParams) (*ChangeBgpPeersForNetworkResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChangeBgpPeersForNetwork", p) + ret0, _ := ret[0].(*ChangeBgpPeersForNetworkResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ChangeBgpPeersForNetwork indicates an expected call of ChangeBgpPeersForNetwork. +func (mr *MockNetworkServiceIfaceMockRecorder) ChangeBgpPeersForNetwork(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeBgpPeersForNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).ChangeBgpPeersForNetwork), p) +} + // CreateGuestNetworkIpv6Prefix mocks base method. func (m *MockNetworkServiceIface) CreateGuestNetworkIpv6Prefix(p *CreateGuestNetworkIpv6PrefixParams) (*CreateGuestNetworkIpv6PrefixResponse, error) { m.ctrl.T.Helper() @@ -92,11 +113,26 @@ func (m *MockNetworkServiceIface) CreateGuestNetworkIpv6Prefix(p *CreateGuestNet } // CreateGuestNetworkIpv6Prefix indicates an expected call of CreateGuestNetworkIpv6Prefix. -func (mr *MockNetworkServiceIfaceMockRecorder) CreateGuestNetworkIpv6Prefix(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) CreateGuestNetworkIpv6Prefix(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateGuestNetworkIpv6Prefix", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreateGuestNetworkIpv6Prefix), p) } +// CreateIpv4SubnetForGuestNetwork mocks base method. +func (m *MockNetworkServiceIface) CreateIpv4SubnetForGuestNetwork(p *CreateIpv4SubnetForGuestNetworkParams) (*CreateIpv4SubnetForGuestNetworkResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateIpv4SubnetForGuestNetwork", p) + ret0, _ := ret[0].(*CreateIpv4SubnetForGuestNetworkResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateIpv4SubnetForGuestNetwork indicates an expected call of CreateIpv4SubnetForGuestNetwork. +func (mr *MockNetworkServiceIfaceMockRecorder) CreateIpv4SubnetForGuestNetwork(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIpv4SubnetForGuestNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreateIpv4SubnetForGuestNetwork), p) +} + // CreateNetwork mocks base method. func (m *MockNetworkServiceIface) CreateNetwork(p *CreateNetworkParams) (*CreateNetworkResponse, error) { m.ctrl.T.Helper() @@ -107,7 +143,7 @@ func (m *MockNetworkServiceIface) CreateNetwork(p *CreateNetworkParams) (*Create } // CreateNetwork indicates an expected call of CreateNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) CreateNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) CreateNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreateNetwork), p) } @@ -122,7 +158,7 @@ func (m *MockNetworkServiceIface) CreateNetworkPermissions(p *CreateNetworkPermi } // CreateNetworkPermissions indicates an expected call of CreateNetworkPermissions. -func (mr *MockNetworkServiceIfaceMockRecorder) CreateNetworkPermissions(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) CreateNetworkPermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkPermissions", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreateNetworkPermissions), p) } @@ -137,7 +173,7 @@ func (m *MockNetworkServiceIface) CreatePhysicalNetwork(p *CreatePhysicalNetwork } // CreatePhysicalNetwork indicates an expected call of CreatePhysicalNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) CreatePhysicalNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) CreatePhysicalNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePhysicalNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreatePhysicalNetwork), p) } @@ -152,7 +188,7 @@ func (m *MockNetworkServiceIface) CreateServiceInstance(p *CreateServiceInstance } // CreateServiceInstance indicates an expected call of CreateServiceInstance. -func (mr *MockNetworkServiceIfaceMockRecorder) CreateServiceInstance(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) CreateServiceInstance(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServiceInstance", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreateServiceInstance), p) } @@ -167,7 +203,7 @@ func (m *MockNetworkServiceIface) CreateStorageNetworkIpRange(p *CreateStorageNe } // CreateStorageNetworkIpRange indicates an expected call of CreateStorageNetworkIpRange. -func (mr *MockNetworkServiceIfaceMockRecorder) CreateStorageNetworkIpRange(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) CreateStorageNetworkIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateStorageNetworkIpRange", reflect.TypeOf((*MockNetworkServiceIface)(nil).CreateStorageNetworkIpRange), p) } @@ -182,7 +218,7 @@ func (m *MockNetworkServiceIface) DedicatePublicIpRange(p *DedicatePublicIpRange } // DedicatePublicIpRange indicates an expected call of DedicatePublicIpRange. -func (mr *MockNetworkServiceIfaceMockRecorder) DedicatePublicIpRange(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DedicatePublicIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicatePublicIpRange", reflect.TypeOf((*MockNetworkServiceIface)(nil).DedicatePublicIpRange), p) } @@ -197,11 +233,26 @@ func (m *MockNetworkServiceIface) DeleteGuestNetworkIpv6Prefix(p *DeleteGuestNet } // DeleteGuestNetworkIpv6Prefix indicates an expected call of DeleteGuestNetworkIpv6Prefix. -func (mr *MockNetworkServiceIfaceMockRecorder) DeleteGuestNetworkIpv6Prefix(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DeleteGuestNetworkIpv6Prefix(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGuestNetworkIpv6Prefix", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeleteGuestNetworkIpv6Prefix), p) } +// DeleteIpv4SubnetForGuestNetwork mocks base method. +func (m *MockNetworkServiceIface) DeleteIpv4SubnetForGuestNetwork(p *DeleteIpv4SubnetForGuestNetworkParams) (*DeleteIpv4SubnetForGuestNetworkResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteIpv4SubnetForGuestNetwork", p) + ret0, _ := ret[0].(*DeleteIpv4SubnetForGuestNetworkResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteIpv4SubnetForGuestNetwork indicates an expected call of DeleteIpv4SubnetForGuestNetwork. +func (mr *MockNetworkServiceIfaceMockRecorder) DeleteIpv4SubnetForGuestNetwork(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteIpv4SubnetForGuestNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeleteIpv4SubnetForGuestNetwork), p) +} + // DeleteNetwork mocks base method. func (m *MockNetworkServiceIface) DeleteNetwork(p *DeleteNetworkParams) (*DeleteNetworkResponse, error) { m.ctrl.T.Helper() @@ -212,7 +263,7 @@ func (m *MockNetworkServiceIface) DeleteNetwork(p *DeleteNetworkParams) (*Delete } // DeleteNetwork indicates an expected call of DeleteNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) DeleteNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DeleteNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeleteNetwork), p) } @@ -227,7 +278,7 @@ func (m *MockNetworkServiceIface) DeleteNetworkServiceProvider(p *DeleteNetworkS } // DeleteNetworkServiceProvider indicates an expected call of DeleteNetworkServiceProvider. -func (mr *MockNetworkServiceIfaceMockRecorder) DeleteNetworkServiceProvider(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DeleteNetworkServiceProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkServiceProvider", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeleteNetworkServiceProvider), p) } @@ -242,7 +293,7 @@ func (m *MockNetworkServiceIface) DeleteOpenDaylightController(p *DeleteOpenDayl } // DeleteOpenDaylightController indicates an expected call of DeleteOpenDaylightController. -func (mr *MockNetworkServiceIfaceMockRecorder) DeleteOpenDaylightController(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DeleteOpenDaylightController(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOpenDaylightController", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeleteOpenDaylightController), p) } @@ -257,7 +308,7 @@ func (m *MockNetworkServiceIface) DeletePhysicalNetwork(p *DeletePhysicalNetwork } // DeletePhysicalNetwork indicates an expected call of DeletePhysicalNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) DeletePhysicalNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DeletePhysicalNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePhysicalNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeletePhysicalNetwork), p) } @@ -272,7 +323,7 @@ func (m *MockNetworkServiceIface) DeleteStorageNetworkIpRange(p *DeleteStorageNe } // DeleteStorageNetworkIpRange indicates an expected call of DeleteStorageNetworkIpRange. -func (mr *MockNetworkServiceIfaceMockRecorder) DeleteStorageNetworkIpRange(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) DeleteStorageNetworkIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteStorageNetworkIpRange", reflect.TypeOf((*MockNetworkServiceIface)(nil).DeleteStorageNetworkIpRange), p) } @@ -280,7 +331,7 @@ func (mr *MockNetworkServiceIfaceMockRecorder) DeleteStorageNetworkIpRange(p int // GetGuestNetworkIpv6PrefixeByID mocks base method. func (m *MockNetworkServiceIface) GetGuestNetworkIpv6PrefixeByID(id string, opts ...OptionFunc) (*GuestNetworkIpv6Prefixe, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -292,37 +343,37 @@ func (m *MockNetworkServiceIface) GetGuestNetworkIpv6PrefixeByID(id string, opts } // GetGuestNetworkIpv6PrefixeByID indicates an expected call of GetGuestNetworkIpv6PrefixeByID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetGuestNetworkIpv6PrefixeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetGuestNetworkIpv6PrefixeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGuestNetworkIpv6PrefixeByID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetGuestNetworkIpv6PrefixeByID), varargs...) } -// GetNetscalerLoadBalancerNetworkID mocks base method. -func (m *MockNetworkServiceIface) GetNetscalerLoadBalancerNetworkID(keyword, lbdeviceid string, opts ...OptionFunc) (string, int, error) { +// GetIpv4SubnetsForGuestNetworkByID mocks base method. +func (m *MockNetworkServiceIface) GetIpv4SubnetsForGuestNetworkByID(id string, opts ...OptionFunc) (*Ipv4SubnetsForGuestNetwork, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, lbdeviceid} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } - ret := m.ctrl.Call(m, "GetNetscalerLoadBalancerNetworkID", varargs...) - ret0, _ := ret[0].(string) + ret := m.ctrl.Call(m, "GetIpv4SubnetsForGuestNetworkByID", varargs...) + ret0, _ := ret[0].(*Ipv4SubnetsForGuestNetwork) ret1, _ := ret[1].(int) ret2, _ := ret[2].(error) return ret0, ret1, ret2 } -// GetNetscalerLoadBalancerNetworkID indicates an expected call of GetNetscalerLoadBalancerNetworkID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetNetscalerLoadBalancerNetworkID(keyword, lbdeviceid interface{}, opts ...interface{}) *gomock.Call { +// GetIpv4SubnetsForGuestNetworkByID indicates an expected call of GetIpv4SubnetsForGuestNetworkByID. +func (mr *MockNetworkServiceIfaceMockRecorder) GetIpv4SubnetsForGuestNetworkByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, lbdeviceid}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetscalerLoadBalancerNetworkID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetNetscalerLoadBalancerNetworkID), varargs...) + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIpv4SubnetsForGuestNetworkByID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetIpv4SubnetsForGuestNetworkByID), varargs...) } // GetNetworkByID mocks base method. func (m *MockNetworkServiceIface) GetNetworkByID(id string, opts ...OptionFunc) (*Network, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -334,16 +385,16 @@ func (m *MockNetworkServiceIface) GetNetworkByID(id string, opts ...OptionFunc) } // GetNetworkByID indicates an expected call of GetNetworkByID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkByID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetNetworkByID), varargs...) } // GetNetworkByName mocks base method. func (m *MockNetworkServiceIface) GetNetworkByName(name string, opts ...OptionFunc) (*Network, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -355,16 +406,16 @@ func (m *MockNetworkServiceIface) GetNetworkByName(name string, opts ...OptionFu } // GetNetworkByName indicates an expected call of GetNetworkByName. -func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkByName", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetNetworkByName), varargs...) } // GetNetworkID mocks base method. func (m *MockNetworkServiceIface) GetNetworkID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -376,16 +427,16 @@ func (m *MockNetworkServiceIface) GetNetworkID(keyword string, opts ...OptionFun } // GetNetworkID indicates an expected call of GetNetworkID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetNetworkID), varargs...) } // GetNetworkServiceProviderID mocks base method. func (m *MockNetworkServiceIface) GetNetworkServiceProviderID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -397,16 +448,16 @@ func (m *MockNetworkServiceIface) GetNetworkServiceProviderID(name string, opts } // GetNetworkServiceProviderID indicates an expected call of GetNetworkServiceProviderID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkServiceProviderID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetNetworkServiceProviderID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkServiceProviderID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetNetworkServiceProviderID), varargs...) } // GetNiciraNvpDeviceNetworkID mocks base method. func (m *MockNetworkServiceIface) GetNiciraNvpDeviceNetworkID(keyword, nvpdeviceid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, nvpdeviceid} + varargs := []any{keyword, nvpdeviceid} for _, a := range opts { varargs = append(varargs, a) } @@ -418,16 +469,16 @@ func (m *MockNetworkServiceIface) GetNiciraNvpDeviceNetworkID(keyword, nvpdevice } // GetNiciraNvpDeviceNetworkID indicates an expected call of GetNiciraNvpDeviceNetworkID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetNiciraNvpDeviceNetworkID(keyword, nvpdeviceid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetNiciraNvpDeviceNetworkID(keyword, nvpdeviceid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, nvpdeviceid}, opts...) + varargs := append([]any{keyword, nvpdeviceid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNiciraNvpDeviceNetworkID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetNiciraNvpDeviceNetworkID), varargs...) } // GetOpenDaylightControllerByID mocks base method. func (m *MockNetworkServiceIface) GetOpenDaylightControllerByID(id string, opts ...OptionFunc) (*OpenDaylightController, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -439,16 +490,16 @@ func (m *MockNetworkServiceIface) GetOpenDaylightControllerByID(id string, opts } // GetOpenDaylightControllerByID indicates an expected call of GetOpenDaylightControllerByID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetOpenDaylightControllerByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetOpenDaylightControllerByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOpenDaylightControllerByID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetOpenDaylightControllerByID), varargs...) } // GetPaloAltoFirewallNetworkID mocks base method. func (m *MockNetworkServiceIface) GetPaloAltoFirewallNetworkID(keyword, lbdeviceid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, lbdeviceid} + varargs := []any{keyword, lbdeviceid} for _, a := range opts { varargs = append(varargs, a) } @@ -460,16 +511,16 @@ func (m *MockNetworkServiceIface) GetPaloAltoFirewallNetworkID(keyword, lbdevice } // GetPaloAltoFirewallNetworkID indicates an expected call of GetPaloAltoFirewallNetworkID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetPaloAltoFirewallNetworkID(keyword, lbdeviceid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetPaloAltoFirewallNetworkID(keyword, lbdeviceid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, lbdeviceid}, opts...) + varargs := append([]any{keyword, lbdeviceid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaloAltoFirewallNetworkID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetPaloAltoFirewallNetworkID), varargs...) } // GetPhysicalNetworkByID mocks base method. func (m *MockNetworkServiceIface) GetPhysicalNetworkByID(id string, opts ...OptionFunc) (*PhysicalNetwork, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -481,16 +532,16 @@ func (m *MockNetworkServiceIface) GetPhysicalNetworkByID(id string, opts ...Opti } // GetPhysicalNetworkByID indicates an expected call of GetPhysicalNetworkByID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetPhysicalNetworkByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetPhysicalNetworkByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPhysicalNetworkByID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetPhysicalNetworkByID), varargs...) } // GetPhysicalNetworkByName mocks base method. func (m *MockNetworkServiceIface) GetPhysicalNetworkByName(name string, opts ...OptionFunc) (*PhysicalNetwork, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -502,16 +553,16 @@ func (m *MockNetworkServiceIface) GetPhysicalNetworkByName(name string, opts ... } // GetPhysicalNetworkByName indicates an expected call of GetPhysicalNetworkByName. -func (mr *MockNetworkServiceIfaceMockRecorder) GetPhysicalNetworkByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetPhysicalNetworkByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPhysicalNetworkByName", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetPhysicalNetworkByName), varargs...) } // GetPhysicalNetworkID mocks base method. func (m *MockNetworkServiceIface) GetPhysicalNetworkID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -523,16 +574,16 @@ func (m *MockNetworkServiceIface) GetPhysicalNetworkID(name string, opts ...Opti } // GetPhysicalNetworkID indicates an expected call of GetPhysicalNetworkID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetPhysicalNetworkID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetPhysicalNetworkID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPhysicalNetworkID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetPhysicalNetworkID), varargs...) } // GetStorageNetworkIpRangeByID mocks base method. func (m *MockNetworkServiceIface) GetStorageNetworkIpRangeByID(id string, opts ...OptionFunc) (*StorageNetworkIpRange, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -544,9 +595,9 @@ func (m *MockNetworkServiceIface) GetStorageNetworkIpRangeByID(id string, opts . } // GetStorageNetworkIpRangeByID indicates an expected call of GetStorageNetworkIpRangeByID. -func (mr *MockNetworkServiceIfaceMockRecorder) GetStorageNetworkIpRangeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) GetStorageNetworkIpRangeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStorageNetworkIpRangeByID", reflect.TypeOf((*MockNetworkServiceIface)(nil).GetStorageNetworkIpRangeByID), varargs...) } @@ -560,24 +611,24 @@ func (m *MockNetworkServiceIface) ListGuestNetworkIpv6Prefixes(p *ListGuestNetwo } // ListGuestNetworkIpv6Prefixes indicates an expected call of ListGuestNetworkIpv6Prefixes. -func (mr *MockNetworkServiceIfaceMockRecorder) ListGuestNetworkIpv6Prefixes(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListGuestNetworkIpv6Prefixes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGuestNetworkIpv6Prefixes", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListGuestNetworkIpv6Prefixes), p) } -// ListNetscalerLoadBalancerNetworks mocks base method. -func (m *MockNetworkServiceIface) ListNetscalerLoadBalancerNetworks(p *ListNetscalerLoadBalancerNetworksParams) (*ListNetscalerLoadBalancerNetworksResponse, error) { +// ListIpv4SubnetsForGuestNetwork mocks base method. +func (m *MockNetworkServiceIface) ListIpv4SubnetsForGuestNetwork(p *ListIpv4SubnetsForGuestNetworkParams) (*ListIpv4SubnetsForGuestNetworkResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetscalerLoadBalancerNetworks", p) - ret0, _ := ret[0].(*ListNetscalerLoadBalancerNetworksResponse) + ret := m.ctrl.Call(m, "ListIpv4SubnetsForGuestNetwork", p) + ret0, _ := ret[0].(*ListIpv4SubnetsForGuestNetworkResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListNetscalerLoadBalancerNetworks indicates an expected call of ListNetscalerLoadBalancerNetworks. -func (mr *MockNetworkServiceIfaceMockRecorder) ListNetscalerLoadBalancerNetworks(p interface{}) *gomock.Call { +// ListIpv4SubnetsForGuestNetwork indicates an expected call of ListIpv4SubnetsForGuestNetwork. +func (mr *MockNetworkServiceIfaceMockRecorder) ListIpv4SubnetsForGuestNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetscalerLoadBalancerNetworks", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNetscalerLoadBalancerNetworks), p) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIpv4SubnetsForGuestNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListIpv4SubnetsForGuestNetwork), p) } // ListNetworkIsolationMethods mocks base method. @@ -590,7 +641,7 @@ func (m *MockNetworkServiceIface) ListNetworkIsolationMethods(p *ListNetworkIsol } // ListNetworkIsolationMethods indicates an expected call of ListNetworkIsolationMethods. -func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkIsolationMethods(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkIsolationMethods(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkIsolationMethods", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNetworkIsolationMethods), p) } @@ -605,11 +656,26 @@ func (m *MockNetworkServiceIface) ListNetworkPermissions(p *ListNetworkPermissio } // ListNetworkPermissions indicates an expected call of ListNetworkPermissions. -func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkPermissions(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkPermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkPermissions", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNetworkPermissions), p) } +// ListNetworkProtocols mocks base method. +func (m *MockNetworkServiceIface) ListNetworkProtocols(p *ListNetworkProtocolsParams) (*ListNetworkProtocolsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListNetworkProtocols", p) + ret0, _ := ret[0].(*ListNetworkProtocolsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListNetworkProtocols indicates an expected call of ListNetworkProtocols. +func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkProtocols(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkProtocols", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNetworkProtocols), p) +} + // ListNetworkServiceProviders mocks base method. func (m *MockNetworkServiceIface) ListNetworkServiceProviders(p *ListNetworkServiceProvidersParams) (*ListNetworkServiceProvidersResponse, error) { m.ctrl.T.Helper() @@ -620,7 +686,7 @@ func (m *MockNetworkServiceIface) ListNetworkServiceProviders(p *ListNetworkServ } // ListNetworkServiceProviders indicates an expected call of ListNetworkServiceProviders. -func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkServiceProviders(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworkServiceProviders(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkServiceProviders", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNetworkServiceProviders), p) } @@ -635,7 +701,7 @@ func (m *MockNetworkServiceIface) ListNetworks(p *ListNetworksParams) (*ListNetw } // ListNetworks indicates an expected call of ListNetworks. -func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworks(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListNetworks(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworks", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNetworks), p) } @@ -650,7 +716,7 @@ func (m *MockNetworkServiceIface) ListNiciraNvpDeviceNetworks(p *ListNiciraNvpDe } // ListNiciraNvpDeviceNetworks indicates an expected call of ListNiciraNvpDeviceNetworks. -func (mr *MockNetworkServiceIfaceMockRecorder) ListNiciraNvpDeviceNetworks(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListNiciraNvpDeviceNetworks(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNiciraNvpDeviceNetworks", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListNiciraNvpDeviceNetworks), p) } @@ -665,7 +731,7 @@ func (m *MockNetworkServiceIface) ListOpenDaylightControllers(p *ListOpenDayligh } // ListOpenDaylightControllers indicates an expected call of ListOpenDaylightControllers. -func (mr *MockNetworkServiceIfaceMockRecorder) ListOpenDaylightControllers(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListOpenDaylightControllers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListOpenDaylightControllers", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListOpenDaylightControllers), p) } @@ -680,7 +746,7 @@ func (m *MockNetworkServiceIface) ListPaloAltoFirewallNetworks(p *ListPaloAltoFi } // ListPaloAltoFirewallNetworks indicates an expected call of ListPaloAltoFirewallNetworks. -func (mr *MockNetworkServiceIfaceMockRecorder) ListPaloAltoFirewallNetworks(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListPaloAltoFirewallNetworks(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPaloAltoFirewallNetworks", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListPaloAltoFirewallNetworks), p) } @@ -695,7 +761,7 @@ func (m *MockNetworkServiceIface) ListPhysicalNetworks(p *ListPhysicalNetworksPa } // ListPhysicalNetworks indicates an expected call of ListPhysicalNetworks. -func (mr *MockNetworkServiceIfaceMockRecorder) ListPhysicalNetworks(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListPhysicalNetworks(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPhysicalNetworks", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListPhysicalNetworks), p) } @@ -710,7 +776,7 @@ func (m *MockNetworkServiceIface) ListStorageNetworkIpRange(p *ListStorageNetwor } // ListStorageNetworkIpRange indicates an expected call of ListStorageNetworkIpRange. -func (mr *MockNetworkServiceIfaceMockRecorder) ListStorageNetworkIpRange(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListStorageNetworkIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStorageNetworkIpRange", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListStorageNetworkIpRange), p) } @@ -725,11 +791,26 @@ func (m *MockNetworkServiceIface) ListSupportedNetworkServices(p *ListSupportedN } // ListSupportedNetworkServices indicates an expected call of ListSupportedNetworkServices. -func (mr *MockNetworkServiceIfaceMockRecorder) ListSupportedNetworkServices(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ListSupportedNetworkServices(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSupportedNetworkServices", reflect.TypeOf((*MockNetworkServiceIface)(nil).ListSupportedNetworkServices), p) } +// MigrateNetwork mocks base method. +func (m *MockNetworkServiceIface) MigrateNetwork(p *MigrateNetworkParams) (*MigrateNetworkResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MigrateNetwork", p) + ret0, _ := ret[0].(*MigrateNetworkResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MigrateNetwork indicates an expected call of MigrateNetwork. +func (mr *MockNetworkServiceIfaceMockRecorder) MigrateNetwork(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).MigrateNetwork), p) +} + // NewAddNetworkServiceProviderParams mocks base method. func (m *MockNetworkServiceIface) NewAddNetworkServiceProviderParams(name, physicalnetworkid string) *AddNetworkServiceProviderParams { m.ctrl.T.Helper() @@ -739,7 +820,7 @@ func (m *MockNetworkServiceIface) NewAddNetworkServiceProviderParams(name, physi } // NewAddNetworkServiceProviderParams indicates an expected call of NewAddNetworkServiceProviderParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewAddNetworkServiceProviderParams(name, physicalnetworkid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewAddNetworkServiceProviderParams(name, physicalnetworkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddNetworkServiceProviderParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewAddNetworkServiceProviderParams), name, physicalnetworkid) } @@ -753,11 +834,25 @@ func (m *MockNetworkServiceIface) NewAddOpenDaylightControllerParams(password, p } // NewAddOpenDaylightControllerParams indicates an expected call of NewAddOpenDaylightControllerParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewAddOpenDaylightControllerParams(password, physicalnetworkid, url, username interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewAddOpenDaylightControllerParams(password, physicalnetworkid, url, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddOpenDaylightControllerParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewAddOpenDaylightControllerParams), password, physicalnetworkid, url, username) } +// NewChangeBgpPeersForNetworkParams mocks base method. +func (m *MockNetworkServiceIface) NewChangeBgpPeersForNetworkParams(networkid string) *ChangeBgpPeersForNetworkParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewChangeBgpPeersForNetworkParams", networkid) + ret0, _ := ret[0].(*ChangeBgpPeersForNetworkParams) + return ret0 +} + +// NewChangeBgpPeersForNetworkParams indicates an expected call of NewChangeBgpPeersForNetworkParams. +func (mr *MockNetworkServiceIfaceMockRecorder) NewChangeBgpPeersForNetworkParams(networkid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeBgpPeersForNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewChangeBgpPeersForNetworkParams), networkid) +} + // NewCreateGuestNetworkIpv6PrefixParams mocks base method. func (m *MockNetworkServiceIface) NewCreateGuestNetworkIpv6PrefixParams(prefix, zoneid string) *CreateGuestNetworkIpv6PrefixParams { m.ctrl.T.Helper() @@ -767,11 +862,25 @@ func (m *MockNetworkServiceIface) NewCreateGuestNetworkIpv6PrefixParams(prefix, } // NewCreateGuestNetworkIpv6PrefixParams indicates an expected call of NewCreateGuestNetworkIpv6PrefixParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateGuestNetworkIpv6PrefixParams(prefix, zoneid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateGuestNetworkIpv6PrefixParams(prefix, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateGuestNetworkIpv6PrefixParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreateGuestNetworkIpv6PrefixParams), prefix, zoneid) } +// NewCreateIpv4SubnetForGuestNetworkParams mocks base method. +func (m *MockNetworkServiceIface) NewCreateIpv4SubnetForGuestNetworkParams(parentid string) *CreateIpv4SubnetForGuestNetworkParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateIpv4SubnetForGuestNetworkParams", parentid) + ret0, _ := ret[0].(*CreateIpv4SubnetForGuestNetworkParams) + return ret0 +} + +// NewCreateIpv4SubnetForGuestNetworkParams indicates an expected call of NewCreateIpv4SubnetForGuestNetworkParams. +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateIpv4SubnetForGuestNetworkParams(parentid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateIpv4SubnetForGuestNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreateIpv4SubnetForGuestNetworkParams), parentid) +} + // NewCreateNetworkParams mocks base method. func (m *MockNetworkServiceIface) NewCreateNetworkParams(name, networkofferingid, zoneid string) *CreateNetworkParams { m.ctrl.T.Helper() @@ -781,7 +890,7 @@ func (m *MockNetworkServiceIface) NewCreateNetworkParams(name, networkofferingid } // NewCreateNetworkParams indicates an expected call of NewCreateNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateNetworkParams(name, networkofferingid, zoneid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateNetworkParams(name, networkofferingid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreateNetworkParams), name, networkofferingid, zoneid) } @@ -795,7 +904,7 @@ func (m *MockNetworkServiceIface) NewCreateNetworkPermissionsParams(networkid st } // NewCreateNetworkPermissionsParams indicates an expected call of NewCreateNetworkPermissionsParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateNetworkPermissionsParams(networkid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateNetworkPermissionsParams(networkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateNetworkPermissionsParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreateNetworkPermissionsParams), networkid) } @@ -809,7 +918,7 @@ func (m *MockNetworkServiceIface) NewCreatePhysicalNetworkParams(name, zoneid st } // NewCreatePhysicalNetworkParams indicates an expected call of NewCreatePhysicalNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewCreatePhysicalNetworkParams(name, zoneid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreatePhysicalNetworkParams(name, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreatePhysicalNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreatePhysicalNetworkParams), name, zoneid) } @@ -823,7 +932,7 @@ func (m *MockNetworkServiceIface) NewCreateServiceInstanceParams(leftnetworkid, } // NewCreateServiceInstanceParams indicates an expected call of NewCreateServiceInstanceParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateServiceInstanceParams(leftnetworkid, name, rightnetworkid, serviceofferingid, templateid, zoneid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateServiceInstanceParams(leftnetworkid, name, rightnetworkid, serviceofferingid, templateid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateServiceInstanceParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreateServiceInstanceParams), leftnetworkid, name, rightnetworkid, serviceofferingid, templateid, zoneid) } @@ -837,7 +946,7 @@ func (m *MockNetworkServiceIface) NewCreateStorageNetworkIpRangeParams(gateway, } // NewCreateStorageNetworkIpRangeParams indicates an expected call of NewCreateStorageNetworkIpRangeParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateStorageNetworkIpRangeParams(gateway, netmask, podid, startip interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewCreateStorageNetworkIpRangeParams(gateway, netmask, podid, startip any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateStorageNetworkIpRangeParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewCreateStorageNetworkIpRangeParams), gateway, netmask, podid, startip) } @@ -851,7 +960,7 @@ func (m *MockNetworkServiceIface) NewDedicatePublicIpRangeParams(domainid, id st } // NewDedicatePublicIpRangeParams indicates an expected call of NewDedicatePublicIpRangeParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDedicatePublicIpRangeParams(domainid, id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDedicatePublicIpRangeParams(domainid, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicatePublicIpRangeParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDedicatePublicIpRangeParams), domainid, id) } @@ -865,11 +974,25 @@ func (m *MockNetworkServiceIface) NewDeleteGuestNetworkIpv6PrefixParams(id strin } // NewDeleteGuestNetworkIpv6PrefixParams indicates an expected call of NewDeleteGuestNetworkIpv6PrefixParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteGuestNetworkIpv6PrefixParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteGuestNetworkIpv6PrefixParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteGuestNetworkIpv6PrefixParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeleteGuestNetworkIpv6PrefixParams), id) } +// NewDeleteIpv4SubnetForGuestNetworkParams mocks base method. +func (m *MockNetworkServiceIface) NewDeleteIpv4SubnetForGuestNetworkParams(id string) *DeleteIpv4SubnetForGuestNetworkParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteIpv4SubnetForGuestNetworkParams", id) + ret0, _ := ret[0].(*DeleteIpv4SubnetForGuestNetworkParams) + return ret0 +} + +// NewDeleteIpv4SubnetForGuestNetworkParams indicates an expected call of NewDeleteIpv4SubnetForGuestNetworkParams. +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteIpv4SubnetForGuestNetworkParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteIpv4SubnetForGuestNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeleteIpv4SubnetForGuestNetworkParams), id) +} + // NewDeleteNetworkParams mocks base method. func (m *MockNetworkServiceIface) NewDeleteNetworkParams(id string) *DeleteNetworkParams { m.ctrl.T.Helper() @@ -879,7 +1002,7 @@ func (m *MockNetworkServiceIface) NewDeleteNetworkParams(id string) *DeleteNetwo } // NewDeleteNetworkParams indicates an expected call of NewDeleteNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteNetworkParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteNetworkParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeleteNetworkParams), id) } @@ -893,7 +1016,7 @@ func (m *MockNetworkServiceIface) NewDeleteNetworkServiceProviderParams(id strin } // NewDeleteNetworkServiceProviderParams indicates an expected call of NewDeleteNetworkServiceProviderParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteNetworkServiceProviderParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteNetworkServiceProviderParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNetworkServiceProviderParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeleteNetworkServiceProviderParams), id) } @@ -907,7 +1030,7 @@ func (m *MockNetworkServiceIface) NewDeleteOpenDaylightControllerParams(id strin } // NewDeleteOpenDaylightControllerParams indicates an expected call of NewDeleteOpenDaylightControllerParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteOpenDaylightControllerParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteOpenDaylightControllerParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteOpenDaylightControllerParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeleteOpenDaylightControllerParams), id) } @@ -921,7 +1044,7 @@ func (m *MockNetworkServiceIface) NewDeletePhysicalNetworkParams(id string) *Del } // NewDeletePhysicalNetworkParams indicates an expected call of NewDeletePhysicalNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDeletePhysicalNetworkParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeletePhysicalNetworkParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeletePhysicalNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeletePhysicalNetworkParams), id) } @@ -935,7 +1058,7 @@ func (m *MockNetworkServiceIface) NewDeleteStorageNetworkIpRangeParams(id string } // NewDeleteStorageNetworkIpRangeParams indicates an expected call of NewDeleteStorageNetworkIpRangeParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteStorageNetworkIpRangeParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewDeleteStorageNetworkIpRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteStorageNetworkIpRangeParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewDeleteStorageNetworkIpRangeParams), id) } @@ -954,18 +1077,18 @@ func (mr *MockNetworkServiceIfaceMockRecorder) NewListGuestNetworkIpv6PrefixesPa return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListGuestNetworkIpv6PrefixesParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListGuestNetworkIpv6PrefixesParams)) } -// NewListNetscalerLoadBalancerNetworksParams mocks base method. -func (m *MockNetworkServiceIface) NewListNetscalerLoadBalancerNetworksParams(lbdeviceid string) *ListNetscalerLoadBalancerNetworksParams { +// NewListIpv4SubnetsForGuestNetworkParams mocks base method. +func (m *MockNetworkServiceIface) NewListIpv4SubnetsForGuestNetworkParams() *ListIpv4SubnetsForGuestNetworkParams { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewListNetscalerLoadBalancerNetworksParams", lbdeviceid) - ret0, _ := ret[0].(*ListNetscalerLoadBalancerNetworksParams) + ret := m.ctrl.Call(m, "NewListIpv4SubnetsForGuestNetworkParams") + ret0, _ := ret[0].(*ListIpv4SubnetsForGuestNetworkParams) return ret0 } -// NewListNetscalerLoadBalancerNetworksParams indicates an expected call of NewListNetscalerLoadBalancerNetworksParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewListNetscalerLoadBalancerNetworksParams(lbdeviceid interface{}) *gomock.Call { +// NewListIpv4SubnetsForGuestNetworkParams indicates an expected call of NewListIpv4SubnetsForGuestNetworkParams. +func (mr *MockNetworkServiceIfaceMockRecorder) NewListIpv4SubnetsForGuestNetworkParams() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetscalerLoadBalancerNetworksParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListNetscalerLoadBalancerNetworksParams), lbdeviceid) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListIpv4SubnetsForGuestNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListIpv4SubnetsForGuestNetworkParams)) } // NewListNetworkIsolationMethodsParams mocks base method. @@ -991,11 +1114,25 @@ func (m *MockNetworkServiceIface) NewListNetworkPermissionsParams(networkid stri } // NewListNetworkPermissionsParams indicates an expected call of NewListNetworkPermissionsParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewListNetworkPermissionsParams(networkid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewListNetworkPermissionsParams(networkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetworkPermissionsParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListNetworkPermissionsParams), networkid) } +// NewListNetworkProtocolsParams mocks base method. +func (m *MockNetworkServiceIface) NewListNetworkProtocolsParams(option string) *ListNetworkProtocolsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListNetworkProtocolsParams", option) + ret0, _ := ret[0].(*ListNetworkProtocolsParams) + return ret0 +} + +// NewListNetworkProtocolsParams indicates an expected call of NewListNetworkProtocolsParams. +func (mr *MockNetworkServiceIfaceMockRecorder) NewListNetworkProtocolsParams(option any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNetworkProtocolsParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListNetworkProtocolsParams), option) +} + // NewListNetworkServiceProvidersParams mocks base method. func (m *MockNetworkServiceIface) NewListNetworkServiceProvidersParams() *ListNetworkServiceProvidersParams { m.ctrl.T.Helper() @@ -1033,7 +1170,7 @@ func (m *MockNetworkServiceIface) NewListNiciraNvpDeviceNetworksParams(nvpdevice } // NewListNiciraNvpDeviceNetworksParams indicates an expected call of NewListNiciraNvpDeviceNetworksParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewListNiciraNvpDeviceNetworksParams(nvpdeviceid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewListNiciraNvpDeviceNetworksParams(nvpdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNiciraNvpDeviceNetworksParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListNiciraNvpDeviceNetworksParams), nvpdeviceid) } @@ -1061,7 +1198,7 @@ func (m *MockNetworkServiceIface) NewListPaloAltoFirewallNetworksParams(lbdevice } // NewListPaloAltoFirewallNetworksParams indicates an expected call of NewListPaloAltoFirewallNetworksParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewListPaloAltoFirewallNetworksParams(lbdeviceid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewListPaloAltoFirewallNetworksParams(lbdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListPaloAltoFirewallNetworksParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListPaloAltoFirewallNetworksParams), lbdeviceid) } @@ -1108,6 +1245,20 @@ func (mr *MockNetworkServiceIfaceMockRecorder) NewListSupportedNetworkServicesPa return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSupportedNetworkServicesParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewListSupportedNetworkServicesParams)) } +// NewMigrateNetworkParams mocks base method. +func (m *MockNetworkServiceIface) NewMigrateNetworkParams(networkid, networkofferingid string) *MigrateNetworkParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewMigrateNetworkParams", networkid, networkofferingid) + ret0, _ := ret[0].(*MigrateNetworkParams) + return ret0 +} + +// NewMigrateNetworkParams indicates an expected call of NewMigrateNetworkParams. +func (mr *MockNetworkServiceIfaceMockRecorder) NewMigrateNetworkParams(networkid, networkofferingid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewMigrateNetworkParams), networkid, networkofferingid) +} + // NewReleasePublicIpRangeParams mocks base method. func (m *MockNetworkServiceIface) NewReleasePublicIpRangeParams(id string) *ReleasePublicIpRangeParams { m.ctrl.T.Helper() @@ -1117,7 +1268,7 @@ func (m *MockNetworkServiceIface) NewReleasePublicIpRangeParams(id string) *Rele } // NewReleasePublicIpRangeParams indicates an expected call of NewReleasePublicIpRangeParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewReleasePublicIpRangeParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewReleasePublicIpRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleasePublicIpRangeParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewReleasePublicIpRangeParams), id) } @@ -1131,7 +1282,7 @@ func (m *MockNetworkServiceIface) NewRemoveNetworkPermissionsParams(networkid st } // NewRemoveNetworkPermissionsParams indicates an expected call of NewRemoveNetworkPermissionsParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewRemoveNetworkPermissionsParams(networkid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewRemoveNetworkPermissionsParams(networkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveNetworkPermissionsParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewRemoveNetworkPermissionsParams), networkid) } @@ -1145,7 +1296,7 @@ func (m *MockNetworkServiceIface) NewResetNetworkPermissionsParams(networkid str } // NewResetNetworkPermissionsParams indicates an expected call of NewResetNetworkPermissionsParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewResetNetworkPermissionsParams(networkid interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewResetNetworkPermissionsParams(networkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResetNetworkPermissionsParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewResetNetworkPermissionsParams), networkid) } @@ -1159,7 +1310,7 @@ func (m *MockNetworkServiceIface) NewRestartNetworkParams(id string) *RestartNet } // NewRestartNetworkParams indicates an expected call of NewRestartNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewRestartNetworkParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewRestartNetworkParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRestartNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewRestartNetworkParams), id) } @@ -1173,7 +1324,7 @@ func (m *MockNetworkServiceIface) NewUpdateNetworkParams(id string) *UpdateNetwo } // NewUpdateNetworkParams indicates an expected call of NewUpdateNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdateNetworkParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdateNetworkParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewUpdateNetworkParams), id) } @@ -1187,7 +1338,7 @@ func (m *MockNetworkServiceIface) NewUpdateNetworkServiceProviderParams(id strin } // NewUpdateNetworkServiceProviderParams indicates an expected call of NewUpdateNetworkServiceProviderParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdateNetworkServiceProviderParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdateNetworkServiceProviderParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateNetworkServiceProviderParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewUpdateNetworkServiceProviderParams), id) } @@ -1201,7 +1352,7 @@ func (m *MockNetworkServiceIface) NewUpdatePhysicalNetworkParams(id string) *Upd } // NewUpdatePhysicalNetworkParams indicates an expected call of NewUpdatePhysicalNetworkParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdatePhysicalNetworkParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdatePhysicalNetworkParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdatePhysicalNetworkParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewUpdatePhysicalNetworkParams), id) } @@ -1215,7 +1366,7 @@ func (m *MockNetworkServiceIface) NewUpdateStorageNetworkIpRangeParams(id string } // NewUpdateStorageNetworkIpRangeParams indicates an expected call of NewUpdateStorageNetworkIpRangeParams. -func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdateStorageNetworkIpRangeParams(id interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) NewUpdateStorageNetworkIpRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateStorageNetworkIpRangeParams", reflect.TypeOf((*MockNetworkServiceIface)(nil).NewUpdateStorageNetworkIpRangeParams), id) } @@ -1230,7 +1381,7 @@ func (m *MockNetworkServiceIface) ReleasePublicIpRange(p *ReleasePublicIpRangePa } // ReleasePublicIpRange indicates an expected call of ReleasePublicIpRange. -func (mr *MockNetworkServiceIfaceMockRecorder) ReleasePublicIpRange(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ReleasePublicIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleasePublicIpRange", reflect.TypeOf((*MockNetworkServiceIface)(nil).ReleasePublicIpRange), p) } @@ -1245,7 +1396,7 @@ func (m *MockNetworkServiceIface) RemoveNetworkPermissions(p *RemoveNetworkPermi } // RemoveNetworkPermissions indicates an expected call of RemoveNetworkPermissions. -func (mr *MockNetworkServiceIfaceMockRecorder) RemoveNetworkPermissions(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) RemoveNetworkPermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNetworkPermissions", reflect.TypeOf((*MockNetworkServiceIface)(nil).RemoveNetworkPermissions), p) } @@ -1260,7 +1411,7 @@ func (m *MockNetworkServiceIface) ResetNetworkPermissions(p *ResetNetworkPermiss } // ResetNetworkPermissions indicates an expected call of ResetNetworkPermissions. -func (mr *MockNetworkServiceIfaceMockRecorder) ResetNetworkPermissions(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) ResetNetworkPermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetNetworkPermissions", reflect.TypeOf((*MockNetworkServiceIface)(nil).ResetNetworkPermissions), p) } @@ -1275,7 +1426,7 @@ func (m *MockNetworkServiceIface) RestartNetwork(p *RestartNetworkParams) (*Rest } // RestartNetwork indicates an expected call of RestartNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) RestartNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) RestartNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestartNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).RestartNetwork), p) } @@ -1290,7 +1441,7 @@ func (m *MockNetworkServiceIface) UpdateNetwork(p *UpdateNetworkParams) (*Update } // UpdateNetwork indicates an expected call of UpdateNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) UpdateNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) UpdateNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).UpdateNetwork), p) } @@ -1305,7 +1456,7 @@ func (m *MockNetworkServiceIface) UpdateNetworkServiceProvider(p *UpdateNetworkS } // UpdateNetworkServiceProvider indicates an expected call of UpdateNetworkServiceProvider. -func (mr *MockNetworkServiceIfaceMockRecorder) UpdateNetworkServiceProvider(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) UpdateNetworkServiceProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkServiceProvider", reflect.TypeOf((*MockNetworkServiceIface)(nil).UpdateNetworkServiceProvider), p) } @@ -1320,7 +1471,7 @@ func (m *MockNetworkServiceIface) UpdatePhysicalNetwork(p *UpdatePhysicalNetwork } // UpdatePhysicalNetwork indicates an expected call of UpdatePhysicalNetwork. -func (mr *MockNetworkServiceIfaceMockRecorder) UpdatePhysicalNetwork(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) UpdatePhysicalNetwork(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePhysicalNetwork", reflect.TypeOf((*MockNetworkServiceIface)(nil).UpdatePhysicalNetwork), p) } @@ -1335,7 +1486,7 @@ func (m *MockNetworkServiceIface) UpdateStorageNetworkIpRange(p *UpdateStorageNe } // UpdateStorageNetworkIpRange indicates an expected call of UpdateStorageNetworkIpRange. -func (mr *MockNetworkServiceIfaceMockRecorder) UpdateStorageNetworkIpRange(p interface{}) *gomock.Call { +func (mr *MockNetworkServiceIfaceMockRecorder) UpdateStorageNetworkIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateStorageNetworkIpRange", reflect.TypeOf((*MockNetworkServiceIface)(nil).UpdateStorageNetworkIpRange), p) } diff --git a/cloudstack/NicService_mock.go b/cloudstack/NicService_mock.go index 285dc91c..847a80f0 100644 --- a/cloudstack/NicService_mock.go +++ b/cloudstack/NicService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NicService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NicService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NicService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNicServiceIface is a mock of NicServiceIface interface. type MockNicServiceIface struct { ctrl *gomock.Controller recorder *MockNicServiceIfaceMockRecorder + isgomock struct{} } // MockNicServiceIfaceMockRecorder is the mock recorder for MockNicServiceIface. @@ -62,7 +68,7 @@ func (m *MockNicServiceIface) AddIpToNic(p *AddIpToNicParams) (*AddIpToNicRespon } // AddIpToNic indicates an expected call of AddIpToNic. -func (mr *MockNicServiceIfaceMockRecorder) AddIpToNic(p interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) AddIpToNic(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddIpToNic", reflect.TypeOf((*MockNicServiceIface)(nil).AddIpToNic), p) } @@ -77,7 +83,7 @@ func (m *MockNicServiceIface) ListNics(p *ListNicsParams) (*ListNicsResponse, er } // ListNics indicates an expected call of ListNics. -func (mr *MockNicServiceIfaceMockRecorder) ListNics(p interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) ListNics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNics", reflect.TypeOf((*MockNicServiceIface)(nil).ListNics), p) } @@ -91,7 +97,7 @@ func (m *MockNicServiceIface) NewAddIpToNicParams(nicid string) *AddIpToNicParam } // NewAddIpToNicParams indicates an expected call of NewAddIpToNicParams. -func (mr *MockNicServiceIfaceMockRecorder) NewAddIpToNicParams(nicid interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) NewAddIpToNicParams(nicid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddIpToNicParams", reflect.TypeOf((*MockNicServiceIface)(nil).NewAddIpToNicParams), nicid) } @@ -105,7 +111,7 @@ func (m *MockNicServiceIface) NewListNicsParams(virtualmachineid string) *ListNi } // NewListNicsParams indicates an expected call of NewListNicsParams. -func (mr *MockNicServiceIfaceMockRecorder) NewListNicsParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) NewListNicsParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListNicsParams", reflect.TypeOf((*MockNicServiceIface)(nil).NewListNicsParams), virtualmachineid) } @@ -119,7 +125,7 @@ func (m *MockNicServiceIface) NewRemoveIpFromNicParams(id string) *RemoveIpFromN } // NewRemoveIpFromNicParams indicates an expected call of NewRemoveIpFromNicParams. -func (mr *MockNicServiceIfaceMockRecorder) NewRemoveIpFromNicParams(id interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) NewRemoveIpFromNicParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveIpFromNicParams", reflect.TypeOf((*MockNicServiceIface)(nil).NewRemoveIpFromNicParams), id) } @@ -133,7 +139,7 @@ func (m *MockNicServiceIface) NewUpdateVmNicIpParams(nicid string) *UpdateVmNicI } // NewUpdateVmNicIpParams indicates an expected call of NewUpdateVmNicIpParams. -func (mr *MockNicServiceIfaceMockRecorder) NewUpdateVmNicIpParams(nicid interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) NewUpdateVmNicIpParams(nicid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVmNicIpParams", reflect.TypeOf((*MockNicServiceIface)(nil).NewUpdateVmNicIpParams), nicid) } @@ -148,7 +154,7 @@ func (m *MockNicServiceIface) RemoveIpFromNic(p *RemoveIpFromNicParams) (*Remove } // RemoveIpFromNic indicates an expected call of RemoveIpFromNic. -func (mr *MockNicServiceIfaceMockRecorder) RemoveIpFromNic(p interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) RemoveIpFromNic(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveIpFromNic", reflect.TypeOf((*MockNicServiceIface)(nil).RemoveIpFromNic), p) } @@ -163,7 +169,7 @@ func (m *MockNicServiceIface) UpdateVmNicIp(p *UpdateVmNicIpParams) (*UpdateVmNi } // UpdateVmNicIp indicates an expected call of UpdateVmNicIp. -func (mr *MockNicServiceIfaceMockRecorder) UpdateVmNicIp(p interface{}) *gomock.Call { +func (mr *MockNicServiceIfaceMockRecorder) UpdateVmNicIp(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVmNicIp", reflect.TypeOf((*MockNicServiceIface)(nil).UpdateVmNicIp), p) } diff --git a/cloudstack/NiciraNVPService_mock.go b/cloudstack/NiciraNVPService_mock.go index caa904c8..44c7d73c 100644 --- a/cloudstack/NiciraNVPService_mock.go +++ b/cloudstack/NiciraNVPService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/NiciraNVPService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/NiciraNVPService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/NiciraNVPService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockNiciraNVPServiceIface is a mock of NiciraNVPServiceIface interface. type MockNiciraNVPServiceIface struct { ctrl *gomock.Controller recorder *MockNiciraNVPServiceIfaceMockRecorder + isgomock struct{} } // MockNiciraNVPServiceIfaceMockRecorder is the mock recorder for MockNiciraNVPServiceIface. @@ -62,7 +68,7 @@ func (m *MockNiciraNVPServiceIface) AddNiciraNvpDevice(p *AddNiciraNvpDevicePara } // AddNiciraNvpDevice indicates an expected call of AddNiciraNvpDevice. -func (mr *MockNiciraNVPServiceIfaceMockRecorder) AddNiciraNvpDevice(p interface{}) *gomock.Call { +func (mr *MockNiciraNVPServiceIfaceMockRecorder) AddNiciraNvpDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNiciraNvpDevice", reflect.TypeOf((*MockNiciraNVPServiceIface)(nil).AddNiciraNvpDevice), p) } @@ -77,7 +83,7 @@ func (m *MockNiciraNVPServiceIface) DeleteNiciraNvpDevice(p *DeleteNiciraNvpDevi } // DeleteNiciraNvpDevice indicates an expected call of DeleteNiciraNvpDevice. -func (mr *MockNiciraNVPServiceIfaceMockRecorder) DeleteNiciraNvpDevice(p interface{}) *gomock.Call { +func (mr *MockNiciraNVPServiceIfaceMockRecorder) DeleteNiciraNvpDevice(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNiciraNvpDevice", reflect.TypeOf((*MockNiciraNVPServiceIface)(nil).DeleteNiciraNvpDevice), p) } @@ -92,7 +98,7 @@ func (m *MockNiciraNVPServiceIface) ListNiciraNvpDevices(p *ListNiciraNvpDevices } // ListNiciraNvpDevices indicates an expected call of ListNiciraNvpDevices. -func (mr *MockNiciraNVPServiceIfaceMockRecorder) ListNiciraNvpDevices(p interface{}) *gomock.Call { +func (mr *MockNiciraNVPServiceIfaceMockRecorder) ListNiciraNvpDevices(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNiciraNvpDevices", reflect.TypeOf((*MockNiciraNVPServiceIface)(nil).ListNiciraNvpDevices), p) } @@ -106,7 +112,7 @@ func (m *MockNiciraNVPServiceIface) NewAddNiciraNvpDeviceParams(hostname, passwo } // NewAddNiciraNvpDeviceParams indicates an expected call of NewAddNiciraNvpDeviceParams. -func (mr *MockNiciraNVPServiceIfaceMockRecorder) NewAddNiciraNvpDeviceParams(hostname, password, physicalnetworkid, transportzoneuuid, username interface{}) *gomock.Call { +func (mr *MockNiciraNVPServiceIfaceMockRecorder) NewAddNiciraNvpDeviceParams(hostname, password, physicalnetworkid, transportzoneuuid, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddNiciraNvpDeviceParams", reflect.TypeOf((*MockNiciraNVPServiceIface)(nil).NewAddNiciraNvpDeviceParams), hostname, password, physicalnetworkid, transportzoneuuid, username) } @@ -120,7 +126,7 @@ func (m *MockNiciraNVPServiceIface) NewDeleteNiciraNvpDeviceParams(nvpdeviceid s } // NewDeleteNiciraNvpDeviceParams indicates an expected call of NewDeleteNiciraNvpDeviceParams. -func (mr *MockNiciraNVPServiceIfaceMockRecorder) NewDeleteNiciraNvpDeviceParams(nvpdeviceid interface{}) *gomock.Call { +func (mr *MockNiciraNVPServiceIfaceMockRecorder) NewDeleteNiciraNvpDeviceParams(nvpdeviceid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteNiciraNvpDeviceParams", reflect.TypeOf((*MockNiciraNVPServiceIface)(nil).NewDeleteNiciraNvpDeviceParams), nvpdeviceid) } diff --git a/cloudstack/OauthService_mock.go b/cloudstack/OauthService_mock.go index 9accbcb6..b6664ea0 100644 --- a/cloudstack/OauthService_mock.go +++ b/cloudstack/OauthService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/OauthService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/OauthService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/OauthService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockOauthServiceIface is a mock of OauthServiceIface interface. type MockOauthServiceIface struct { ctrl *gomock.Controller recorder *MockOauthServiceIfaceMockRecorder + isgomock struct{} } // MockOauthServiceIfaceMockRecorder is the mock recorder for MockOauthServiceIface. @@ -62,7 +68,7 @@ func (m *MockOauthServiceIface) DeleteOauthProvider(p *DeleteOauthProviderParams } // DeleteOauthProvider indicates an expected call of DeleteOauthProvider. -func (mr *MockOauthServiceIfaceMockRecorder) DeleteOauthProvider(p interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) DeleteOauthProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOauthProvider", reflect.TypeOf((*MockOauthServiceIface)(nil).DeleteOauthProvider), p) } @@ -70,7 +76,7 @@ func (mr *MockOauthServiceIfaceMockRecorder) DeleteOauthProvider(p interface{}) // GetOauthProviderByID mocks base method. func (m *MockOauthServiceIface) GetOauthProviderByID(id string, opts ...OptionFunc) (*OauthProvider, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -82,16 +88,16 @@ func (m *MockOauthServiceIface) GetOauthProviderByID(id string, opts ...OptionFu } // GetOauthProviderByID indicates an expected call of GetOauthProviderByID. -func (mr *MockOauthServiceIfaceMockRecorder) GetOauthProviderByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) GetOauthProviderByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOauthProviderByID", reflect.TypeOf((*MockOauthServiceIface)(nil).GetOauthProviderByID), varargs...) } // GetOauthProviderByName mocks base method. func (m *MockOauthServiceIface) GetOauthProviderByName(name string, opts ...OptionFunc) (*OauthProvider, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -103,16 +109,16 @@ func (m *MockOauthServiceIface) GetOauthProviderByName(name string, opts ...Opti } // GetOauthProviderByName indicates an expected call of GetOauthProviderByName. -func (mr *MockOauthServiceIfaceMockRecorder) GetOauthProviderByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) GetOauthProviderByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOauthProviderByName", reflect.TypeOf((*MockOauthServiceIface)(nil).GetOauthProviderByName), varargs...) } // GetOauthProviderID mocks base method. func (m *MockOauthServiceIface) GetOauthProviderID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -124,9 +130,9 @@ func (m *MockOauthServiceIface) GetOauthProviderID(keyword string, opts ...Optio } // GetOauthProviderID indicates an expected call of GetOauthProviderID. -func (mr *MockOauthServiceIfaceMockRecorder) GetOauthProviderID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) GetOauthProviderID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOauthProviderID", reflect.TypeOf((*MockOauthServiceIface)(nil).GetOauthProviderID), varargs...) } @@ -140,7 +146,7 @@ func (m *MockOauthServiceIface) ListOauthProvider(p *ListOauthProviderParams) (* } // ListOauthProvider indicates an expected call of ListOauthProvider. -func (mr *MockOauthServiceIfaceMockRecorder) ListOauthProvider(p interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) ListOauthProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListOauthProvider", reflect.TypeOf((*MockOauthServiceIface)(nil).ListOauthProvider), p) } @@ -154,7 +160,7 @@ func (m *MockOauthServiceIface) NewDeleteOauthProviderParams(id string) *DeleteO } // NewDeleteOauthProviderParams indicates an expected call of NewDeleteOauthProviderParams. -func (mr *MockOauthServiceIfaceMockRecorder) NewDeleteOauthProviderParams(id interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) NewDeleteOauthProviderParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteOauthProviderParams", reflect.TypeOf((*MockOauthServiceIface)(nil).NewDeleteOauthProviderParams), id) } @@ -182,7 +188,7 @@ func (m *MockOauthServiceIface) NewUpdateOauthProviderParams(id string) *UpdateO } // NewUpdateOauthProviderParams indicates an expected call of NewUpdateOauthProviderParams. -func (mr *MockOauthServiceIfaceMockRecorder) NewUpdateOauthProviderParams(id interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) NewUpdateOauthProviderParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateOauthProviderParams", reflect.TypeOf((*MockOauthServiceIface)(nil).NewUpdateOauthProviderParams), id) } @@ -197,7 +203,7 @@ func (m *MockOauthServiceIface) UpdateOauthProvider(p *UpdateOauthProviderParams } // UpdateOauthProvider indicates an expected call of UpdateOauthProvider. -func (mr *MockOauthServiceIfaceMockRecorder) UpdateOauthProvider(p interface{}) *gomock.Call { +func (mr *MockOauthServiceIfaceMockRecorder) UpdateOauthProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOauthProvider", reflect.TypeOf((*MockOauthServiceIface)(nil).UpdateOauthProvider), p) } diff --git a/cloudstack/ObjectStoreService.go b/cloudstack/ObjectStoreService.go index 57f633a7..645be805 100644 --- a/cloudstack/ObjectStoreService.go +++ b/cloudstack/ObjectStoreService.go @@ -348,6 +348,7 @@ type CreateBucketResponse struct { Created string `json:"created"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Encryption bool `json:"encryption"` Hasannotations bool `json:"hasannotations"` Id string `json:"id"` @@ -1107,6 +1108,7 @@ type Bucket struct { Created string `json:"created"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Encryption bool `json:"encryption"` Hasannotations bool `json:"hasannotations"` Id string `json:"id"` diff --git a/cloudstack/ObjectStoreService_mock.go b/cloudstack/ObjectStoreService_mock.go index c7f014e7..41dfa4b5 100644 --- a/cloudstack/ObjectStoreService_mock.go +++ b/cloudstack/ObjectStoreService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ObjectStoreService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ObjectStoreService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ObjectStoreService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockObjectStoreServiceIface is a mock of ObjectStoreServiceIface interface. type MockObjectStoreServiceIface struct { ctrl *gomock.Controller recorder *MockObjectStoreServiceIfaceMockRecorder + isgomock struct{} } // MockObjectStoreServiceIfaceMockRecorder is the mock recorder for MockObjectStoreServiceIface. @@ -62,7 +68,7 @@ func (m *MockObjectStoreServiceIface) CreateBucket(p *CreateBucketParams) (*Crea } // CreateBucket indicates an expected call of CreateBucket. -func (mr *MockObjectStoreServiceIfaceMockRecorder) CreateBucket(p interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) CreateBucket(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBucket", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).CreateBucket), p) } @@ -77,7 +83,7 @@ func (m *MockObjectStoreServiceIface) DeleteBucket(p *DeleteBucketParams) (*Dele } // DeleteBucket indicates an expected call of DeleteBucket. -func (mr *MockObjectStoreServiceIfaceMockRecorder) DeleteBucket(p interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) DeleteBucket(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucket", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).DeleteBucket), p) } @@ -85,7 +91,7 @@ func (mr *MockObjectStoreServiceIfaceMockRecorder) DeleteBucket(p interface{}) * // GetBucketByID mocks base method. func (m *MockObjectStoreServiceIface) GetBucketByID(id string, opts ...OptionFunc) (*Bucket, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockObjectStoreServiceIface) GetBucketByID(id string, opts ...OptionFun } // GetBucketByID indicates an expected call of GetBucketByID. -func (mr *MockObjectStoreServiceIfaceMockRecorder) GetBucketByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) GetBucketByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByID", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).GetBucketByID), varargs...) } // GetBucketByName mocks base method. func (m *MockObjectStoreServiceIface) GetBucketByName(name string, opts ...OptionFunc) (*Bucket, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockObjectStoreServiceIface) GetBucketByName(name string, opts ...Optio } // GetBucketByName indicates an expected call of GetBucketByName. -func (mr *MockObjectStoreServiceIfaceMockRecorder) GetBucketByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) GetBucketByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByName", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).GetBucketByName), varargs...) } // GetBucketID mocks base method. func (m *MockObjectStoreServiceIface) GetBucketID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockObjectStoreServiceIface) GetBucketID(name string, opts ...OptionFun } // GetBucketID indicates an expected call of GetBucketID. -func (mr *MockObjectStoreServiceIfaceMockRecorder) GetBucketID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) GetBucketID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketID", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).GetBucketID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockObjectStoreServiceIface) ListBuckets(p *ListBucketsParams) (*ListBu } // ListBuckets indicates an expected call of ListBuckets. -func (mr *MockObjectStoreServiceIfaceMockRecorder) ListBuckets(p interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) ListBuckets(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBuckets", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).ListBuckets), p) } @@ -169,7 +175,7 @@ func (m *MockObjectStoreServiceIface) NewCreateBucketParams(name, objectstoragei } // NewCreateBucketParams indicates an expected call of NewCreateBucketParams. -func (mr *MockObjectStoreServiceIfaceMockRecorder) NewCreateBucketParams(name, objectstorageid interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) NewCreateBucketParams(name, objectstorageid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateBucketParams", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).NewCreateBucketParams), name, objectstorageid) } @@ -183,7 +189,7 @@ func (m *MockObjectStoreServiceIface) NewDeleteBucketParams(id string) *DeleteBu } // NewDeleteBucketParams indicates an expected call of NewDeleteBucketParams. -func (mr *MockObjectStoreServiceIfaceMockRecorder) NewDeleteBucketParams(id interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) NewDeleteBucketParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteBucketParams", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).NewDeleteBucketParams), id) } @@ -211,7 +217,7 @@ func (m *MockObjectStoreServiceIface) NewUpdateBucketParams(id string) *UpdateBu } // NewUpdateBucketParams indicates an expected call of NewUpdateBucketParams. -func (mr *MockObjectStoreServiceIfaceMockRecorder) NewUpdateBucketParams(id interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) NewUpdateBucketParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateBucketParams", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).NewUpdateBucketParams), id) } @@ -226,7 +232,7 @@ func (m *MockObjectStoreServiceIface) UpdateBucket(p *UpdateBucketParams) (*Upda } // UpdateBucket indicates an expected call of UpdateBucket. -func (mr *MockObjectStoreServiceIfaceMockRecorder) UpdateBucket(p interface{}) *gomock.Call { +func (mr *MockObjectStoreServiceIfaceMockRecorder) UpdateBucket(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBucket", reflect.TypeOf((*MockObjectStoreServiceIface)(nil).UpdateBucket), p) } diff --git a/cloudstack/OutofbandManagementService_mock.go b/cloudstack/OutofbandManagementService_mock.go index 1813818a..08a40388 100644 --- a/cloudstack/OutofbandManagementService_mock.go +++ b/cloudstack/OutofbandManagementService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/OutofbandManagementService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/OutofbandManagementService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/OutofbandManagementService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockOutofbandManagementServiceIface is a mock of OutofbandManagementServiceIface interface. type MockOutofbandManagementServiceIface struct { ctrl *gomock.Controller recorder *MockOutofbandManagementServiceIfaceMockRecorder + isgomock struct{} } // MockOutofbandManagementServiceIfaceMockRecorder is the mock recorder for MockOutofbandManagementServiceIface. @@ -62,7 +68,7 @@ func (m *MockOutofbandManagementServiceIface) ChangeOutOfBandManagementPassword( } // ChangeOutOfBandManagementPassword indicates an expected call of ChangeOutOfBandManagementPassword. -func (mr *MockOutofbandManagementServiceIfaceMockRecorder) ChangeOutOfBandManagementPassword(p interface{}) *gomock.Call { +func (mr *MockOutofbandManagementServiceIfaceMockRecorder) ChangeOutOfBandManagementPassword(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeOutOfBandManagementPassword", reflect.TypeOf((*MockOutofbandManagementServiceIface)(nil).ChangeOutOfBandManagementPassword), p) } @@ -77,7 +83,7 @@ func (m *MockOutofbandManagementServiceIface) ConfigureOutOfBandManagement(p *Co } // ConfigureOutOfBandManagement indicates an expected call of ConfigureOutOfBandManagement. -func (mr *MockOutofbandManagementServiceIfaceMockRecorder) ConfigureOutOfBandManagement(p interface{}) *gomock.Call { +func (mr *MockOutofbandManagementServiceIfaceMockRecorder) ConfigureOutOfBandManagement(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureOutOfBandManagement", reflect.TypeOf((*MockOutofbandManagementServiceIface)(nil).ConfigureOutOfBandManagement), p) } @@ -92,7 +98,7 @@ func (m *MockOutofbandManagementServiceIface) IssueOutOfBandManagementPowerActio } // IssueOutOfBandManagementPowerAction indicates an expected call of IssueOutOfBandManagementPowerAction. -func (mr *MockOutofbandManagementServiceIfaceMockRecorder) IssueOutOfBandManagementPowerAction(p interface{}) *gomock.Call { +func (mr *MockOutofbandManagementServiceIfaceMockRecorder) IssueOutOfBandManagementPowerAction(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IssueOutOfBandManagementPowerAction", reflect.TypeOf((*MockOutofbandManagementServiceIface)(nil).IssueOutOfBandManagementPowerAction), p) } @@ -106,7 +112,7 @@ func (m *MockOutofbandManagementServiceIface) NewChangeOutOfBandManagementPasswo } // NewChangeOutOfBandManagementPasswordParams indicates an expected call of NewChangeOutOfBandManagementPasswordParams. -func (mr *MockOutofbandManagementServiceIfaceMockRecorder) NewChangeOutOfBandManagementPasswordParams(hostid interface{}) *gomock.Call { +func (mr *MockOutofbandManagementServiceIfaceMockRecorder) NewChangeOutOfBandManagementPasswordParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeOutOfBandManagementPasswordParams", reflect.TypeOf((*MockOutofbandManagementServiceIface)(nil).NewChangeOutOfBandManagementPasswordParams), hostid) } @@ -120,7 +126,7 @@ func (m *MockOutofbandManagementServiceIface) NewConfigureOutOfBandManagementPar } // NewConfigureOutOfBandManagementParams indicates an expected call of NewConfigureOutOfBandManagementParams. -func (mr *MockOutofbandManagementServiceIfaceMockRecorder) NewConfigureOutOfBandManagementParams(address, driver, hostid, password, port, username interface{}) *gomock.Call { +func (mr *MockOutofbandManagementServiceIfaceMockRecorder) NewConfigureOutOfBandManagementParams(address, driver, hostid, password, port, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureOutOfBandManagementParams", reflect.TypeOf((*MockOutofbandManagementServiceIface)(nil).NewConfigureOutOfBandManagementParams), address, driver, hostid, password, port, username) } @@ -134,7 +140,7 @@ func (m *MockOutofbandManagementServiceIface) NewIssueOutOfBandManagementPowerAc } // NewIssueOutOfBandManagementPowerActionParams indicates an expected call of NewIssueOutOfBandManagementPowerActionParams. -func (mr *MockOutofbandManagementServiceIfaceMockRecorder) NewIssueOutOfBandManagementPowerActionParams(action, hostid interface{}) *gomock.Call { +func (mr *MockOutofbandManagementServiceIfaceMockRecorder) NewIssueOutOfBandManagementPowerActionParams(action, hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewIssueOutOfBandManagementPowerActionParams", reflect.TypeOf((*MockOutofbandManagementServiceIface)(nil).NewIssueOutOfBandManagementPowerActionParams), action, hostid) } diff --git a/cloudstack/OvsElementService_mock.go b/cloudstack/OvsElementService_mock.go index a79abeb4..bf338f3d 100644 --- a/cloudstack/OvsElementService_mock.go +++ b/cloudstack/OvsElementService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/OvsElementService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/OvsElementService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/OvsElementService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockOvsElementServiceIface is a mock of OvsElementServiceIface interface. type MockOvsElementServiceIface struct { ctrl *gomock.Controller recorder *MockOvsElementServiceIfaceMockRecorder + isgomock struct{} } // MockOvsElementServiceIfaceMockRecorder is the mock recorder for MockOvsElementServiceIface. @@ -62,7 +68,7 @@ func (m *MockOvsElementServiceIface) ConfigureOvsElement(p *ConfigureOvsElementP } // ConfigureOvsElement indicates an expected call of ConfigureOvsElement. -func (mr *MockOvsElementServiceIfaceMockRecorder) ConfigureOvsElement(p interface{}) *gomock.Call { +func (mr *MockOvsElementServiceIfaceMockRecorder) ConfigureOvsElement(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureOvsElement", reflect.TypeOf((*MockOvsElementServiceIface)(nil).ConfigureOvsElement), p) } @@ -70,7 +76,7 @@ func (mr *MockOvsElementServiceIfaceMockRecorder) ConfigureOvsElement(p interfac // GetOvsElementByID mocks base method. func (m *MockOvsElementServiceIface) GetOvsElementByID(id string, opts ...OptionFunc) (*OvsElement, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -82,9 +88,9 @@ func (m *MockOvsElementServiceIface) GetOvsElementByID(id string, opts ...Option } // GetOvsElementByID indicates an expected call of GetOvsElementByID. -func (mr *MockOvsElementServiceIfaceMockRecorder) GetOvsElementByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockOvsElementServiceIfaceMockRecorder) GetOvsElementByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOvsElementByID", reflect.TypeOf((*MockOvsElementServiceIface)(nil).GetOvsElementByID), varargs...) } @@ -98,7 +104,7 @@ func (m *MockOvsElementServiceIface) ListOvsElements(p *ListOvsElementsParams) ( } // ListOvsElements indicates an expected call of ListOvsElements. -func (mr *MockOvsElementServiceIfaceMockRecorder) ListOvsElements(p interface{}) *gomock.Call { +func (mr *MockOvsElementServiceIfaceMockRecorder) ListOvsElements(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListOvsElements", reflect.TypeOf((*MockOvsElementServiceIface)(nil).ListOvsElements), p) } @@ -112,7 +118,7 @@ func (m *MockOvsElementServiceIface) NewConfigureOvsElementParams(enabled bool, } // NewConfigureOvsElementParams indicates an expected call of NewConfigureOvsElementParams. -func (mr *MockOvsElementServiceIfaceMockRecorder) NewConfigureOvsElementParams(enabled, id interface{}) *gomock.Call { +func (mr *MockOvsElementServiceIfaceMockRecorder) NewConfigureOvsElementParams(enabled, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureOvsElementParams", reflect.TypeOf((*MockOvsElementServiceIface)(nil).NewConfigureOvsElementParams), enabled, id) } diff --git a/cloudstack/PodService.go b/cloudstack/PodService.go index 26b3530e..60672b78 100644 --- a/cloudstack/PodService.go +++ b/cloudstack/PodService.go @@ -28,10 +28,14 @@ import ( ) type PodServiceIface interface { + CreateManagementNetworkIpRange(p *CreateManagementNetworkIpRangeParams) (*CreateManagementNetworkIpRangeResponse, error) + NewCreateManagementNetworkIpRangeParams(gateway string, netmask string, podid string, startip string) *CreateManagementNetworkIpRangeParams CreatePod(p *CreatePodParams) (*CreatePodResponse, error) NewCreatePodParams(name string, zoneid string) *CreatePodParams DedicatePod(p *DedicatePodParams) (*DedicatePodResponse, error) NewDedicatePodParams(domainid string, podid string) *DedicatePodParams + DeleteManagementNetworkIpRange(p *DeleteManagementNetworkIpRangeParams) (*DeleteManagementNetworkIpRangeResponse, error) + NewDeleteManagementNetworkIpRangeParams(endip string, podid string, startip string, vlan string) *DeleteManagementNetworkIpRangeParams DeletePod(p *DeletePodParams) (*DeletePodResponse, error) NewDeletePodParams(id string) *DeletePodParams ListDedicatedPods(p *ListDedicatedPodsParams) (*ListDedicatedPodsResponse, error) @@ -49,6 +53,278 @@ type PodServiceIface interface { NewUpdatePodManagementNetworkIpRangeParams(currentendip string, currentstartip string, podid string) *UpdatePodManagementNetworkIpRangeParams } +type CreateManagementNetworkIpRangeParams struct { + p map[string]interface{} +} + +func (p *CreateManagementNetworkIpRangeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["endip"]; found { + u.Set("endip", v.(string)) + } + if v, found := p.p["forsystemvms"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("forsystemvms", vv) + } + if v, found := p.p["gateway"]; found { + u.Set("gateway", v.(string)) + } + if v, found := p.p["netmask"]; found { + u.Set("netmask", v.(string)) + } + if v, found := p.p["podid"]; found { + u.Set("podid", v.(string)) + } + if v, found := p.p["startip"]; found { + u.Set("startip", v.(string)) + } + if v, found := p.p["vlan"]; found { + u.Set("vlan", v.(string)) + } + return u +} + +func (p *CreateManagementNetworkIpRangeParams) SetEndip(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["endip"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetEndip() { + if p.p != nil && p.p["endip"] != nil { + delete(p.p, "endip") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetEndip() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["endip"].(string) + return value, ok +} + +func (p *CreateManagementNetworkIpRangeParams) SetForsystemvms(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forsystemvms"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetForsystemvms() { + if p.p != nil && p.p["forsystemvms"] != nil { + delete(p.p, "forsystemvms") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetForsystemvms() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forsystemvms"].(bool) + return value, ok +} + +func (p *CreateManagementNetworkIpRangeParams) SetGateway(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["gateway"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetGateway() { + if p.p != nil && p.p["gateway"] != nil { + delete(p.p, "gateway") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetGateway() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["gateway"].(string) + return value, ok +} + +func (p *CreateManagementNetworkIpRangeParams) SetNetmask(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["netmask"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetNetmask() { + if p.p != nil && p.p["netmask"] != nil { + delete(p.p, "netmask") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetNetmask() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["netmask"].(string) + return value, ok +} + +func (p *CreateManagementNetworkIpRangeParams) SetPodid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["podid"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetPodid() { + if p.p != nil && p.p["podid"] != nil { + delete(p.p, "podid") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetPodid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["podid"].(string) + return value, ok +} + +func (p *CreateManagementNetworkIpRangeParams) SetStartip(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startip"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetStartip() { + if p.p != nil && p.p["startip"] != nil { + delete(p.p, "startip") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetStartip() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startip"].(string) + return value, ok +} + +func (p *CreateManagementNetworkIpRangeParams) SetVlan(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vlan"] = v +} + +func (p *CreateManagementNetworkIpRangeParams) ResetVlan() { + if p.p != nil && p.p["vlan"] != nil { + delete(p.p, "vlan") + } +} + +func (p *CreateManagementNetworkIpRangeParams) GetVlan() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vlan"].(string) + return value, ok +} + +// You should always use this function to get a new CreateManagementNetworkIpRangeParams instance, +// as then you are sure you have configured all required params +func (s *PodService) NewCreateManagementNetworkIpRangeParams(gateway string, netmask string, podid string, startip string) *CreateManagementNetworkIpRangeParams { + p := &CreateManagementNetworkIpRangeParams{} + p.p = make(map[string]interface{}) + p.p["gateway"] = gateway + p.p["netmask"] = netmask + p.p["podid"] = podid + p.p["startip"] = startip + return p +} + +// Creates a Management network IP range. +func (s *PodService) CreateManagementNetworkIpRange(p *CreateManagementNetworkIpRangeParams) (*CreateManagementNetworkIpRangeResponse, error) { + resp, err := s.cs.newRequest("createManagementNetworkIpRange", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateManagementNetworkIpRangeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateManagementNetworkIpRangeResponse struct { + Allocationstate string `json:"allocationstate"` + Capacity []CreateManagementNetworkIpRangeResponseCapacity `json:"capacity"` + Endip []string `json:"endip"` + Forsystemvms []string `json:"forsystemvms"` + Gateway string `json:"gateway"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Ipranges []CreateManagementNetworkIpRangeResponseIpranges `json:"ipranges"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Netmask string `json:"netmask"` + Startip []string `json:"startip"` + Vlanid []string `json:"vlanid"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type CreateManagementNetworkIpRangeResponseIpranges struct { + Cidr string `json:"cidr"` + Endip string `json:"endip"` + Forsystemvms string `json:"forsystemvms"` + Gateway string `json:"gateway"` + Startip string `json:"startip"` + Vlanid string `json:"vlanid"` +} + +type CreateManagementNetworkIpRangeResponseCapacity struct { + Capacityallocated int64 `json:"capacityallocated"` + Capacitytotal int64 `json:"capacitytotal"` + Capacityused int64 `json:"capacityused"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Name string `json:"name"` + Percentused string `json:"percentused"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Tag string `json:"tag"` + Type int `json:"type"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + type CreatePodParams struct { p map[string]interface{} } @@ -442,6 +718,163 @@ type DedicatePodResponse struct { Podname string `json:"podname"` } +type DeleteManagementNetworkIpRangeParams struct { + p map[string]interface{} +} + +func (p *DeleteManagementNetworkIpRangeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["endip"]; found { + u.Set("endip", v.(string)) + } + if v, found := p.p["podid"]; found { + u.Set("podid", v.(string)) + } + if v, found := p.p["startip"]; found { + u.Set("startip", v.(string)) + } + if v, found := p.p["vlan"]; found { + u.Set("vlan", v.(string)) + } + return u +} + +func (p *DeleteManagementNetworkIpRangeParams) SetEndip(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["endip"] = v +} + +func (p *DeleteManagementNetworkIpRangeParams) ResetEndip() { + if p.p != nil && p.p["endip"] != nil { + delete(p.p, "endip") + } +} + +func (p *DeleteManagementNetworkIpRangeParams) GetEndip() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["endip"].(string) + return value, ok +} + +func (p *DeleteManagementNetworkIpRangeParams) SetPodid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["podid"] = v +} + +func (p *DeleteManagementNetworkIpRangeParams) ResetPodid() { + if p.p != nil && p.p["podid"] != nil { + delete(p.p, "podid") + } +} + +func (p *DeleteManagementNetworkIpRangeParams) GetPodid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["podid"].(string) + return value, ok +} + +func (p *DeleteManagementNetworkIpRangeParams) SetStartip(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startip"] = v +} + +func (p *DeleteManagementNetworkIpRangeParams) ResetStartip() { + if p.p != nil && p.p["startip"] != nil { + delete(p.p, "startip") + } +} + +func (p *DeleteManagementNetworkIpRangeParams) GetStartip() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startip"].(string) + return value, ok +} + +func (p *DeleteManagementNetworkIpRangeParams) SetVlan(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vlan"] = v +} + +func (p *DeleteManagementNetworkIpRangeParams) ResetVlan() { + if p.p != nil && p.p["vlan"] != nil { + delete(p.p, "vlan") + } +} + +func (p *DeleteManagementNetworkIpRangeParams) GetVlan() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vlan"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteManagementNetworkIpRangeParams instance, +// as then you are sure you have configured all required params +func (s *PodService) NewDeleteManagementNetworkIpRangeParams(endip string, podid string, startip string, vlan string) *DeleteManagementNetworkIpRangeParams { + p := &DeleteManagementNetworkIpRangeParams{} + p.p = make(map[string]interface{}) + p.p["endip"] = endip + p.p["podid"] = podid + p.p["startip"] = startip + p.p["vlan"] = vlan + return p +} + +// Deletes a management network IP range. This action is only allowed when no IPs in this range are allocated. +func (s *PodService) DeleteManagementNetworkIpRange(p *DeleteManagementNetworkIpRangeParams) (*DeleteManagementNetworkIpRangeResponse, error) { + resp, err := s.cs.newRequest("deleteManagementNetworkIpRange", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteManagementNetworkIpRangeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteManagementNetworkIpRangeResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + type DeletePodParams struct { p map[string]interface{} } diff --git a/cloudstack/PodService_mock.go b/cloudstack/PodService_mock.go index 4e7bb9f4..75edd93e 100644 --- a/cloudstack/PodService_mock.go +++ b/cloudstack/PodService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/PodService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/PodService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/PodService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockPodServiceIface is a mock of PodServiceIface interface. type MockPodServiceIface struct { ctrl *gomock.Controller recorder *MockPodServiceIfaceMockRecorder + isgomock struct{} } // MockPodServiceIfaceMockRecorder is the mock recorder for MockPodServiceIface. @@ -52,6 +58,21 @@ func (m *MockPodServiceIface) EXPECT() *MockPodServiceIfaceMockRecorder { return m.recorder } +// CreateManagementNetworkIpRange mocks base method. +func (m *MockPodServiceIface) CreateManagementNetworkIpRange(p *CreateManagementNetworkIpRangeParams) (*CreateManagementNetworkIpRangeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateManagementNetworkIpRange", p) + ret0, _ := ret[0].(*CreateManagementNetworkIpRangeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateManagementNetworkIpRange indicates an expected call of CreateManagementNetworkIpRange. +func (mr *MockPodServiceIfaceMockRecorder) CreateManagementNetworkIpRange(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateManagementNetworkIpRange", reflect.TypeOf((*MockPodServiceIface)(nil).CreateManagementNetworkIpRange), p) +} + // CreatePod mocks base method. func (m *MockPodServiceIface) CreatePod(p *CreatePodParams) (*CreatePodResponse, error) { m.ctrl.T.Helper() @@ -62,7 +83,7 @@ func (m *MockPodServiceIface) CreatePod(p *CreatePodParams) (*CreatePodResponse, } // CreatePod indicates an expected call of CreatePod. -func (mr *MockPodServiceIfaceMockRecorder) CreatePod(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) CreatePod(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePod", reflect.TypeOf((*MockPodServiceIface)(nil).CreatePod), p) } @@ -77,11 +98,26 @@ func (m *MockPodServiceIface) DedicatePod(p *DedicatePodParams) (*DedicatePodRes } // DedicatePod indicates an expected call of DedicatePod. -func (mr *MockPodServiceIfaceMockRecorder) DedicatePod(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) DedicatePod(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicatePod", reflect.TypeOf((*MockPodServiceIface)(nil).DedicatePod), p) } +// DeleteManagementNetworkIpRange mocks base method. +func (m *MockPodServiceIface) DeleteManagementNetworkIpRange(p *DeleteManagementNetworkIpRangeParams) (*DeleteManagementNetworkIpRangeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteManagementNetworkIpRange", p) + ret0, _ := ret[0].(*DeleteManagementNetworkIpRangeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteManagementNetworkIpRange indicates an expected call of DeleteManagementNetworkIpRange. +func (mr *MockPodServiceIfaceMockRecorder) DeleteManagementNetworkIpRange(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteManagementNetworkIpRange", reflect.TypeOf((*MockPodServiceIface)(nil).DeleteManagementNetworkIpRange), p) +} + // DeletePod mocks base method. func (m *MockPodServiceIface) DeletePod(p *DeletePodParams) (*DeletePodResponse, error) { m.ctrl.T.Helper() @@ -92,7 +128,7 @@ func (m *MockPodServiceIface) DeletePod(p *DeletePodParams) (*DeletePodResponse, } // DeletePod indicates an expected call of DeletePod. -func (mr *MockPodServiceIfaceMockRecorder) DeletePod(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) DeletePod(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePod", reflect.TypeOf((*MockPodServiceIface)(nil).DeletePod), p) } @@ -100,7 +136,7 @@ func (mr *MockPodServiceIfaceMockRecorder) DeletePod(p interface{}) *gomock.Call // GetPodByID mocks base method. func (m *MockPodServiceIface) GetPodByID(id string, opts ...OptionFunc) (*Pod, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -112,16 +148,16 @@ func (m *MockPodServiceIface) GetPodByID(id string, opts ...OptionFunc) (*Pod, i } // GetPodByID indicates an expected call of GetPodByID. -func (mr *MockPodServiceIfaceMockRecorder) GetPodByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) GetPodByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodByID", reflect.TypeOf((*MockPodServiceIface)(nil).GetPodByID), varargs...) } // GetPodByName mocks base method. func (m *MockPodServiceIface) GetPodByName(name string, opts ...OptionFunc) (*Pod, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -133,16 +169,16 @@ func (m *MockPodServiceIface) GetPodByName(name string, opts ...OptionFunc) (*Po } // GetPodByName indicates an expected call of GetPodByName. -func (mr *MockPodServiceIfaceMockRecorder) GetPodByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) GetPodByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodByName", reflect.TypeOf((*MockPodServiceIface)(nil).GetPodByName), varargs...) } // GetPodID mocks base method. func (m *MockPodServiceIface) GetPodID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -154,9 +190,9 @@ func (m *MockPodServiceIface) GetPodID(name string, opts ...OptionFunc) (string, } // GetPodID indicates an expected call of GetPodID. -func (mr *MockPodServiceIfaceMockRecorder) GetPodID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) GetPodID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodID", reflect.TypeOf((*MockPodServiceIface)(nil).GetPodID), varargs...) } @@ -170,7 +206,7 @@ func (m *MockPodServiceIface) ListDedicatedPods(p *ListDedicatedPodsParams) (*Li } // ListDedicatedPods indicates an expected call of ListDedicatedPods. -func (mr *MockPodServiceIfaceMockRecorder) ListDedicatedPods(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) ListDedicatedPods(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDedicatedPods", reflect.TypeOf((*MockPodServiceIface)(nil).ListDedicatedPods), p) } @@ -185,11 +221,25 @@ func (m *MockPodServiceIface) ListPods(p *ListPodsParams) (*ListPodsResponse, er } // ListPods indicates an expected call of ListPods. -func (mr *MockPodServiceIfaceMockRecorder) ListPods(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) ListPods(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPods", reflect.TypeOf((*MockPodServiceIface)(nil).ListPods), p) } +// NewCreateManagementNetworkIpRangeParams mocks base method. +func (m *MockPodServiceIface) NewCreateManagementNetworkIpRangeParams(gateway, netmask, podid, startip string) *CreateManagementNetworkIpRangeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateManagementNetworkIpRangeParams", gateway, netmask, podid, startip) + ret0, _ := ret[0].(*CreateManagementNetworkIpRangeParams) + return ret0 +} + +// NewCreateManagementNetworkIpRangeParams indicates an expected call of NewCreateManagementNetworkIpRangeParams. +func (mr *MockPodServiceIfaceMockRecorder) NewCreateManagementNetworkIpRangeParams(gateway, netmask, podid, startip any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateManagementNetworkIpRangeParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewCreateManagementNetworkIpRangeParams), gateway, netmask, podid, startip) +} + // NewCreatePodParams mocks base method. func (m *MockPodServiceIface) NewCreatePodParams(name, zoneid string) *CreatePodParams { m.ctrl.T.Helper() @@ -199,7 +249,7 @@ func (m *MockPodServiceIface) NewCreatePodParams(name, zoneid string) *CreatePod } // NewCreatePodParams indicates an expected call of NewCreatePodParams. -func (mr *MockPodServiceIfaceMockRecorder) NewCreatePodParams(name, zoneid interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) NewCreatePodParams(name, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreatePodParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewCreatePodParams), name, zoneid) } @@ -213,11 +263,25 @@ func (m *MockPodServiceIface) NewDedicatePodParams(domainid, podid string) *Dedi } // NewDedicatePodParams indicates an expected call of NewDedicatePodParams. -func (mr *MockPodServiceIfaceMockRecorder) NewDedicatePodParams(domainid, podid interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) NewDedicatePodParams(domainid, podid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicatePodParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewDedicatePodParams), domainid, podid) } +// NewDeleteManagementNetworkIpRangeParams mocks base method. +func (m *MockPodServiceIface) NewDeleteManagementNetworkIpRangeParams(endip, podid, startip, vlan string) *DeleteManagementNetworkIpRangeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteManagementNetworkIpRangeParams", endip, podid, startip, vlan) + ret0, _ := ret[0].(*DeleteManagementNetworkIpRangeParams) + return ret0 +} + +// NewDeleteManagementNetworkIpRangeParams indicates an expected call of NewDeleteManagementNetworkIpRangeParams. +func (mr *MockPodServiceIfaceMockRecorder) NewDeleteManagementNetworkIpRangeParams(endip, podid, startip, vlan any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteManagementNetworkIpRangeParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewDeleteManagementNetworkIpRangeParams), endip, podid, startip, vlan) +} + // NewDeletePodParams mocks base method. func (m *MockPodServiceIface) NewDeletePodParams(id string) *DeletePodParams { m.ctrl.T.Helper() @@ -227,7 +291,7 @@ func (m *MockPodServiceIface) NewDeletePodParams(id string) *DeletePodParams { } // NewDeletePodParams indicates an expected call of NewDeletePodParams. -func (mr *MockPodServiceIfaceMockRecorder) NewDeletePodParams(id interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) NewDeletePodParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeletePodParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewDeletePodParams), id) } @@ -269,7 +333,7 @@ func (m *MockPodServiceIface) NewReleaseDedicatedPodParams(podid string) *Releas } // NewReleaseDedicatedPodParams indicates an expected call of NewReleaseDedicatedPodParams. -func (mr *MockPodServiceIfaceMockRecorder) NewReleaseDedicatedPodParams(podid interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) NewReleaseDedicatedPodParams(podid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseDedicatedPodParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewReleaseDedicatedPodParams), podid) } @@ -283,7 +347,7 @@ func (m *MockPodServiceIface) NewUpdatePodManagementNetworkIpRangeParams(current } // NewUpdatePodManagementNetworkIpRangeParams indicates an expected call of NewUpdatePodManagementNetworkIpRangeParams. -func (mr *MockPodServiceIfaceMockRecorder) NewUpdatePodManagementNetworkIpRangeParams(currentendip, currentstartip, podid interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) NewUpdatePodManagementNetworkIpRangeParams(currentendip, currentstartip, podid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdatePodManagementNetworkIpRangeParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewUpdatePodManagementNetworkIpRangeParams), currentendip, currentstartip, podid) } @@ -297,7 +361,7 @@ func (m *MockPodServiceIface) NewUpdatePodParams(id string) *UpdatePodParams { } // NewUpdatePodParams indicates an expected call of NewUpdatePodParams. -func (mr *MockPodServiceIfaceMockRecorder) NewUpdatePodParams(id interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) NewUpdatePodParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdatePodParams", reflect.TypeOf((*MockPodServiceIface)(nil).NewUpdatePodParams), id) } @@ -312,7 +376,7 @@ func (m *MockPodServiceIface) ReleaseDedicatedPod(p *ReleaseDedicatedPodParams) } // ReleaseDedicatedPod indicates an expected call of ReleaseDedicatedPod. -func (mr *MockPodServiceIfaceMockRecorder) ReleaseDedicatedPod(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) ReleaseDedicatedPod(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseDedicatedPod", reflect.TypeOf((*MockPodServiceIface)(nil).ReleaseDedicatedPod), p) } @@ -327,7 +391,7 @@ func (m *MockPodServiceIface) UpdatePod(p *UpdatePodParams) (*UpdatePodResponse, } // UpdatePod indicates an expected call of UpdatePod. -func (mr *MockPodServiceIfaceMockRecorder) UpdatePod(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) UpdatePod(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePod", reflect.TypeOf((*MockPodServiceIface)(nil).UpdatePod), p) } @@ -342,7 +406,7 @@ func (m *MockPodServiceIface) UpdatePodManagementNetworkIpRange(p *UpdatePodMana } // UpdatePodManagementNetworkIpRange indicates an expected call of UpdatePodManagementNetworkIpRange. -func (mr *MockPodServiceIfaceMockRecorder) UpdatePodManagementNetworkIpRange(p interface{}) *gomock.Call { +func (mr *MockPodServiceIfaceMockRecorder) UpdatePodManagementNetworkIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePodManagementNetworkIpRange", reflect.TypeOf((*MockPodServiceIface)(nil).UpdatePodManagementNetworkIpRange), p) } diff --git a/cloudstack/PoolService.go b/cloudstack/PoolService.go index 1f115edc..db360fb9 100644 --- a/cloudstack/PoolService.go +++ b/cloudstack/PoolService.go @@ -34,6 +34,8 @@ type PoolServiceIface interface { NewDeleteStoragePoolParams(id string) *DeleteStoragePoolParams FindStoragePoolsForMigration(p *FindStoragePoolsForMigrationParams) (*FindStoragePoolsForMigrationResponse, error) NewFindStoragePoolsForMigrationParams(id string) *FindStoragePoolsForMigrationParams + ListElastistorPool(p *ListElastistorPoolParams) (*ListElastistorPoolResponse, error) + NewListElastistorPoolParams() *ListElastistorPoolParams ListStoragePools(p *ListStoragePoolsParams) (*ListStoragePoolsResponse, error) NewListStoragePoolsParams() *ListStoragePoolsParams GetStoragePoolID(name string, opts ...OptionFunc) (string, int, error) @@ -753,6 +755,83 @@ type FindStoragePoolsForMigrationResponse struct { Zonename string `json:"zonename"` } +type ListElastistorPoolParams struct { + p map[string]interface{} +} + +func (p *ListElastistorPoolParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("id", vv) + } + return u +} + +func (p *ListElastistorPoolParams) SetId(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListElastistorPoolParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListElastistorPoolParams) GetId() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(int64) + return value, ok +} + +// You should always use this function to get a new ListElastistorPoolParams instance, +// as then you are sure you have configured all required params +func (s *PoolService) NewListElastistorPoolParams() *ListElastistorPoolParams { + p := &ListElastistorPoolParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists the pools of elastistor +func (s *PoolService) ListElastistorPool(p *ListElastistorPoolParams) (*ListElastistorPoolResponse, error) { + resp, err := s.cs.newRequest("listElastistorPool", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListElastistorPoolResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListElastistorPoolResponse struct { + Count int `json:"count"` + ElastistorPool []*ElastistorPool `json:"elastistorpool"` +} + +type ElastistorPool struct { + Controllerid string `json:"controllerid"` + Gateway string `json:"gateway"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Name string `json:"name"` + Size int64 `json:"size"` + State string `json:"state"` +} + type ListStoragePoolsParams struct { p map[string]interface{} } diff --git a/cloudstack/PoolService_mock.go b/cloudstack/PoolService_mock.go index a01e7b0e..261f24ab 100644 --- a/cloudstack/PoolService_mock.go +++ b/cloudstack/PoolService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/PoolService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/PoolService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/PoolService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockPoolServiceIface is a mock of PoolServiceIface interface. type MockPoolServiceIface struct { ctrl *gomock.Controller recorder *MockPoolServiceIfaceMockRecorder + isgomock struct{} } // MockPoolServiceIfaceMockRecorder is the mock recorder for MockPoolServiceIface. @@ -62,7 +68,7 @@ func (m *MockPoolServiceIface) CreateStoragePool(p *CreateStoragePoolParams) (*C } // CreateStoragePool indicates an expected call of CreateStoragePool. -func (mr *MockPoolServiceIfaceMockRecorder) CreateStoragePool(p interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) CreateStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateStoragePool", reflect.TypeOf((*MockPoolServiceIface)(nil).CreateStoragePool), p) } @@ -77,7 +83,7 @@ func (m *MockPoolServiceIface) DeleteStoragePool(p *DeleteStoragePoolParams) (*D } // DeleteStoragePool indicates an expected call of DeleteStoragePool. -func (mr *MockPoolServiceIfaceMockRecorder) DeleteStoragePool(p interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) DeleteStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteStoragePool", reflect.TypeOf((*MockPoolServiceIface)(nil).DeleteStoragePool), p) } @@ -92,7 +98,7 @@ func (m *MockPoolServiceIface) FindStoragePoolsForMigration(p *FindStoragePoolsF } // FindStoragePoolsForMigration indicates an expected call of FindStoragePoolsForMigration. -func (mr *MockPoolServiceIfaceMockRecorder) FindStoragePoolsForMigration(p interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) FindStoragePoolsForMigration(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindStoragePoolsForMigration", reflect.TypeOf((*MockPoolServiceIface)(nil).FindStoragePoolsForMigration), p) } @@ -100,7 +106,7 @@ func (mr *MockPoolServiceIfaceMockRecorder) FindStoragePoolsForMigration(p inter // GetStoragePoolByID mocks base method. func (m *MockPoolServiceIface) GetStoragePoolByID(id string, opts ...OptionFunc) (*StoragePool, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -112,16 +118,16 @@ func (m *MockPoolServiceIface) GetStoragePoolByID(id string, opts ...OptionFunc) } // GetStoragePoolByID indicates an expected call of GetStoragePoolByID. -func (mr *MockPoolServiceIfaceMockRecorder) GetStoragePoolByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) GetStoragePoolByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolByID", reflect.TypeOf((*MockPoolServiceIface)(nil).GetStoragePoolByID), varargs...) } // GetStoragePoolByName mocks base method. func (m *MockPoolServiceIface) GetStoragePoolByName(name string, opts ...OptionFunc) (*StoragePool, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -133,16 +139,16 @@ func (m *MockPoolServiceIface) GetStoragePoolByName(name string, opts ...OptionF } // GetStoragePoolByName indicates an expected call of GetStoragePoolByName. -func (mr *MockPoolServiceIfaceMockRecorder) GetStoragePoolByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) GetStoragePoolByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolByName", reflect.TypeOf((*MockPoolServiceIface)(nil).GetStoragePoolByName), varargs...) } // GetStoragePoolID mocks base method. func (m *MockPoolServiceIface) GetStoragePoolID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -154,12 +160,27 @@ func (m *MockPoolServiceIface) GetStoragePoolID(name string, opts ...OptionFunc) } // GetStoragePoolID indicates an expected call of GetStoragePoolID. -func (mr *MockPoolServiceIfaceMockRecorder) GetStoragePoolID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) GetStoragePoolID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolID", reflect.TypeOf((*MockPoolServiceIface)(nil).GetStoragePoolID), varargs...) } +// ListElastistorPool mocks base method. +func (m *MockPoolServiceIface) ListElastistorPool(p *ListElastistorPoolParams) (*ListElastistorPoolResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListElastistorPool", p) + ret0, _ := ret[0].(*ListElastistorPoolResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListElastistorPool indicates an expected call of ListElastistorPool. +func (mr *MockPoolServiceIfaceMockRecorder) ListElastistorPool(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListElastistorPool", reflect.TypeOf((*MockPoolServiceIface)(nil).ListElastistorPool), p) +} + // ListStoragePools mocks base method. func (m *MockPoolServiceIface) ListStoragePools(p *ListStoragePoolsParams) (*ListStoragePoolsResponse, error) { m.ctrl.T.Helper() @@ -170,7 +191,7 @@ func (m *MockPoolServiceIface) ListStoragePools(p *ListStoragePoolsParams) (*Lis } // ListStoragePools indicates an expected call of ListStoragePools. -func (mr *MockPoolServiceIfaceMockRecorder) ListStoragePools(p interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) ListStoragePools(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStoragePools", reflect.TypeOf((*MockPoolServiceIface)(nil).ListStoragePools), p) } @@ -184,7 +205,7 @@ func (m *MockPoolServiceIface) NewCreateStoragePoolParams(name, url, zoneid stri } // NewCreateStoragePoolParams indicates an expected call of NewCreateStoragePoolParams. -func (mr *MockPoolServiceIfaceMockRecorder) NewCreateStoragePoolParams(name, url, zoneid interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) NewCreateStoragePoolParams(name, url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateStoragePoolParams", reflect.TypeOf((*MockPoolServiceIface)(nil).NewCreateStoragePoolParams), name, url, zoneid) } @@ -198,7 +219,7 @@ func (m *MockPoolServiceIface) NewDeleteStoragePoolParams(id string) *DeleteStor } // NewDeleteStoragePoolParams indicates an expected call of NewDeleteStoragePoolParams. -func (mr *MockPoolServiceIfaceMockRecorder) NewDeleteStoragePoolParams(id interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) NewDeleteStoragePoolParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteStoragePoolParams", reflect.TypeOf((*MockPoolServiceIface)(nil).NewDeleteStoragePoolParams), id) } @@ -212,11 +233,25 @@ func (m *MockPoolServiceIface) NewFindStoragePoolsForMigrationParams(id string) } // NewFindStoragePoolsForMigrationParams indicates an expected call of NewFindStoragePoolsForMigrationParams. -func (mr *MockPoolServiceIfaceMockRecorder) NewFindStoragePoolsForMigrationParams(id interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) NewFindStoragePoolsForMigrationParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewFindStoragePoolsForMigrationParams", reflect.TypeOf((*MockPoolServiceIface)(nil).NewFindStoragePoolsForMigrationParams), id) } +// NewListElastistorPoolParams mocks base method. +func (m *MockPoolServiceIface) NewListElastistorPoolParams() *ListElastistorPoolParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListElastistorPoolParams") + ret0, _ := ret[0].(*ListElastistorPoolParams) + return ret0 +} + +// NewListElastistorPoolParams indicates an expected call of NewListElastistorPoolParams. +func (mr *MockPoolServiceIfaceMockRecorder) NewListElastistorPoolParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListElastistorPoolParams", reflect.TypeOf((*MockPoolServiceIface)(nil).NewListElastistorPoolParams)) +} + // NewListStoragePoolsParams mocks base method. func (m *MockPoolServiceIface) NewListStoragePoolsParams() *ListStoragePoolsParams { m.ctrl.T.Helper() @@ -240,7 +275,7 @@ func (m *MockPoolServiceIface) NewSyncStoragePoolParams(id string) *SyncStorageP } // NewSyncStoragePoolParams indicates an expected call of NewSyncStoragePoolParams. -func (mr *MockPoolServiceIfaceMockRecorder) NewSyncStoragePoolParams(id interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) NewSyncStoragePoolParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewSyncStoragePoolParams", reflect.TypeOf((*MockPoolServiceIface)(nil).NewSyncStoragePoolParams), id) } @@ -254,7 +289,7 @@ func (m *MockPoolServiceIface) NewUpdateStoragePoolParams(id string) *UpdateStor } // NewUpdateStoragePoolParams indicates an expected call of NewUpdateStoragePoolParams. -func (mr *MockPoolServiceIfaceMockRecorder) NewUpdateStoragePoolParams(id interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) NewUpdateStoragePoolParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateStoragePoolParams", reflect.TypeOf((*MockPoolServiceIface)(nil).NewUpdateStoragePoolParams), id) } @@ -269,7 +304,7 @@ func (m *MockPoolServiceIface) SyncStoragePool(p *SyncStoragePoolParams) (*SyncS } // SyncStoragePool indicates an expected call of SyncStoragePool. -func (mr *MockPoolServiceIfaceMockRecorder) SyncStoragePool(p interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) SyncStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncStoragePool", reflect.TypeOf((*MockPoolServiceIface)(nil).SyncStoragePool), p) } @@ -284,7 +319,7 @@ func (m *MockPoolServiceIface) UpdateStoragePool(p *UpdateStoragePoolParams) (*U } // UpdateStoragePool indicates an expected call of UpdateStoragePool. -func (mr *MockPoolServiceIfaceMockRecorder) UpdateStoragePool(p interface{}) *gomock.Call { +func (mr *MockPoolServiceIfaceMockRecorder) UpdateStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateStoragePool", reflect.TypeOf((*MockPoolServiceIface)(nil).UpdateStoragePool), p) } diff --git a/cloudstack/PortableIPService_mock.go b/cloudstack/PortableIPService_mock.go index 6ece7c66..84ea26ce 100644 --- a/cloudstack/PortableIPService_mock.go +++ b/cloudstack/PortableIPService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/PortableIPService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/PortableIPService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/PortableIPService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockPortableIPServiceIface is a mock of PortableIPServiceIface interface. type MockPortableIPServiceIface struct { ctrl *gomock.Controller recorder *MockPortableIPServiceIfaceMockRecorder + isgomock struct{} } // MockPortableIPServiceIfaceMockRecorder is the mock recorder for MockPortableIPServiceIface. @@ -62,7 +68,7 @@ func (m *MockPortableIPServiceIface) CreatePortableIpRange(p *CreatePortableIpRa } // CreatePortableIpRange indicates an expected call of CreatePortableIpRange. -func (mr *MockPortableIPServiceIfaceMockRecorder) CreatePortableIpRange(p interface{}) *gomock.Call { +func (mr *MockPortableIPServiceIfaceMockRecorder) CreatePortableIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePortableIpRange", reflect.TypeOf((*MockPortableIPServiceIface)(nil).CreatePortableIpRange), p) } @@ -77,7 +83,7 @@ func (m *MockPortableIPServiceIface) DeletePortableIpRange(p *DeletePortableIpRa } // DeletePortableIpRange indicates an expected call of DeletePortableIpRange. -func (mr *MockPortableIPServiceIfaceMockRecorder) DeletePortableIpRange(p interface{}) *gomock.Call { +func (mr *MockPortableIPServiceIfaceMockRecorder) DeletePortableIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePortableIpRange", reflect.TypeOf((*MockPortableIPServiceIface)(nil).DeletePortableIpRange), p) } @@ -85,7 +91,7 @@ func (mr *MockPortableIPServiceIfaceMockRecorder) DeletePortableIpRange(p interf // GetPortableIpRangeByID mocks base method. func (m *MockPortableIPServiceIface) GetPortableIpRangeByID(id string, opts ...OptionFunc) (*PortableIpRange, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,9 +103,9 @@ func (m *MockPortableIPServiceIface) GetPortableIpRangeByID(id string, opts ...O } // GetPortableIpRangeByID indicates an expected call of GetPortableIpRangeByID. -func (mr *MockPortableIPServiceIfaceMockRecorder) GetPortableIpRangeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockPortableIPServiceIfaceMockRecorder) GetPortableIpRangeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPortableIpRangeByID", reflect.TypeOf((*MockPortableIPServiceIface)(nil).GetPortableIpRangeByID), varargs...) } @@ -113,7 +119,7 @@ func (m *MockPortableIPServiceIface) ListPortableIpRanges(p *ListPortableIpRange } // ListPortableIpRanges indicates an expected call of ListPortableIpRanges. -func (mr *MockPortableIPServiceIfaceMockRecorder) ListPortableIpRanges(p interface{}) *gomock.Call { +func (mr *MockPortableIPServiceIfaceMockRecorder) ListPortableIpRanges(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPortableIpRanges", reflect.TypeOf((*MockPortableIPServiceIface)(nil).ListPortableIpRanges), p) } @@ -127,7 +133,7 @@ func (m *MockPortableIPServiceIface) NewCreatePortableIpRangeParams(endip, gatew } // NewCreatePortableIpRangeParams indicates an expected call of NewCreatePortableIpRangeParams. -func (mr *MockPortableIPServiceIfaceMockRecorder) NewCreatePortableIpRangeParams(endip, gateway, netmask, regionid, startip interface{}) *gomock.Call { +func (mr *MockPortableIPServiceIfaceMockRecorder) NewCreatePortableIpRangeParams(endip, gateway, netmask, regionid, startip any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreatePortableIpRangeParams", reflect.TypeOf((*MockPortableIPServiceIface)(nil).NewCreatePortableIpRangeParams), endip, gateway, netmask, regionid, startip) } @@ -141,7 +147,7 @@ func (m *MockPortableIPServiceIface) NewDeletePortableIpRangeParams(id string) * } // NewDeletePortableIpRangeParams indicates an expected call of NewDeletePortableIpRangeParams. -func (mr *MockPortableIPServiceIfaceMockRecorder) NewDeletePortableIpRangeParams(id interface{}) *gomock.Call { +func (mr *MockPortableIPServiceIfaceMockRecorder) NewDeletePortableIpRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeletePortableIpRangeParams", reflect.TypeOf((*MockPortableIPServiceIface)(nil).NewDeletePortableIpRangeParams), id) } diff --git a/cloudstack/ProjectService_mock.go b/cloudstack/ProjectService_mock.go index 6a5b9746..aa23de04 100644 --- a/cloudstack/ProjectService_mock.go +++ b/cloudstack/ProjectService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ProjectService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ProjectService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ProjectService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockProjectServiceIface is a mock of ProjectServiceIface interface. type MockProjectServiceIface struct { ctrl *gomock.Controller recorder *MockProjectServiceIfaceMockRecorder + isgomock struct{} } // MockProjectServiceIfaceMockRecorder is the mock recorder for MockProjectServiceIface. @@ -62,7 +68,7 @@ func (m *MockProjectServiceIface) ActivateProject(p *ActivateProjectParams) (*Ac } // ActivateProject indicates an expected call of ActivateProject. -func (mr *MockProjectServiceIfaceMockRecorder) ActivateProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) ActivateProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ActivateProject", reflect.TypeOf((*MockProjectServiceIface)(nil).ActivateProject), p) } @@ -77,7 +83,7 @@ func (m *MockProjectServiceIface) AddAccountToProject(p *AddAccountToProjectPara } // AddAccountToProject indicates an expected call of AddAccountToProject. -func (mr *MockProjectServiceIfaceMockRecorder) AddAccountToProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) AddAccountToProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddAccountToProject", reflect.TypeOf((*MockProjectServiceIface)(nil).AddAccountToProject), p) } @@ -92,7 +98,7 @@ func (m *MockProjectServiceIface) AddUserToProject(p *AddUserToProjectParams) (* } // AddUserToProject indicates an expected call of AddUserToProject. -func (mr *MockProjectServiceIfaceMockRecorder) AddUserToProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) AddUserToProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddUserToProject", reflect.TypeOf((*MockProjectServiceIface)(nil).AddUserToProject), p) } @@ -107,7 +113,7 @@ func (m *MockProjectServiceIface) CreateProject(p *CreateProjectParams) (*Create } // CreateProject indicates an expected call of CreateProject. -func (mr *MockProjectServiceIfaceMockRecorder) CreateProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) CreateProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateProject", reflect.TypeOf((*MockProjectServiceIface)(nil).CreateProject), p) } @@ -122,7 +128,7 @@ func (m *MockProjectServiceIface) CreateProjectRole(p *CreateProjectRoleParams) } // CreateProjectRole indicates an expected call of CreateProjectRole. -func (mr *MockProjectServiceIfaceMockRecorder) CreateProjectRole(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) CreateProjectRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateProjectRole", reflect.TypeOf((*MockProjectServiceIface)(nil).CreateProjectRole), p) } @@ -137,7 +143,7 @@ func (m *MockProjectServiceIface) CreateProjectRolePermission(p *CreateProjectRo } // CreateProjectRolePermission indicates an expected call of CreateProjectRolePermission. -func (mr *MockProjectServiceIfaceMockRecorder) CreateProjectRolePermission(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) CreateProjectRolePermission(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateProjectRolePermission", reflect.TypeOf((*MockProjectServiceIface)(nil).CreateProjectRolePermission), p) } @@ -152,7 +158,7 @@ func (m *MockProjectServiceIface) DeleteAccountFromProject(p *DeleteAccountFromP } // DeleteAccountFromProject indicates an expected call of DeleteAccountFromProject. -func (mr *MockProjectServiceIfaceMockRecorder) DeleteAccountFromProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) DeleteAccountFromProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAccountFromProject", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteAccountFromProject), p) } @@ -167,7 +173,7 @@ func (m *MockProjectServiceIface) DeleteProject(p *DeleteProjectParams) (*Delete } // DeleteProject indicates an expected call of DeleteProject. -func (mr *MockProjectServiceIfaceMockRecorder) DeleteProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) DeleteProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProject", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteProject), p) } @@ -182,7 +188,7 @@ func (m *MockProjectServiceIface) DeleteProjectInvitation(p *DeleteProjectInvita } // DeleteProjectInvitation indicates an expected call of DeleteProjectInvitation. -func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectInvitation(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectInvitation(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProjectInvitation", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteProjectInvitation), p) } @@ -197,7 +203,7 @@ func (m *MockProjectServiceIface) DeleteProjectRole(p *DeleteProjectRoleParams) } // DeleteProjectRole indicates an expected call of DeleteProjectRole. -func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectRole(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProjectRole", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteProjectRole), p) } @@ -212,7 +218,7 @@ func (m *MockProjectServiceIface) DeleteProjectRolePermission(p *DeleteProjectRo } // DeleteProjectRolePermission indicates an expected call of DeleteProjectRolePermission. -func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectRolePermission(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) DeleteProjectRolePermission(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProjectRolePermission", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteProjectRolePermission), p) } @@ -227,7 +233,7 @@ func (m *MockProjectServiceIface) DeleteUserFromProject(p *DeleteUserFromProject } // DeleteUserFromProject indicates an expected call of DeleteUserFromProject. -func (mr *MockProjectServiceIfaceMockRecorder) DeleteUserFromProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) DeleteUserFromProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUserFromProject", reflect.TypeOf((*MockProjectServiceIface)(nil).DeleteUserFromProject), p) } @@ -235,7 +241,7 @@ func (mr *MockProjectServiceIfaceMockRecorder) DeleteUserFromProject(p interface // GetProjectByID mocks base method. func (m *MockProjectServiceIface) GetProjectByID(id string, opts ...OptionFunc) (*Project, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -247,16 +253,16 @@ func (m *MockProjectServiceIface) GetProjectByID(id string, opts ...OptionFunc) } // GetProjectByID indicates an expected call of GetProjectByID. -func (mr *MockProjectServiceIfaceMockRecorder) GetProjectByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) GetProjectByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectByID", reflect.TypeOf((*MockProjectServiceIface)(nil).GetProjectByID), varargs...) } // GetProjectByName mocks base method. func (m *MockProjectServiceIface) GetProjectByName(name string, opts ...OptionFunc) (*Project, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -268,16 +274,16 @@ func (m *MockProjectServiceIface) GetProjectByName(name string, opts ...OptionFu } // GetProjectByName indicates an expected call of GetProjectByName. -func (mr *MockProjectServiceIfaceMockRecorder) GetProjectByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) GetProjectByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectByName", reflect.TypeOf((*MockProjectServiceIface)(nil).GetProjectByName), varargs...) } // GetProjectID mocks base method. func (m *MockProjectServiceIface) GetProjectID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -289,16 +295,16 @@ func (m *MockProjectServiceIface) GetProjectID(name string, opts ...OptionFunc) } // GetProjectID indicates an expected call of GetProjectID. -func (mr *MockProjectServiceIfaceMockRecorder) GetProjectID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) GetProjectID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectID", reflect.TypeOf((*MockProjectServiceIface)(nil).GetProjectID), varargs...) } // GetProjectInvitationByID mocks base method. func (m *MockProjectServiceIface) GetProjectInvitationByID(id string, opts ...OptionFunc) (*ProjectInvitation, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -310,9 +316,9 @@ func (m *MockProjectServiceIface) GetProjectInvitationByID(id string, opts ...Op } // GetProjectInvitationByID indicates an expected call of GetProjectInvitationByID. -func (mr *MockProjectServiceIfaceMockRecorder) GetProjectInvitationByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) GetProjectInvitationByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectInvitationByID", reflect.TypeOf((*MockProjectServiceIface)(nil).GetProjectInvitationByID), varargs...) } @@ -326,7 +332,7 @@ func (m *MockProjectServiceIface) ListProjectInvitations(p *ListProjectInvitatio } // ListProjectInvitations indicates an expected call of ListProjectInvitations. -func (mr *MockProjectServiceIfaceMockRecorder) ListProjectInvitations(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) ListProjectInvitations(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectInvitations", reflect.TypeOf((*MockProjectServiceIface)(nil).ListProjectInvitations), p) } @@ -341,7 +347,7 @@ func (m *MockProjectServiceIface) ListProjectRolePermissions(p *ListProjectRoleP } // ListProjectRolePermissions indicates an expected call of ListProjectRolePermissions. -func (mr *MockProjectServiceIfaceMockRecorder) ListProjectRolePermissions(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) ListProjectRolePermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectRolePermissions", reflect.TypeOf((*MockProjectServiceIface)(nil).ListProjectRolePermissions), p) } @@ -356,7 +362,7 @@ func (m *MockProjectServiceIface) ListProjects(p *ListProjectsParams) (*ListProj } // ListProjects indicates an expected call of ListProjects. -func (mr *MockProjectServiceIfaceMockRecorder) ListProjects(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) ListProjects(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjects", reflect.TypeOf((*MockProjectServiceIface)(nil).ListProjects), p) } @@ -370,7 +376,7 @@ func (m *MockProjectServiceIface) NewActivateProjectParams(id string) *ActivateP } // NewActivateProjectParams indicates an expected call of NewActivateProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewActivateProjectParams(id interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewActivateProjectParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewActivateProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewActivateProjectParams), id) } @@ -384,7 +390,7 @@ func (m *MockProjectServiceIface) NewAddAccountToProjectParams(projectid string) } // NewAddAccountToProjectParams indicates an expected call of NewAddAccountToProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewAddAccountToProjectParams(projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewAddAccountToProjectParams(projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddAccountToProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewAddAccountToProjectParams), projectid) } @@ -398,7 +404,7 @@ func (m *MockProjectServiceIface) NewAddUserToProjectParams(projectid, username } // NewAddUserToProjectParams indicates an expected call of NewAddUserToProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewAddUserToProjectParams(projectid, username interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewAddUserToProjectParams(projectid, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddUserToProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewAddUserToProjectParams), projectid, username) } @@ -412,7 +418,7 @@ func (m *MockProjectServiceIface) NewCreateProjectParams(displaytext, name strin } // NewCreateProjectParams indicates an expected call of NewCreateProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectParams(displaytext, name interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectParams(displaytext, name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewCreateProjectParams), displaytext, name) } @@ -426,7 +432,7 @@ func (m *MockProjectServiceIface) NewCreateProjectRoleParams(name, projectid str } // NewCreateProjectRoleParams indicates an expected call of NewCreateProjectRoleParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectRoleParams(name, projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectRoleParams(name, projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateProjectRoleParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewCreateProjectRoleParams), name, projectid) } @@ -440,7 +446,7 @@ func (m *MockProjectServiceIface) NewCreateProjectRolePermissionParams(permissio } // NewCreateProjectRolePermissionParams indicates an expected call of NewCreateProjectRolePermissionParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectRolePermissionParams(permission, projectid, projectroleid, rule interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewCreateProjectRolePermissionParams(permission, projectid, projectroleid, rule any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateProjectRolePermissionParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewCreateProjectRolePermissionParams), permission, projectid, projectroleid, rule) } @@ -454,7 +460,7 @@ func (m *MockProjectServiceIface) NewDeleteAccountFromProjectParams(account, pro } // NewDeleteAccountFromProjectParams indicates an expected call of NewDeleteAccountFromProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteAccountFromProjectParams(account, projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteAccountFromProjectParams(account, projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteAccountFromProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteAccountFromProjectParams), account, projectid) } @@ -468,7 +474,7 @@ func (m *MockProjectServiceIface) NewDeleteProjectInvitationParams(id string) *D } // NewDeleteProjectInvitationParams indicates an expected call of NewDeleteProjectInvitationParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectInvitationParams(id interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectInvitationParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteProjectInvitationParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteProjectInvitationParams), id) } @@ -482,7 +488,7 @@ func (m *MockProjectServiceIface) NewDeleteProjectParams(id string) *DeleteProje } // NewDeleteProjectParams indicates an expected call of NewDeleteProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectParams(id interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteProjectParams), id) } @@ -496,7 +502,7 @@ func (m *MockProjectServiceIface) NewDeleteProjectRoleParams(id, projectid strin } // NewDeleteProjectRoleParams indicates an expected call of NewDeleteProjectRoleParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectRoleParams(id, projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectRoleParams(id, projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteProjectRoleParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteProjectRoleParams), id, projectid) } @@ -510,7 +516,7 @@ func (m *MockProjectServiceIface) NewDeleteProjectRolePermissionParams(id, proje } // NewDeleteProjectRolePermissionParams indicates an expected call of NewDeleteProjectRolePermissionParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectRolePermissionParams(id, projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteProjectRolePermissionParams(id, projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteProjectRolePermissionParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteProjectRolePermissionParams), id, projectid) } @@ -524,7 +530,7 @@ func (m *MockProjectServiceIface) NewDeleteUserFromProjectParams(projectid, user } // NewDeleteUserFromProjectParams indicates an expected call of NewDeleteUserFromProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteUserFromProjectParams(projectid, userid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewDeleteUserFromProjectParams(projectid, userid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteUserFromProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewDeleteUserFromProjectParams), projectid, userid) } @@ -552,7 +558,7 @@ func (m *MockProjectServiceIface) NewListProjectRolePermissionsParams(projectid } // NewListProjectRolePermissionsParams indicates an expected call of NewListProjectRolePermissionsParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewListProjectRolePermissionsParams(projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewListProjectRolePermissionsParams(projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListProjectRolePermissionsParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewListProjectRolePermissionsParams), projectid) } @@ -580,7 +586,7 @@ func (m *MockProjectServiceIface) NewSuspendProjectParams(id string) *SuspendPro } // NewSuspendProjectParams indicates an expected call of NewSuspendProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewSuspendProjectParams(id interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewSuspendProjectParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewSuspendProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewSuspendProjectParams), id) } @@ -594,7 +600,7 @@ func (m *MockProjectServiceIface) NewUpdateProjectInvitationParams(projectid str } // NewUpdateProjectInvitationParams indicates an expected call of NewUpdateProjectInvitationParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectInvitationParams(projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectInvitationParams(projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateProjectInvitationParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewUpdateProjectInvitationParams), projectid) } @@ -608,7 +614,7 @@ func (m *MockProjectServiceIface) NewUpdateProjectParams(id string) *UpdateProje } // NewUpdateProjectParams indicates an expected call of NewUpdateProjectParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectParams(id interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateProjectParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewUpdateProjectParams), id) } @@ -622,7 +628,7 @@ func (m *MockProjectServiceIface) NewUpdateProjectRoleParams(id, projectid strin } // NewUpdateProjectRoleParams indicates an expected call of NewUpdateProjectRoleParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectRoleParams(id, projectid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectRoleParams(id, projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateProjectRoleParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewUpdateProjectRoleParams), id, projectid) } @@ -636,7 +642,7 @@ func (m *MockProjectServiceIface) NewUpdateProjectRolePermissionParams(projectid } // NewUpdateProjectRolePermissionParams indicates an expected call of NewUpdateProjectRolePermissionParams. -func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectRolePermissionParams(projectid, projectroleid interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) NewUpdateProjectRolePermissionParams(projectid, projectroleid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateProjectRolePermissionParams", reflect.TypeOf((*MockProjectServiceIface)(nil).NewUpdateProjectRolePermissionParams), projectid, projectroleid) } @@ -651,7 +657,7 @@ func (m *MockProjectServiceIface) SuspendProject(p *SuspendProjectParams) (*Susp } // SuspendProject indicates an expected call of SuspendProject. -func (mr *MockProjectServiceIfaceMockRecorder) SuspendProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) SuspendProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SuspendProject", reflect.TypeOf((*MockProjectServiceIface)(nil).SuspendProject), p) } @@ -666,7 +672,7 @@ func (m *MockProjectServiceIface) UpdateProject(p *UpdateProjectParams) (*Update } // UpdateProject indicates an expected call of UpdateProject. -func (mr *MockProjectServiceIfaceMockRecorder) UpdateProject(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) UpdateProject(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProject", reflect.TypeOf((*MockProjectServiceIface)(nil).UpdateProject), p) } @@ -681,7 +687,7 @@ func (m *MockProjectServiceIface) UpdateProjectInvitation(p *UpdateProjectInvita } // UpdateProjectInvitation indicates an expected call of UpdateProjectInvitation. -func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectInvitation(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectInvitation(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProjectInvitation", reflect.TypeOf((*MockProjectServiceIface)(nil).UpdateProjectInvitation), p) } @@ -696,7 +702,7 @@ func (m *MockProjectServiceIface) UpdateProjectRole(p *UpdateProjectRoleParams) } // UpdateProjectRole indicates an expected call of UpdateProjectRole. -func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectRole(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProjectRole", reflect.TypeOf((*MockProjectServiceIface)(nil).UpdateProjectRole), p) } @@ -711,7 +717,7 @@ func (m *MockProjectServiceIface) UpdateProjectRolePermission(p *UpdateProjectRo } // UpdateProjectRolePermission indicates an expected call of UpdateProjectRolePermission. -func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectRolePermission(p interface{}) *gomock.Call { +func (mr *MockProjectServiceIfaceMockRecorder) UpdateProjectRolePermission(p any) *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/QuotaService_mock.go b/cloudstack/QuotaService_mock.go index 456eeac1..dc1c06f7 100644 --- a/cloudstack/QuotaService_mock.go +++ b/cloudstack/QuotaService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/QuotaService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/QuotaService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/QuotaService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockQuotaServiceIface is a mock of QuotaServiceIface interface. type MockQuotaServiceIface struct { ctrl *gomock.Controller recorder *MockQuotaServiceIfaceMockRecorder + isgomock struct{} } // MockQuotaServiceIfaceMockRecorder is the mock recorder for MockQuotaServiceIface. @@ -76,7 +82,7 @@ func (m *MockQuotaServiceIface) QuotaIsEnabled(p *QuotaIsEnabledParams) (*QuotaI } // QuotaIsEnabled indicates an expected call of QuotaIsEnabled. -func (mr *MockQuotaServiceIfaceMockRecorder) QuotaIsEnabled(p interface{}) *gomock.Call { +func (mr *MockQuotaServiceIfaceMockRecorder) QuotaIsEnabled(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuotaIsEnabled", reflect.TypeOf((*MockQuotaServiceIface)(nil).QuotaIsEnabled), p) } diff --git a/cloudstack/RegionService_mock.go b/cloudstack/RegionService_mock.go index f1adce1f..b3cdeea4 100644 --- a/cloudstack/RegionService_mock.go +++ b/cloudstack/RegionService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/RegionService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/RegionService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/RegionService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockRegionServiceIface is a mock of RegionServiceIface interface. type MockRegionServiceIface struct { ctrl *gomock.Controller recorder *MockRegionServiceIfaceMockRecorder + isgomock struct{} } // MockRegionServiceIfaceMockRecorder is the mock recorder for MockRegionServiceIface. @@ -62,7 +68,7 @@ func (m *MockRegionServiceIface) AddRegion(p *AddRegionParams) (*AddRegionRespon } // AddRegion indicates an expected call of AddRegion. -func (mr *MockRegionServiceIfaceMockRecorder) AddRegion(p interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) AddRegion(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRegion", reflect.TypeOf((*MockRegionServiceIface)(nil).AddRegion), p) } @@ -77,7 +83,7 @@ func (m *MockRegionServiceIface) ListRegions(p *ListRegionsParams) (*ListRegions } // ListRegions indicates an expected call of ListRegions. -func (mr *MockRegionServiceIfaceMockRecorder) ListRegions(p interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) ListRegions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRegions", reflect.TypeOf((*MockRegionServiceIface)(nil).ListRegions), p) } @@ -91,7 +97,7 @@ func (m *MockRegionServiceIface) NewAddRegionParams(endpoint string, id int, nam } // NewAddRegionParams indicates an expected call of NewAddRegionParams. -func (mr *MockRegionServiceIfaceMockRecorder) NewAddRegionParams(endpoint, id, name interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) NewAddRegionParams(endpoint, id, name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddRegionParams", reflect.TypeOf((*MockRegionServiceIface)(nil).NewAddRegionParams), endpoint, id, name) } @@ -119,7 +125,7 @@ func (m *MockRegionServiceIface) NewRemoveRegionParams(id int) *RemoveRegionPara } // NewRemoveRegionParams indicates an expected call of NewRemoveRegionParams. -func (mr *MockRegionServiceIfaceMockRecorder) NewRemoveRegionParams(id interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) NewRemoveRegionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveRegionParams", reflect.TypeOf((*MockRegionServiceIface)(nil).NewRemoveRegionParams), id) } @@ -133,7 +139,7 @@ func (m *MockRegionServiceIface) NewUpdateRegionParams(id int) *UpdateRegionPara } // NewUpdateRegionParams indicates an expected call of NewUpdateRegionParams. -func (mr *MockRegionServiceIfaceMockRecorder) NewUpdateRegionParams(id interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) NewUpdateRegionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateRegionParams", reflect.TypeOf((*MockRegionServiceIface)(nil).NewUpdateRegionParams), id) } @@ -148,7 +154,7 @@ func (m *MockRegionServiceIface) RemoveRegion(p *RemoveRegionParams) (*RemoveReg } // RemoveRegion indicates an expected call of RemoveRegion. -func (mr *MockRegionServiceIfaceMockRecorder) RemoveRegion(p interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) RemoveRegion(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveRegion", reflect.TypeOf((*MockRegionServiceIface)(nil).RemoveRegion), p) } @@ -163,7 +169,7 @@ func (m *MockRegionServiceIface) UpdateRegion(p *UpdateRegionParams) (*UpdateReg } // UpdateRegion indicates an expected call of UpdateRegion. -func (mr *MockRegionServiceIfaceMockRecorder) UpdateRegion(p interface{}) *gomock.Call { +func (mr *MockRegionServiceIfaceMockRecorder) UpdateRegion(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRegion", reflect.TypeOf((*MockRegionServiceIface)(nil).UpdateRegion), p) } diff --git a/cloudstack/RegistrationService_mock.go b/cloudstack/RegistrationService_mock.go index 11097cfc..e06d5b75 100644 --- a/cloudstack/RegistrationService_mock.go +++ b/cloudstack/RegistrationService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/RegistrationService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/RegistrationService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/RegistrationService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockRegistrationServiceIface is a mock of RegistrationServiceIface interface. type MockRegistrationServiceIface struct { ctrl *gomock.Controller recorder *MockRegistrationServiceIfaceMockRecorder + isgomock struct{} } // MockRegistrationServiceIfaceMockRecorder is the mock recorder for MockRegistrationServiceIface. @@ -61,7 +67,7 @@ func (m *MockRegistrationServiceIface) NewRegisterOauthProviderParams(clientid, } // NewRegisterOauthProviderParams indicates an expected call of NewRegisterOauthProviderParams. -func (mr *MockRegistrationServiceIfaceMockRecorder) NewRegisterOauthProviderParams(clientid, description, provider, redirecturi, secretkey interface{}) *gomock.Call { +func (mr *MockRegistrationServiceIfaceMockRecorder) NewRegisterOauthProviderParams(clientid, description, provider, redirecturi, secretkey any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterOauthProviderParams", reflect.TypeOf((*MockRegistrationServiceIface)(nil).NewRegisterOauthProviderParams), clientid, description, provider, redirecturi, secretkey) } @@ -76,7 +82,7 @@ func (m *MockRegistrationServiceIface) RegisterOauthProvider(p *RegisterOauthPro } // RegisterOauthProvider indicates an expected call of RegisterOauthProvider. -func (mr *MockRegistrationServiceIfaceMockRecorder) RegisterOauthProvider(p interface{}) *gomock.Call { +func (mr *MockRegistrationServiceIfaceMockRecorder) RegisterOauthProvider(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterOauthProvider", reflect.TypeOf((*MockRegistrationServiceIface)(nil).RegisterOauthProvider), p) } diff --git a/cloudstack/ResourceIconService.go b/cloudstack/ResourceIconService.go new file mode 100644 index 00000000..9ecd4eae --- /dev/null +++ b/cloudstack/ResourceIconService.go @@ -0,0 +1,400 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" + "strconv" + "strings" +) + +type ResourceIconServiceIface interface { + DeleteResourceIcon(p *DeleteResourceIconParams) (*DeleteResourceIconResponse, error) + NewDeleteResourceIconParams(resourceids []string, resourcetype string) *DeleteResourceIconParams + ListResourceIcon(p *ListResourceIconParams) (*ListResourceIconResponse, error) + NewListResourceIconParams(resourceids []string, resourcetype string) *ListResourceIconParams + UploadResourceIcon(p *UploadResourceIconParams) (*UploadResourceIconResponse, error) + NewUploadResourceIconParams(base64image string, resourceids []string, resourcetype string) *UploadResourceIconParams +} + +type DeleteResourceIconParams struct { + p map[string]interface{} +} + +func (p *DeleteResourceIconParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["resourceids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("resourceids", vv) + } + if v, found := p.p["resourcetype"]; found { + u.Set("resourcetype", v.(string)) + } + return u +} + +func (p *DeleteResourceIconParams) SetResourceids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourceids"] = v +} + +func (p *DeleteResourceIconParams) ResetResourceids() { + if p.p != nil && p.p["resourceids"] != nil { + delete(p.p, "resourceids") + } +} + +func (p *DeleteResourceIconParams) GetResourceids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourceids"].([]string) + return value, ok +} + +func (p *DeleteResourceIconParams) SetResourcetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourcetype"] = v +} + +func (p *DeleteResourceIconParams) ResetResourcetype() { + if p.p != nil && p.p["resourcetype"] != nil { + delete(p.p, "resourcetype") + } +} + +func (p *DeleteResourceIconParams) GetResourcetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourcetype"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteResourceIconParams instance, +// as then you are sure you have configured all required params +func (s *ResourceIconService) NewDeleteResourceIconParams(resourceids []string, resourcetype string) *DeleteResourceIconParams { + p := &DeleteResourceIconParams{} + p.p = make(map[string]interface{}) + p.p["resourceids"] = resourceids + p.p["resourcetype"] = resourcetype + return p +} + +// deletes the resource icon from the specified resource(s) +func (s *ResourceIconService) DeleteResourceIcon(p *DeleteResourceIconParams) (*DeleteResourceIconResponse, error) { + resp, err := s.cs.newRequest("deleteResourceIcon", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteResourceIconResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type DeleteResourceIconResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DeleteResourceIconResponse) 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 DeleteResourceIconResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ListResourceIconParams struct { + p map[string]interface{} +} + +func (p *ListResourceIconParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["resourceids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("resourceids", vv) + } + if v, found := p.p["resourcetype"]; found { + u.Set("resourcetype", v.(string)) + } + return u +} + +func (p *ListResourceIconParams) SetResourceids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourceids"] = v +} + +func (p *ListResourceIconParams) ResetResourceids() { + if p.p != nil && p.p["resourceids"] != nil { + delete(p.p, "resourceids") + } +} + +func (p *ListResourceIconParams) GetResourceids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourceids"].([]string) + return value, ok +} + +func (p *ListResourceIconParams) SetResourcetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourcetype"] = v +} + +func (p *ListResourceIconParams) ResetResourcetype() { + if p.p != nil && p.p["resourcetype"] != nil { + delete(p.p, "resourcetype") + } +} + +func (p *ListResourceIconParams) GetResourcetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourcetype"].(string) + return value, ok +} + +// You should always use this function to get a new ListResourceIconParams instance, +// as then you are sure you have configured all required params +func (s *ResourceIconService) NewListResourceIconParams(resourceids []string, resourcetype string) *ListResourceIconParams { + p := &ListResourceIconParams{} + p.p = make(map[string]interface{}) + p.p["resourceids"] = resourceids + p.p["resourcetype"] = resourcetype + return p +} + +// Lists the resource icon for the specified resource(s) +func (s *ResourceIconService) ListResourceIcon(p *ListResourceIconParams) (*ListResourceIconResponse, error) { + resp, err := s.cs.newRequest("listResourceIcon", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListResourceIconResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListResourceIconResponse struct { + Count int `json:"count"` + ResourceIcon []*ResourceIcon `json:"resourceicon"` +} + +type ResourceIcon struct { + Base64image string `json:"base64image"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Resourceid string `json:"resourceid"` + Resourcetype string `json:"resourcetype"` +} + +type UploadResourceIconParams struct { + p map[string]interface{} +} + +func (p *UploadResourceIconParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["base64image"]; found { + u.Set("base64image", v.(string)) + } + if v, found := p.p["resourceids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("resourceids", vv) + } + if v, found := p.p["resourcetype"]; found { + u.Set("resourcetype", v.(string)) + } + return u +} + +func (p *UploadResourceIconParams) SetBase64image(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["base64image"] = v +} + +func (p *UploadResourceIconParams) ResetBase64image() { + if p.p != nil && p.p["base64image"] != nil { + delete(p.p, "base64image") + } +} + +func (p *UploadResourceIconParams) GetBase64image() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["base64image"].(string) + return value, ok +} + +func (p *UploadResourceIconParams) SetResourceids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourceids"] = v +} + +func (p *UploadResourceIconParams) ResetResourceids() { + if p.p != nil && p.p["resourceids"] != nil { + delete(p.p, "resourceids") + } +} + +func (p *UploadResourceIconParams) GetResourceids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourceids"].([]string) + return value, ok +} + +func (p *UploadResourceIconParams) SetResourcetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourcetype"] = v +} + +func (p *UploadResourceIconParams) ResetResourcetype() { + if p.p != nil && p.p["resourcetype"] != nil { + delete(p.p, "resourcetype") + } +} + +func (p *UploadResourceIconParams) GetResourcetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourcetype"].(string) + return value, ok +} + +// You should always use this function to get a new UploadResourceIconParams instance, +// as then you are sure you have configured all required params +func (s *ResourceIconService) NewUploadResourceIconParams(base64image string, resourceids []string, resourcetype string) *UploadResourceIconParams { + p := &UploadResourceIconParams{} + p.p = make(map[string]interface{}) + p.p["base64image"] = base64image + p.p["resourceids"] = resourceids + p.p["resourcetype"] = resourcetype + return p +} + +// Uploads an icon for the specified resource(s) +func (s *ResourceIconService) UploadResourceIcon(p *UploadResourceIconParams) (*UploadResourceIconResponse, error) { + resp, err := s.cs.newRequest("uploadResourceIcon", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UploadResourceIconResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type UploadResourceIconResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *UploadResourceIconResponse) 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 UploadResourceIconResponse + return json.Unmarshal(b, (*alias)(r)) +} diff --git a/cloudstack/ResourceIconService_mock.go b/cloudstack/ResourceIconService_mock.go new file mode 100644 index 00000000..c664d4f0 --- /dev/null +++ b/cloudstack/ResourceIconService_mock.go @@ -0,0 +1,146 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/ResourceIconService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ResourceIconService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ResourceIconService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockResourceIconServiceIface is a mock of ResourceIconServiceIface interface. +type MockResourceIconServiceIface struct { + ctrl *gomock.Controller + recorder *MockResourceIconServiceIfaceMockRecorder + isgomock struct{} +} + +// MockResourceIconServiceIfaceMockRecorder is the mock recorder for MockResourceIconServiceIface. +type MockResourceIconServiceIfaceMockRecorder struct { + mock *MockResourceIconServiceIface +} + +// NewMockResourceIconServiceIface creates a new mock instance. +func NewMockResourceIconServiceIface(ctrl *gomock.Controller) *MockResourceIconServiceIface { + mock := &MockResourceIconServiceIface{ctrl: ctrl} + mock.recorder = &MockResourceIconServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockResourceIconServiceIface) EXPECT() *MockResourceIconServiceIfaceMockRecorder { + return m.recorder +} + +// DeleteResourceIcon mocks base method. +func (m *MockResourceIconServiceIface) DeleteResourceIcon(p *DeleteResourceIconParams) (*DeleteResourceIconResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteResourceIcon", p) + ret0, _ := ret[0].(*DeleteResourceIconResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteResourceIcon indicates an expected call of DeleteResourceIcon. +func (mr *MockResourceIconServiceIfaceMockRecorder) DeleteResourceIcon(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteResourceIcon", reflect.TypeOf((*MockResourceIconServiceIface)(nil).DeleteResourceIcon), p) +} + +// ListResourceIcon mocks base method. +func (m *MockResourceIconServiceIface) ListResourceIcon(p *ListResourceIconParams) (*ListResourceIconResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListResourceIcon", p) + ret0, _ := ret[0].(*ListResourceIconResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResourceIcon indicates an expected call of ListResourceIcon. +func (mr *MockResourceIconServiceIfaceMockRecorder) ListResourceIcon(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceIcon", reflect.TypeOf((*MockResourceIconServiceIface)(nil).ListResourceIcon), p) +} + +// NewDeleteResourceIconParams mocks base method. +func (m *MockResourceIconServiceIface) NewDeleteResourceIconParams(resourceids []string, resourcetype string) *DeleteResourceIconParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteResourceIconParams", resourceids, resourcetype) + ret0, _ := ret[0].(*DeleteResourceIconParams) + return ret0 +} + +// NewDeleteResourceIconParams indicates an expected call of NewDeleteResourceIconParams. +func (mr *MockResourceIconServiceIfaceMockRecorder) NewDeleteResourceIconParams(resourceids, resourcetype any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteResourceIconParams", reflect.TypeOf((*MockResourceIconServiceIface)(nil).NewDeleteResourceIconParams), resourceids, resourcetype) +} + +// NewListResourceIconParams mocks base method. +func (m *MockResourceIconServiceIface) NewListResourceIconParams(resourceids []string, resourcetype string) *ListResourceIconParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListResourceIconParams", resourceids, resourcetype) + ret0, _ := ret[0].(*ListResourceIconParams) + return ret0 +} + +// NewListResourceIconParams indicates an expected call of NewListResourceIconParams. +func (mr *MockResourceIconServiceIfaceMockRecorder) NewListResourceIconParams(resourceids, resourcetype any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListResourceIconParams", reflect.TypeOf((*MockResourceIconServiceIface)(nil).NewListResourceIconParams), resourceids, resourcetype) +} + +// NewUploadResourceIconParams mocks base method. +func (m *MockResourceIconServiceIface) NewUploadResourceIconParams(base64image string, resourceids []string, resourcetype string) *UploadResourceIconParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUploadResourceIconParams", base64image, resourceids, resourcetype) + ret0, _ := ret[0].(*UploadResourceIconParams) + return ret0 +} + +// NewUploadResourceIconParams indicates an expected call of NewUploadResourceIconParams. +func (mr *MockResourceIconServiceIfaceMockRecorder) NewUploadResourceIconParams(base64image, resourceids, resourcetype any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUploadResourceIconParams", reflect.TypeOf((*MockResourceIconServiceIface)(nil).NewUploadResourceIconParams), base64image, resourceids, resourcetype) +} + +// UploadResourceIcon mocks base method. +func (m *MockResourceIconServiceIface) UploadResourceIcon(p *UploadResourceIconParams) (*UploadResourceIconResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UploadResourceIcon", p) + ret0, _ := ret[0].(*UploadResourceIconResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UploadResourceIcon indicates an expected call of UploadResourceIcon. +func (mr *MockResourceIconServiceIfaceMockRecorder) UploadResourceIcon(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadResourceIcon", reflect.TypeOf((*MockResourceIconServiceIface)(nil).UploadResourceIcon), p) +} diff --git a/cloudstack/ResourceService.go b/cloudstack/ResourceService.go new file mode 100644 index 00000000..997e6ab0 --- /dev/null +++ b/cloudstack/ResourceService.go @@ -0,0 +1,185 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" + "strconv" +) + +type ResourceServiceIface interface { + PurgeExpungedResources(p *PurgeExpungedResourcesParams) (*PurgeExpungedResourcesResponse, error) + NewPurgeExpungedResourcesParams() *PurgeExpungedResourcesParams +} + +type PurgeExpungedResourcesParams struct { + p map[string]interface{} +} + +func (p *PurgeExpungedResourcesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["batchsize"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("batchsize", vv) + } + if v, found := p.p["enddate"]; found { + u.Set("enddate", v.(string)) + } + if v, found := p.p["resourcetype"]; found { + u.Set("resourcetype", v.(string)) + } + if v, found := p.p["startdate"]; found { + u.Set("startdate", v.(string)) + } + return u +} + +func (p *PurgeExpungedResourcesParams) SetBatchsize(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["batchsize"] = v +} + +func (p *PurgeExpungedResourcesParams) ResetBatchsize() { + if p.p != nil && p.p["batchsize"] != nil { + delete(p.p, "batchsize") + } +} + +func (p *PurgeExpungedResourcesParams) GetBatchsize() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["batchsize"].(int64) + return value, ok +} + +func (p *PurgeExpungedResourcesParams) SetEnddate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["enddate"] = v +} + +func (p *PurgeExpungedResourcesParams) ResetEnddate() { + if p.p != nil && p.p["enddate"] != nil { + delete(p.p, "enddate") + } +} + +func (p *PurgeExpungedResourcesParams) GetEnddate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["enddate"].(string) + return value, ok +} + +func (p *PurgeExpungedResourcesParams) SetResourcetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourcetype"] = v +} + +func (p *PurgeExpungedResourcesParams) ResetResourcetype() { + if p.p != nil && p.p["resourcetype"] != nil { + delete(p.p, "resourcetype") + } +} + +func (p *PurgeExpungedResourcesParams) GetResourcetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourcetype"].(string) + return value, ok +} + +func (p *PurgeExpungedResourcesParams) SetStartdate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startdate"] = v +} + +func (p *PurgeExpungedResourcesParams) ResetStartdate() { + if p.p != nil && p.p["startdate"] != nil { + delete(p.p, "startdate") + } +} + +func (p *PurgeExpungedResourcesParams) GetStartdate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startdate"].(string) + return value, ok +} + +// You should always use this function to get a new PurgeExpungedResourcesParams instance, +// as then you are sure you have configured all required params +func (s *ResourceService) NewPurgeExpungedResourcesParams() *PurgeExpungedResourcesParams { + p := &PurgeExpungedResourcesParams{} + p.p = make(map[string]interface{}) + return p +} + +// Purge expunged resources +func (s *ResourceService) PurgeExpungedResources(p *PurgeExpungedResourcesParams) (*PurgeExpungedResourcesResponse, error) { + resp, err := s.cs.newRequest("purgeExpungedResources", p.toURLValues()) + if err != nil { + return nil, err + } + + var r PurgeExpungedResourcesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type PurgeExpungedResourcesResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} diff --git a/cloudstack/ResourceService_mock.go b/cloudstack/ResourceService_mock.go new file mode 100644 index 00000000..9ac3cc3f --- /dev/null +++ b/cloudstack/ResourceService_mock.go @@ -0,0 +1,88 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/ResourceService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ResourceService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ResourceService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockResourceServiceIface is a mock of ResourceServiceIface interface. +type MockResourceServiceIface struct { + ctrl *gomock.Controller + recorder *MockResourceServiceIfaceMockRecorder + isgomock struct{} +} + +// MockResourceServiceIfaceMockRecorder is the mock recorder for MockResourceServiceIface. +type MockResourceServiceIfaceMockRecorder struct { + mock *MockResourceServiceIface +} + +// NewMockResourceServiceIface creates a new mock instance. +func NewMockResourceServiceIface(ctrl *gomock.Controller) *MockResourceServiceIface { + mock := &MockResourceServiceIface{ctrl: ctrl} + mock.recorder = &MockResourceServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockResourceServiceIface) EXPECT() *MockResourceServiceIfaceMockRecorder { + return m.recorder +} + +// NewPurgeExpungedResourcesParams mocks base method. +func (m *MockResourceServiceIface) NewPurgeExpungedResourcesParams() *PurgeExpungedResourcesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewPurgeExpungedResourcesParams") + ret0, _ := ret[0].(*PurgeExpungedResourcesParams) + return ret0 +} + +// NewPurgeExpungedResourcesParams indicates an expected call of NewPurgeExpungedResourcesParams. +func (mr *MockResourceServiceIfaceMockRecorder) NewPurgeExpungedResourcesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewPurgeExpungedResourcesParams", reflect.TypeOf((*MockResourceServiceIface)(nil).NewPurgeExpungedResourcesParams)) +} + +// PurgeExpungedResources mocks base method. +func (m *MockResourceServiceIface) PurgeExpungedResources(p *PurgeExpungedResourcesParams) (*PurgeExpungedResourcesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PurgeExpungedResources", p) + ret0, _ := ret[0].(*PurgeExpungedResourcesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PurgeExpungedResources indicates an expected call of PurgeExpungedResources. +func (mr *MockResourceServiceIfaceMockRecorder) PurgeExpungedResources(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PurgeExpungedResources", reflect.TypeOf((*MockResourceServiceIface)(nil).PurgeExpungedResources), p) +} diff --git a/cloudstack/ResourcemetadataService.go b/cloudstack/ResourcemetadataService.go index 0e3262ee..1c142e1c 100644 --- a/cloudstack/ResourcemetadataService.go +++ b/cloudstack/ResourcemetadataService.go @@ -29,6 +29,8 @@ import ( type ResourcemetadataServiceIface interface { AddResourceDetail(p *AddResourceDetailParams) (*AddResourceDetailResponse, error) NewAddResourceDetailParams(details map[string]string, resourceid string, resourcetype string) *AddResourceDetailParams + ListDetailOptions(p *ListDetailOptionsParams) (*ListDetailOptionsResponse, error) + NewListDetailOptionsParams(resourcetype string) *ListDetailOptionsParams GetVolumeSnapshotDetails(p *GetVolumeSnapshotDetailsParams) (*GetVolumeSnapshotDetailsResponse, error) NewGetVolumeSnapshotDetailsParams(snapshotid string) *GetVolumeSnapshotDetailsParams ListResourceDetails(p *ListResourceDetailsParams) (*ListResourceDetailsResponse, error) @@ -198,6 +200,101 @@ type AddResourceDetailResponse struct { Success bool `json:"success"` } +type ListDetailOptionsParams struct { + p map[string]interface{} +} + +func (p *ListDetailOptionsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["resourceid"]; found { + u.Set("resourceid", v.(string)) + } + if v, found := p.p["resourcetype"]; found { + u.Set("resourcetype", v.(string)) + } + return u +} + +func (p *ListDetailOptionsParams) SetResourceid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourceid"] = v +} + +func (p *ListDetailOptionsParams) ResetResourceid() { + if p.p != nil && p.p["resourceid"] != nil { + delete(p.p, "resourceid") + } +} + +func (p *ListDetailOptionsParams) GetResourceid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourceid"].(string) + return value, ok +} + +func (p *ListDetailOptionsParams) SetResourcetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resourcetype"] = v +} + +func (p *ListDetailOptionsParams) ResetResourcetype() { + if p.p != nil && p.p["resourcetype"] != nil { + delete(p.p, "resourcetype") + } +} + +func (p *ListDetailOptionsParams) GetResourcetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resourcetype"].(string) + return value, ok +} + +// You should always use this function to get a new ListDetailOptionsParams instance, +// as then you are sure you have configured all required params +func (s *ResourcemetadataService) NewListDetailOptionsParams(resourcetype string) *ListDetailOptionsParams { + p := &ListDetailOptionsParams{} + p.p = make(map[string]interface{}) + p.p["resourcetype"] = resourcetype + return p +} + +// Lists all possible details and their options for a resource type such as a VM or a template +func (s *ResourcemetadataService) ListDetailOptions(p *ListDetailOptionsParams) (*ListDetailOptionsResponse, error) { + resp, err := s.cs.newRequest("listDetailOptions", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListDetailOptionsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListDetailOptionsResponse struct { + Count int `json:"count"` + DetailOptions []*DetailOption `json:"detailoption"` +} + +type DetailOption struct { + Details map[string]string `json:"details"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` +} + type GetVolumeSnapshotDetailsParams struct { p map[string]interface{} } diff --git a/cloudstack/ResourcemetadataService_mock.go b/cloudstack/ResourcemetadataService_mock.go index 95b1dcdc..96d5fd49 100644 --- a/cloudstack/ResourcemetadataService_mock.go +++ b/cloudstack/ResourcemetadataService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ResourcemetadataService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ResourcemetadataService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ResourcemetadataService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockResourcemetadataServiceIface is a mock of ResourcemetadataServiceIface interface. type MockResourcemetadataServiceIface struct { ctrl *gomock.Controller recorder *MockResourcemetadataServiceIfaceMockRecorder + isgomock struct{} } // MockResourcemetadataServiceIfaceMockRecorder is the mock recorder for MockResourcemetadataServiceIface. @@ -62,7 +68,7 @@ func (m *MockResourcemetadataServiceIface) AddResourceDetail(p *AddResourceDetai } // AddResourceDetail indicates an expected call of AddResourceDetail. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) AddResourceDetail(p interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) AddResourceDetail(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddResourceDetail", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).AddResourceDetail), p) } @@ -77,11 +83,26 @@ func (m *MockResourcemetadataServiceIface) GetVolumeSnapshotDetails(p *GetVolume } // GetVolumeSnapshotDetails indicates an expected call of GetVolumeSnapshotDetails. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) GetVolumeSnapshotDetails(p interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) GetVolumeSnapshotDetails(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeSnapshotDetails", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).GetVolumeSnapshotDetails), p) } +// ListDetailOptions mocks base method. +func (m *MockResourcemetadataServiceIface) ListDetailOptions(p *ListDetailOptionsParams) (*ListDetailOptionsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListDetailOptions", p) + ret0, _ := ret[0].(*ListDetailOptionsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListDetailOptions indicates an expected call of ListDetailOptions. +func (mr *MockResourcemetadataServiceIfaceMockRecorder) ListDetailOptions(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDetailOptions", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).ListDetailOptions), p) +} + // ListResourceDetails mocks base method. func (m *MockResourcemetadataServiceIface) ListResourceDetails(p *ListResourceDetailsParams) (*ListResourceDetailsResponse, error) { m.ctrl.T.Helper() @@ -92,7 +113,7 @@ func (m *MockResourcemetadataServiceIface) ListResourceDetails(p *ListResourceDe } // ListResourceDetails indicates an expected call of ListResourceDetails. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) ListResourceDetails(p interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) ListResourceDetails(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceDetails", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).ListResourceDetails), p) } @@ -106,7 +127,7 @@ func (m *MockResourcemetadataServiceIface) NewAddResourceDetailParams(details ma } // NewAddResourceDetailParams indicates an expected call of NewAddResourceDetailParams. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewAddResourceDetailParams(details, resourceid, resourcetype interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewAddResourceDetailParams(details, resourceid, resourcetype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddResourceDetailParams", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).NewAddResourceDetailParams), details, resourceid, resourcetype) } @@ -120,11 +141,25 @@ func (m *MockResourcemetadataServiceIface) NewGetVolumeSnapshotDetailsParams(sna } // NewGetVolumeSnapshotDetailsParams indicates an expected call of NewGetVolumeSnapshotDetailsParams. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewGetVolumeSnapshotDetailsParams(snapshotid interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewGetVolumeSnapshotDetailsParams(snapshotid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetVolumeSnapshotDetailsParams", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).NewGetVolumeSnapshotDetailsParams), snapshotid) } +// NewListDetailOptionsParams mocks base method. +func (m *MockResourcemetadataServiceIface) NewListDetailOptionsParams(resourcetype string) *ListDetailOptionsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListDetailOptionsParams", resourcetype) + ret0, _ := ret[0].(*ListDetailOptionsParams) + return ret0 +} + +// NewListDetailOptionsParams indicates an expected call of NewListDetailOptionsParams. +func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewListDetailOptionsParams(resourcetype any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListDetailOptionsParams", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).NewListDetailOptionsParams), resourcetype) +} + // NewListResourceDetailsParams mocks base method. func (m *MockResourcemetadataServiceIface) NewListResourceDetailsParams(resourcetype string) *ListResourceDetailsParams { m.ctrl.T.Helper() @@ -134,7 +169,7 @@ func (m *MockResourcemetadataServiceIface) NewListResourceDetailsParams(resource } // NewListResourceDetailsParams indicates an expected call of NewListResourceDetailsParams. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewListResourceDetailsParams(resourcetype interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewListResourceDetailsParams(resourcetype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListResourceDetailsParams", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).NewListResourceDetailsParams), resourcetype) } @@ -148,7 +183,7 @@ func (m *MockResourcemetadataServiceIface) NewRemoveResourceDetailParams(resourc } // NewRemoveResourceDetailParams indicates an expected call of NewRemoveResourceDetailParams. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewRemoveResourceDetailParams(resourceid, resourcetype interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) NewRemoveResourceDetailParams(resourceid, resourcetype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveResourceDetailParams", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).NewRemoveResourceDetailParams), resourceid, resourcetype) } @@ -163,7 +198,7 @@ func (m *MockResourcemetadataServiceIface) RemoveResourceDetail(p *RemoveResourc } // RemoveResourceDetail indicates an expected call of RemoveResourceDetail. -func (mr *MockResourcemetadataServiceIfaceMockRecorder) RemoveResourceDetail(p interface{}) *gomock.Call { +func (mr *MockResourcemetadataServiceIfaceMockRecorder) RemoveResourceDetail(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveResourceDetail", reflect.TypeOf((*MockResourcemetadataServiceIface)(nil).RemoveResourceDetail), p) } diff --git a/cloudstack/ResourcetagsService_mock.go b/cloudstack/ResourcetagsService_mock.go index d6b89854..68038e0c 100644 --- a/cloudstack/ResourcetagsService_mock.go +++ b/cloudstack/ResourcetagsService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ResourcetagsService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ResourcetagsService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ResourcetagsService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockResourcetagsServiceIface is a mock of ResourcetagsServiceIface interface. type MockResourcetagsServiceIface struct { ctrl *gomock.Controller recorder *MockResourcetagsServiceIfaceMockRecorder + isgomock struct{} } // MockResourcetagsServiceIfaceMockRecorder is the mock recorder for MockResourcetagsServiceIface. @@ -62,7 +68,7 @@ func (m *MockResourcetagsServiceIface) CreateTags(p *CreateTagsParams) (*CreateT } // CreateTags indicates an expected call of CreateTags. -func (mr *MockResourcetagsServiceIfaceMockRecorder) CreateTags(p interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) CreateTags(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTags", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).CreateTags), p) } @@ -77,7 +83,7 @@ func (m *MockResourcetagsServiceIface) DeleteTags(p *DeleteTagsParams) (*DeleteT } // DeleteTags indicates an expected call of DeleteTags. -func (mr *MockResourcetagsServiceIfaceMockRecorder) DeleteTags(p interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) DeleteTags(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTags", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).DeleteTags), p) } @@ -85,7 +91,7 @@ func (mr *MockResourcetagsServiceIfaceMockRecorder) DeleteTags(p interface{}) *g // GetStorageTagID mocks base method. func (m *MockResourcetagsServiceIface) GetStorageTagID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -97,9 +103,9 @@ func (m *MockResourcetagsServiceIface) GetStorageTagID(keyword string, opts ...O } // GetStorageTagID indicates an expected call of GetStorageTagID. -func (mr *MockResourcetagsServiceIfaceMockRecorder) GetStorageTagID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) GetStorageTagID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStorageTagID", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).GetStorageTagID), varargs...) } @@ -113,7 +119,7 @@ func (m *MockResourcetagsServiceIface) ListStorageTags(p *ListStorageTagsParams) } // ListStorageTags indicates an expected call of ListStorageTags. -func (mr *MockResourcetagsServiceIfaceMockRecorder) ListStorageTags(p interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) ListStorageTags(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStorageTags", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).ListStorageTags), p) } @@ -128,7 +134,7 @@ func (m *MockResourcetagsServiceIface) ListTags(p *ListTagsParams) (*ListTagsRes } // ListTags indicates an expected call of ListTags. -func (mr *MockResourcetagsServiceIfaceMockRecorder) ListTags(p interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) ListTags(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTags", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).ListTags), p) } @@ -142,7 +148,7 @@ func (m *MockResourcetagsServiceIface) NewCreateTagsParams(resourceids []string, } // NewCreateTagsParams indicates an expected call of NewCreateTagsParams. -func (mr *MockResourcetagsServiceIfaceMockRecorder) NewCreateTagsParams(resourceids, resourcetype, tags interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) NewCreateTagsParams(resourceids, resourcetype, tags any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateTagsParams", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).NewCreateTagsParams), resourceids, resourcetype, tags) } @@ -156,7 +162,7 @@ func (m *MockResourcetagsServiceIface) NewDeleteTagsParams(resourceids []string, } // NewDeleteTagsParams indicates an expected call of NewDeleteTagsParams. -func (mr *MockResourcetagsServiceIfaceMockRecorder) NewDeleteTagsParams(resourceids, resourcetype interface{}) *gomock.Call { +func (mr *MockResourcetagsServiceIfaceMockRecorder) NewDeleteTagsParams(resourceids, resourcetype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteTagsParams", reflect.TypeOf((*MockResourcetagsServiceIface)(nil).NewDeleteTagsParams), resourceids, resourcetype) } diff --git a/cloudstack/RoleService.go b/cloudstack/RoleService.go index 2095883d..e3c83aa1 100644 --- a/cloudstack/RoleService.go +++ b/cloudstack/RoleService.go @@ -36,6 +36,10 @@ type RoleServiceIface interface { NewDeleteRoleParams(id string) *DeleteRoleParams DeleteRolePermission(p *DeleteRolePermissionParams) (*DeleteRolePermissionResponse, error) NewDeleteRolePermissionParams(id string) *DeleteRolePermissionParams + DisableRole(p *DisableRoleParams) (*DisableRoleResponse, error) + NewDisableRoleParams(id string) *DisableRoleParams + EnableRole(p *EnableRoleParams) (*EnableRoleResponse, error) + NewEnableRoleParams(id string) *EnableRoleParams ImportRole(p *ImportRoleParams) (*ImportRoleResponse, error) NewImportRoleParams(name string, rules map[string]string) *ImportRoleParams ListRolePermissions(p *ListRolePermissionsParams) (*ListRolePermissionsResponse, error) @@ -562,6 +566,194 @@ func (r *DeleteRolePermissionResponse) UnmarshalJSON(b []byte) error { return json.Unmarshal(b, (*alias)(r)) } +type DisableRoleParams struct { + p map[string]interface{} +} + +func (p *DisableRoleParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DisableRoleParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DisableRoleParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DisableRoleParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DisableRoleParams instance, +// as then you are sure you have configured all required params +func (s *RoleService) NewDisableRoleParams(id string) *DisableRoleParams { + p := &DisableRoleParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Disables a role +func (s *RoleService) DisableRole(p *DisableRoleParams) (*DisableRoleResponse, error) { + resp, err := s.cs.newRequest("disableRole", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DisableRoleResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type DisableRoleResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DisableRoleResponse) 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 DisableRoleResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type EnableRoleParams struct { + p map[string]interface{} +} + +func (p *EnableRoleParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *EnableRoleParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *EnableRoleParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *EnableRoleParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new EnableRoleParams instance, +// as then you are sure you have configured all required params +func (s *RoleService) NewEnableRoleParams(id string) *EnableRoleParams { + p := &EnableRoleParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Enables a role +func (s *RoleService) EnableRole(p *EnableRoleParams) (*EnableRoleResponse, error) { + resp, err := s.cs.newRequest("enableRole", p.toURLValues()) + if err != nil { + return nil, err + } + + var r EnableRoleResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type EnableRoleResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *EnableRoleResponse) 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 EnableRoleResponse + return json.Unmarshal(b, (*alias)(r)) +} + type ImportRoleParams struct { p map[string]interface{} } diff --git a/cloudstack/RoleService_mock.go b/cloudstack/RoleService_mock.go index 50c87ed0..26281f89 100644 --- a/cloudstack/RoleService_mock.go +++ b/cloudstack/RoleService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/RoleService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/RoleService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/RoleService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockRoleServiceIface is a mock of RoleServiceIface interface. type MockRoleServiceIface struct { ctrl *gomock.Controller recorder *MockRoleServiceIfaceMockRecorder + isgomock struct{} } // MockRoleServiceIfaceMockRecorder is the mock recorder for MockRoleServiceIface. @@ -62,7 +68,7 @@ func (m *MockRoleServiceIface) CreateRole(p *CreateRoleParams) (*CreateRoleRespo } // CreateRole indicates an expected call of CreateRole. -func (mr *MockRoleServiceIfaceMockRecorder) CreateRole(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) CreateRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRole", reflect.TypeOf((*MockRoleServiceIface)(nil).CreateRole), p) } @@ -77,7 +83,7 @@ func (m *MockRoleServiceIface) CreateRolePermission(p *CreateRolePermissionParam } // CreateRolePermission indicates an expected call of CreateRolePermission. -func (mr *MockRoleServiceIfaceMockRecorder) CreateRolePermission(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) CreateRolePermission(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRolePermission", reflect.TypeOf((*MockRoleServiceIface)(nil).CreateRolePermission), p) } @@ -92,7 +98,7 @@ func (m *MockRoleServiceIface) DeleteRole(p *DeleteRoleParams) (*DeleteRoleRespo } // DeleteRole indicates an expected call of DeleteRole. -func (mr *MockRoleServiceIfaceMockRecorder) DeleteRole(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) DeleteRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRole", reflect.TypeOf((*MockRoleServiceIface)(nil).DeleteRole), p) } @@ -107,15 +113,45 @@ func (m *MockRoleServiceIface) DeleteRolePermission(p *DeleteRolePermissionParam } // DeleteRolePermission indicates an expected call of DeleteRolePermission. -func (mr *MockRoleServiceIfaceMockRecorder) DeleteRolePermission(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) DeleteRolePermission(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRolePermission", reflect.TypeOf((*MockRoleServiceIface)(nil).DeleteRolePermission), p) } +// DisableRole mocks base method. +func (m *MockRoleServiceIface) DisableRole(p *DisableRoleParams) (*DisableRoleResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DisableRole", p) + ret0, _ := ret[0].(*DisableRoleResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DisableRole indicates an expected call of DisableRole. +func (mr *MockRoleServiceIfaceMockRecorder) DisableRole(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableRole", reflect.TypeOf((*MockRoleServiceIface)(nil).DisableRole), p) +} + +// EnableRole mocks base method. +func (m *MockRoleServiceIface) EnableRole(p *EnableRoleParams) (*EnableRoleResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "EnableRole", p) + ret0, _ := ret[0].(*EnableRoleResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// EnableRole indicates an expected call of EnableRole. +func (mr *MockRoleServiceIfaceMockRecorder) EnableRole(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableRole", reflect.TypeOf((*MockRoleServiceIface)(nil).EnableRole), p) +} + // GetProjectRoleID mocks base method. func (m *MockRoleServiceIface) GetProjectRoleID(name, projectid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name, projectid} + varargs := []any{name, projectid} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +163,16 @@ func (m *MockRoleServiceIface) GetProjectRoleID(name, projectid string, opts ... } // GetProjectRoleID indicates an expected call of GetProjectRoleID. -func (mr *MockRoleServiceIfaceMockRecorder) GetProjectRoleID(name, projectid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) GetProjectRoleID(name, projectid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name, projectid}, opts...) + varargs := append([]any{name, projectid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectRoleID", reflect.TypeOf((*MockRoleServiceIface)(nil).GetProjectRoleID), varargs...) } // GetRoleByID mocks base method. func (m *MockRoleServiceIface) GetRoleByID(id string, opts ...OptionFunc) (*Role, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -148,16 +184,16 @@ func (m *MockRoleServiceIface) GetRoleByID(id string, opts ...OptionFunc) (*Role } // GetRoleByID indicates an expected call of GetRoleByID. -func (mr *MockRoleServiceIfaceMockRecorder) GetRoleByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) GetRoleByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoleByID", reflect.TypeOf((*MockRoleServiceIface)(nil).GetRoleByID), varargs...) } // GetRoleByName mocks base method. func (m *MockRoleServiceIface) GetRoleByName(name string, opts ...OptionFunc) (*Role, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -169,16 +205,16 @@ func (m *MockRoleServiceIface) GetRoleByName(name string, opts ...OptionFunc) (* } // GetRoleByName indicates an expected call of GetRoleByName. -func (mr *MockRoleServiceIfaceMockRecorder) GetRoleByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) GetRoleByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoleByName", reflect.TypeOf((*MockRoleServiceIface)(nil).GetRoleByName), varargs...) } // GetRoleID mocks base method. func (m *MockRoleServiceIface) GetRoleID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -190,9 +226,9 @@ func (m *MockRoleServiceIface) GetRoleID(name string, opts ...OptionFunc) (strin } // GetRoleID indicates an expected call of GetRoleID. -func (mr *MockRoleServiceIfaceMockRecorder) GetRoleID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) GetRoleID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoleID", reflect.TypeOf((*MockRoleServiceIface)(nil).GetRoleID), varargs...) } @@ -206,7 +242,7 @@ func (m *MockRoleServiceIface) ImportRole(p *ImportRoleParams) (*ImportRoleRespo } // ImportRole indicates an expected call of ImportRole. -func (mr *MockRoleServiceIfaceMockRecorder) ImportRole(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) ImportRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImportRole", reflect.TypeOf((*MockRoleServiceIface)(nil).ImportRole), p) } @@ -221,7 +257,7 @@ func (m *MockRoleServiceIface) ListProjectRoles(p *ListProjectRolesParams) (*Lis } // ListProjectRoles indicates an expected call of ListProjectRoles. -func (mr *MockRoleServiceIfaceMockRecorder) ListProjectRoles(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) ListProjectRoles(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectRoles", reflect.TypeOf((*MockRoleServiceIface)(nil).ListProjectRoles), p) } @@ -236,7 +272,7 @@ func (m *MockRoleServiceIface) ListRolePermissions(p *ListRolePermissionsParams) } // ListRolePermissions indicates an expected call of ListRolePermissions. -func (mr *MockRoleServiceIfaceMockRecorder) ListRolePermissions(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) ListRolePermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRolePermissions", reflect.TypeOf((*MockRoleServiceIface)(nil).ListRolePermissions), p) } @@ -251,7 +287,7 @@ func (m *MockRoleServiceIface) ListRoles(p *ListRolesParams) (*ListRolesResponse } // ListRoles indicates an expected call of ListRoles. -func (mr *MockRoleServiceIfaceMockRecorder) ListRoles(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) ListRoles(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoles", reflect.TypeOf((*MockRoleServiceIface)(nil).ListRoles), p) } @@ -265,7 +301,7 @@ func (m *MockRoleServiceIface) NewCreateRoleParams(name string) *CreateRoleParam } // NewCreateRoleParams indicates an expected call of NewCreateRoleParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewCreateRoleParams(name interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewCreateRoleParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateRoleParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewCreateRoleParams), name) } @@ -279,7 +315,7 @@ func (m *MockRoleServiceIface) NewCreateRolePermissionParams(permission, roleid, } // NewCreateRolePermissionParams indicates an expected call of NewCreateRolePermissionParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewCreateRolePermissionParams(permission, roleid, rule interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewCreateRolePermissionParams(permission, roleid, rule any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateRolePermissionParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewCreateRolePermissionParams), permission, roleid, rule) } @@ -293,7 +329,7 @@ func (m *MockRoleServiceIface) NewDeleteRoleParams(id string) *DeleteRoleParams } // NewDeleteRoleParams indicates an expected call of NewDeleteRoleParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewDeleteRoleParams(id interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewDeleteRoleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteRoleParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewDeleteRoleParams), id) } @@ -307,11 +343,39 @@ func (m *MockRoleServiceIface) NewDeleteRolePermissionParams(id string) *DeleteR } // NewDeleteRolePermissionParams indicates an expected call of NewDeleteRolePermissionParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewDeleteRolePermissionParams(id interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewDeleteRolePermissionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteRolePermissionParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewDeleteRolePermissionParams), id) } +// NewDisableRoleParams mocks base method. +func (m *MockRoleServiceIface) NewDisableRoleParams(id string) *DisableRoleParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDisableRoleParams", id) + ret0, _ := ret[0].(*DisableRoleParams) + return ret0 +} + +// NewDisableRoleParams indicates an expected call of NewDisableRoleParams. +func (mr *MockRoleServiceIfaceMockRecorder) NewDisableRoleParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableRoleParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewDisableRoleParams), id) +} + +// NewEnableRoleParams mocks base method. +func (m *MockRoleServiceIface) NewEnableRoleParams(id string) *EnableRoleParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewEnableRoleParams", id) + ret0, _ := ret[0].(*EnableRoleParams) + return ret0 +} + +// NewEnableRoleParams indicates an expected call of NewEnableRoleParams. +func (mr *MockRoleServiceIfaceMockRecorder) NewEnableRoleParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableRoleParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewEnableRoleParams), id) +} + // NewImportRoleParams mocks base method. func (m *MockRoleServiceIface) NewImportRoleParams(name string, rules map[string]string) *ImportRoleParams { m.ctrl.T.Helper() @@ -321,7 +385,7 @@ func (m *MockRoleServiceIface) NewImportRoleParams(name string, rules map[string } // NewImportRoleParams indicates an expected call of NewImportRoleParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewImportRoleParams(name, rules interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewImportRoleParams(name, rules any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewImportRoleParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewImportRoleParams), name, rules) } @@ -335,7 +399,7 @@ func (m *MockRoleServiceIface) NewListProjectRolesParams(projectid string) *List } // NewListProjectRolesParams indicates an expected call of NewListProjectRolesParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewListProjectRolesParams(projectid interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewListProjectRolesParams(projectid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListProjectRolesParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewListProjectRolesParams), projectid) } @@ -377,7 +441,7 @@ func (m *MockRoleServiceIface) NewUpdateRoleParams(id string) *UpdateRoleParams } // NewUpdateRoleParams indicates an expected call of NewUpdateRoleParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewUpdateRoleParams(id interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewUpdateRoleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateRoleParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewUpdateRoleParams), id) } @@ -391,7 +455,7 @@ func (m *MockRoleServiceIface) NewUpdateRolePermissionParams(roleid string) *Upd } // NewUpdateRolePermissionParams indicates an expected call of NewUpdateRolePermissionParams. -func (mr *MockRoleServiceIfaceMockRecorder) NewUpdateRolePermissionParams(roleid interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) NewUpdateRolePermissionParams(roleid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateRolePermissionParams", reflect.TypeOf((*MockRoleServiceIface)(nil).NewUpdateRolePermissionParams), roleid) } @@ -406,7 +470,7 @@ func (m *MockRoleServiceIface) UpdateRole(p *UpdateRoleParams) (*UpdateRoleRespo } // UpdateRole indicates an expected call of UpdateRole. -func (mr *MockRoleServiceIfaceMockRecorder) UpdateRole(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) UpdateRole(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRole", reflect.TypeOf((*MockRoleServiceIface)(nil).UpdateRole), p) } @@ -421,7 +485,7 @@ func (m *MockRoleServiceIface) UpdateRolePermission(p *UpdateRolePermissionParam } // UpdateRolePermission indicates an expected call of UpdateRolePermission. -func (mr *MockRoleServiceIfaceMockRecorder) UpdateRolePermission(p interface{}) *gomock.Call { +func (mr *MockRoleServiceIfaceMockRecorder) UpdateRolePermission(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRolePermission", reflect.TypeOf((*MockRoleServiceIface)(nil).UpdateRolePermission), p) } diff --git a/cloudstack/RollingMaintenanceService.go b/cloudstack/RollingMaintenanceService.go new file mode 100644 index 00000000..c901bb9a --- /dev/null +++ b/cloudstack/RollingMaintenanceService.go @@ -0,0 +1,284 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" + "strconv" + "strings" +) + +type RollingMaintenanceServiceIface interface { + StartRollingMaintenance(p *StartRollingMaintenanceParams) (*StartRollingMaintenanceResponse, error) + NewStartRollingMaintenanceParams() *StartRollingMaintenanceParams +} + +type StartRollingMaintenanceParams struct { + p map[string]interface{} +} + +func (p *StartRollingMaintenanceParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["clusterids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("clusterids", vv) + } + if v, found := p.p["forced"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("forced", vv) + } + if v, found := p.p["hostids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("hostids", vv) + } + if v, found := p.p["payload"]; found { + u.Set("payload", v.(string)) + } + if v, found := p.p["podids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("podids", vv) + } + if v, found := p.p["timeout"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("timeout", vv) + } + if v, found := p.p["zoneids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("zoneids", vv) + } + return u +} + +func (p *StartRollingMaintenanceParams) SetClusterids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["clusterids"] = v +} + +func (p *StartRollingMaintenanceParams) ResetClusterids() { + if p.p != nil && p.p["clusterids"] != nil { + delete(p.p, "clusterids") + } +} + +func (p *StartRollingMaintenanceParams) GetClusterids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["clusterids"].([]string) + return value, ok +} + +func (p *StartRollingMaintenanceParams) SetForced(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forced"] = v +} + +func (p *StartRollingMaintenanceParams) ResetForced() { + if p.p != nil && p.p["forced"] != nil { + delete(p.p, "forced") + } +} + +func (p *StartRollingMaintenanceParams) GetForced() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forced"].(bool) + return value, ok +} + +func (p *StartRollingMaintenanceParams) SetHostids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostids"] = v +} + +func (p *StartRollingMaintenanceParams) ResetHostids() { + if p.p != nil && p.p["hostids"] != nil { + delete(p.p, "hostids") + } +} + +func (p *StartRollingMaintenanceParams) GetHostids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostids"].([]string) + return value, ok +} + +func (p *StartRollingMaintenanceParams) SetPayload(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["payload"] = v +} + +func (p *StartRollingMaintenanceParams) ResetPayload() { + if p.p != nil && p.p["payload"] != nil { + delete(p.p, "payload") + } +} + +func (p *StartRollingMaintenanceParams) GetPayload() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["payload"].(string) + return value, ok +} + +func (p *StartRollingMaintenanceParams) SetPodids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["podids"] = v +} + +func (p *StartRollingMaintenanceParams) ResetPodids() { + if p.p != nil && p.p["podids"] != nil { + delete(p.p, "podids") + } +} + +func (p *StartRollingMaintenanceParams) GetPodids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["podids"].([]string) + return value, ok +} + +func (p *StartRollingMaintenanceParams) SetTimeout(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["timeout"] = v +} + +func (p *StartRollingMaintenanceParams) ResetTimeout() { + if p.p != nil && p.p["timeout"] != nil { + delete(p.p, "timeout") + } +} + +func (p *StartRollingMaintenanceParams) GetTimeout() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["timeout"].(int) + return value, ok +} + +func (p *StartRollingMaintenanceParams) SetZoneids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneids"] = v +} + +func (p *StartRollingMaintenanceParams) ResetZoneids() { + if p.p != nil && p.p["zoneids"] != nil { + delete(p.p, "zoneids") + } +} + +func (p *StartRollingMaintenanceParams) GetZoneids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneids"].([]string) + return value, ok +} + +// You should always use this function to get a new StartRollingMaintenanceParams instance, +// as then you are sure you have configured all required params +func (s *RollingMaintenanceService) NewStartRollingMaintenanceParams() *StartRollingMaintenanceParams { + p := &StartRollingMaintenanceParams{} + p.p = make(map[string]interface{}) + return p +} + +// Start rolling maintenance +func (s *RollingMaintenanceService) StartRollingMaintenance(p *StartRollingMaintenanceParams) (*StartRollingMaintenanceResponse, error) { + resp, err := s.cs.newRequest("startRollingMaintenance", p.toURLValues()) + if err != nil { + return nil, err + } + + var r StartRollingMaintenanceResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type StartRollingMaintenanceResponse struct { + Details string `json:"details"` + Hostsskipped []StartRollingMaintenanceResponseHostsskipped `json:"hostsskipped"` + Hostsupdated []StartRollingMaintenanceResponseHostsupdated `json:"hostsupdated"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type StartRollingMaintenanceResponseHostsupdated struct { + Enddate string `json:"enddate"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Output string `json:"output"` + Startdate string `json:"startdate"` +} + +type StartRollingMaintenanceResponseHostsskipped struct { + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Reason string `json:"reason"` +} diff --git a/cloudstack/RollingMaintenanceService_mock.go b/cloudstack/RollingMaintenanceService_mock.go new file mode 100644 index 00000000..f0d7af62 --- /dev/null +++ b/cloudstack/RollingMaintenanceService_mock.go @@ -0,0 +1,88 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/RollingMaintenanceService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/RollingMaintenanceService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/RollingMaintenanceService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockRollingMaintenanceServiceIface is a mock of RollingMaintenanceServiceIface interface. +type MockRollingMaintenanceServiceIface struct { + ctrl *gomock.Controller + recorder *MockRollingMaintenanceServiceIfaceMockRecorder + isgomock struct{} +} + +// MockRollingMaintenanceServiceIfaceMockRecorder is the mock recorder for MockRollingMaintenanceServiceIface. +type MockRollingMaintenanceServiceIfaceMockRecorder struct { + mock *MockRollingMaintenanceServiceIface +} + +// NewMockRollingMaintenanceServiceIface creates a new mock instance. +func NewMockRollingMaintenanceServiceIface(ctrl *gomock.Controller) *MockRollingMaintenanceServiceIface { + mock := &MockRollingMaintenanceServiceIface{ctrl: ctrl} + mock.recorder = &MockRollingMaintenanceServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockRollingMaintenanceServiceIface) EXPECT() *MockRollingMaintenanceServiceIfaceMockRecorder { + return m.recorder +} + +// NewStartRollingMaintenanceParams mocks base method. +func (m *MockRollingMaintenanceServiceIface) NewStartRollingMaintenanceParams() *StartRollingMaintenanceParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewStartRollingMaintenanceParams") + ret0, _ := ret[0].(*StartRollingMaintenanceParams) + return ret0 +} + +// NewStartRollingMaintenanceParams indicates an expected call of NewStartRollingMaintenanceParams. +func (mr *MockRollingMaintenanceServiceIfaceMockRecorder) NewStartRollingMaintenanceParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartRollingMaintenanceParams", reflect.TypeOf((*MockRollingMaintenanceServiceIface)(nil).NewStartRollingMaintenanceParams)) +} + +// StartRollingMaintenance mocks base method. +func (m *MockRollingMaintenanceServiceIface) StartRollingMaintenance(p *StartRollingMaintenanceParams) (*StartRollingMaintenanceResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StartRollingMaintenance", p) + ret0, _ := ret[0].(*StartRollingMaintenanceResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StartRollingMaintenance indicates an expected call of StartRollingMaintenance. +func (mr *MockRollingMaintenanceServiceIfaceMockRecorder) StartRollingMaintenance(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartRollingMaintenance", reflect.TypeOf((*MockRollingMaintenanceServiceIface)(nil).StartRollingMaintenance), p) +} diff --git a/cloudstack/RouterService.go b/cloudstack/RouterService.go index d964cf5c..729440fe 100644 --- a/cloudstack/RouterService.go +++ b/cloudstack/RouterService.go @@ -36,6 +36,8 @@ type RouterServiceIface interface { NewCreateVirtualRouterElementParams(nspid string) *CreateVirtualRouterElementParams DestroyRouter(p *DestroyRouterParams) (*DestroyRouterResponse, error) NewDestroyRouterParams(id string) *DestroyRouterParams + GetRouterHealthCheckResults(p *GetRouterHealthCheckResultsParams) (*GetRouterHealthCheckResultsResponse, error) + NewGetRouterHealthCheckResultsParams(routerid string) *GetRouterHealthCheckResultsParams ListRouters(p *ListRoutersParams) (*ListRoutersResponse, error) NewListRoutersParams() *ListRoutersParams GetRouterID(name string, opts ...OptionFunc) (string, int, error) @@ -589,6 +591,98 @@ type DestroyRouterResponseHealthcheckresults struct { Success bool `json:"success"` } +type GetRouterHealthCheckResultsParams struct { + p map[string]interface{} +} + +func (p *GetRouterHealthCheckResultsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["performfreshchecks"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("performfreshchecks", vv) + } + if v, found := p.p["routerid"]; found { + u.Set("routerid", v.(string)) + } + return u +} + +func (p *GetRouterHealthCheckResultsParams) SetPerformfreshchecks(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["performfreshchecks"] = v +} + +func (p *GetRouterHealthCheckResultsParams) ResetPerformfreshchecks() { + if p.p != nil && p.p["performfreshchecks"] != nil { + delete(p.p, "performfreshchecks") + } +} + +func (p *GetRouterHealthCheckResultsParams) GetPerformfreshchecks() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["performfreshchecks"].(bool) + return value, ok +} + +func (p *GetRouterHealthCheckResultsParams) SetRouterid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["routerid"] = v +} + +func (p *GetRouterHealthCheckResultsParams) ResetRouterid() { + if p.p != nil && p.p["routerid"] != nil { + delete(p.p, "routerid") + } +} + +func (p *GetRouterHealthCheckResultsParams) GetRouterid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["routerid"].(string) + return value, ok +} + +// You should always use this function to get a new GetRouterHealthCheckResultsParams instance, +// as then you are sure you have configured all required params +func (s *RouterService) NewGetRouterHealthCheckResultsParams(routerid string) *GetRouterHealthCheckResultsParams { + p := &GetRouterHealthCheckResultsParams{} + p.p = make(map[string]interface{}) + p.p["routerid"] = routerid + return p +} + +// Starts a router. +func (s *RouterService) GetRouterHealthCheckResults(p *GetRouterHealthCheckResultsParams) (*GetRouterHealthCheckResultsResponse, error) { + resp, err := s.cs.newRequest("getRouterHealthCheckResults", p.toURLValues()) + if err != nil { + return nil, err + } + + var r GetRouterHealthCheckResultsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type GetRouterHealthCheckResultsResponse struct { + Healthchecks []string `json:"healthchecks"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Routerid string `json:"routerid"` +} + type ListRoutersParams struct { p map[string]interface{} } diff --git a/cloudstack/RouterService_mock.go b/cloudstack/RouterService_mock.go index 4c1135f1..6a287a3a 100644 --- a/cloudstack/RouterService_mock.go +++ b/cloudstack/RouterService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/RouterService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/RouterService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/RouterService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockRouterServiceIface is a mock of RouterServiceIface interface. type MockRouterServiceIface struct { ctrl *gomock.Controller recorder *MockRouterServiceIfaceMockRecorder + isgomock struct{} } // MockRouterServiceIfaceMockRecorder is the mock recorder for MockRouterServiceIface. @@ -62,7 +68,7 @@ func (m *MockRouterServiceIface) ChangeServiceForRouter(p *ChangeServiceForRoute } // ChangeServiceForRouter indicates an expected call of ChangeServiceForRouter. -func (mr *MockRouterServiceIfaceMockRecorder) ChangeServiceForRouter(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) ChangeServiceForRouter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeServiceForRouter", reflect.TypeOf((*MockRouterServiceIface)(nil).ChangeServiceForRouter), p) } @@ -77,7 +83,7 @@ func (m *MockRouterServiceIface) ConfigureVirtualRouterElement(p *ConfigureVirtu } // ConfigureVirtualRouterElement indicates an expected call of ConfigureVirtualRouterElement. -func (mr *MockRouterServiceIfaceMockRecorder) ConfigureVirtualRouterElement(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) ConfigureVirtualRouterElement(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigureVirtualRouterElement", reflect.TypeOf((*MockRouterServiceIface)(nil).ConfigureVirtualRouterElement), p) } @@ -92,7 +98,7 @@ func (m *MockRouterServiceIface) CreateVirtualRouterElement(p *CreateVirtualRout } // CreateVirtualRouterElement indicates an expected call of CreateVirtualRouterElement. -func (mr *MockRouterServiceIfaceMockRecorder) CreateVirtualRouterElement(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) CreateVirtualRouterElement(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVirtualRouterElement", reflect.TypeOf((*MockRouterServiceIface)(nil).CreateVirtualRouterElement), p) } @@ -107,7 +113,7 @@ func (m *MockRouterServiceIface) DestroyRouter(p *DestroyRouterParams) (*Destroy } // DestroyRouter indicates an expected call of DestroyRouter. -func (mr *MockRouterServiceIfaceMockRecorder) DestroyRouter(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) DestroyRouter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DestroyRouter", reflect.TypeOf((*MockRouterServiceIface)(nil).DestroyRouter), p) } @@ -115,7 +121,7 @@ func (mr *MockRouterServiceIfaceMockRecorder) DestroyRouter(p interface{}) *gomo // GetRouterByID mocks base method. func (m *MockRouterServiceIface) GetRouterByID(id string, opts ...OptionFunc) (*Router, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +133,16 @@ func (m *MockRouterServiceIface) GetRouterByID(id string, opts ...OptionFunc) (* } // GetRouterByID indicates an expected call of GetRouterByID. -func (mr *MockRouterServiceIfaceMockRecorder) GetRouterByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) GetRouterByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouterByID", reflect.TypeOf((*MockRouterServiceIface)(nil).GetRouterByID), varargs...) } // GetRouterByName mocks base method. func (m *MockRouterServiceIface) GetRouterByName(name string, opts ...OptionFunc) (*Router, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -148,16 +154,31 @@ func (m *MockRouterServiceIface) GetRouterByName(name string, opts ...OptionFunc } // GetRouterByName indicates an expected call of GetRouterByName. -func (mr *MockRouterServiceIfaceMockRecorder) GetRouterByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) GetRouterByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouterByName", reflect.TypeOf((*MockRouterServiceIface)(nil).GetRouterByName), varargs...) } +// GetRouterHealthCheckResults mocks base method. +func (m *MockRouterServiceIface) GetRouterHealthCheckResults(p *GetRouterHealthCheckResultsParams) (*GetRouterHealthCheckResultsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRouterHealthCheckResults", p) + ret0, _ := ret[0].(*GetRouterHealthCheckResultsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetRouterHealthCheckResults indicates an expected call of GetRouterHealthCheckResults. +func (mr *MockRouterServiceIfaceMockRecorder) GetRouterHealthCheckResults(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouterHealthCheckResults", reflect.TypeOf((*MockRouterServiceIface)(nil).GetRouterHealthCheckResults), p) +} + // GetRouterID mocks base method. func (m *MockRouterServiceIface) GetRouterID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -169,16 +190,16 @@ func (m *MockRouterServiceIface) GetRouterID(name string, opts ...OptionFunc) (s } // GetRouterID indicates an expected call of GetRouterID. -func (mr *MockRouterServiceIfaceMockRecorder) GetRouterID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) GetRouterID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouterID", reflect.TypeOf((*MockRouterServiceIface)(nil).GetRouterID), varargs...) } // GetVirtualRouterElementByID mocks base method. func (m *MockRouterServiceIface) GetVirtualRouterElementByID(id string, opts ...OptionFunc) (*VirtualRouterElement, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -190,9 +211,9 @@ func (m *MockRouterServiceIface) GetVirtualRouterElementByID(id string, opts ... } // GetVirtualRouterElementByID indicates an expected call of GetVirtualRouterElementByID. -func (mr *MockRouterServiceIfaceMockRecorder) GetVirtualRouterElementByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) GetVirtualRouterElementByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualRouterElementByID", reflect.TypeOf((*MockRouterServiceIface)(nil).GetVirtualRouterElementByID), varargs...) } @@ -206,7 +227,7 @@ func (m *MockRouterServiceIface) ListRouters(p *ListRoutersParams) (*ListRouters } // ListRouters indicates an expected call of ListRouters. -func (mr *MockRouterServiceIfaceMockRecorder) ListRouters(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) ListRouters(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRouters", reflect.TypeOf((*MockRouterServiceIface)(nil).ListRouters), p) } @@ -221,7 +242,7 @@ func (m *MockRouterServiceIface) ListVirtualRouterElements(p *ListVirtualRouterE } // ListVirtualRouterElements indicates an expected call of ListVirtualRouterElements. -func (mr *MockRouterServiceIfaceMockRecorder) ListVirtualRouterElements(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) ListVirtualRouterElements(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualRouterElements", reflect.TypeOf((*MockRouterServiceIface)(nil).ListVirtualRouterElements), p) } @@ -235,7 +256,7 @@ func (m *MockRouterServiceIface) NewChangeServiceForRouterParams(id, serviceoffe } // NewChangeServiceForRouterParams indicates an expected call of NewChangeServiceForRouterParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewChangeServiceForRouterParams(id, serviceofferingid interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewChangeServiceForRouterParams(id, serviceofferingid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeServiceForRouterParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewChangeServiceForRouterParams), id, serviceofferingid) } @@ -249,7 +270,7 @@ func (m *MockRouterServiceIface) NewConfigureVirtualRouterElementParams(enabled } // NewConfigureVirtualRouterElementParams indicates an expected call of NewConfigureVirtualRouterElementParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewConfigureVirtualRouterElementParams(enabled, id interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewConfigureVirtualRouterElementParams(enabled, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewConfigureVirtualRouterElementParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewConfigureVirtualRouterElementParams), enabled, id) } @@ -263,7 +284,7 @@ func (m *MockRouterServiceIface) NewCreateVirtualRouterElementParams(nspid strin } // NewCreateVirtualRouterElementParams indicates an expected call of NewCreateVirtualRouterElementParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewCreateVirtualRouterElementParams(nspid interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewCreateVirtualRouterElementParams(nspid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVirtualRouterElementParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewCreateVirtualRouterElementParams), nspid) } @@ -277,11 +298,25 @@ func (m *MockRouterServiceIface) NewDestroyRouterParams(id string) *DestroyRoute } // NewDestroyRouterParams indicates an expected call of NewDestroyRouterParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewDestroyRouterParams(id interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewDestroyRouterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDestroyRouterParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewDestroyRouterParams), id) } +// NewGetRouterHealthCheckResultsParams mocks base method. +func (m *MockRouterServiceIface) NewGetRouterHealthCheckResultsParams(routerid string) *GetRouterHealthCheckResultsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewGetRouterHealthCheckResultsParams", routerid) + ret0, _ := ret[0].(*GetRouterHealthCheckResultsParams) + return ret0 +} + +// NewGetRouterHealthCheckResultsParams indicates an expected call of NewGetRouterHealthCheckResultsParams. +func (mr *MockRouterServiceIfaceMockRecorder) NewGetRouterHealthCheckResultsParams(routerid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetRouterHealthCheckResultsParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewGetRouterHealthCheckResultsParams), routerid) +} + // NewListRoutersParams mocks base method. func (m *MockRouterServiceIface) NewListRoutersParams() *ListRoutersParams { m.ctrl.T.Helper() @@ -319,7 +354,7 @@ func (m *MockRouterServiceIface) NewRebootRouterParams(id string) *RebootRouterP } // NewRebootRouterParams indicates an expected call of NewRebootRouterParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewRebootRouterParams(id interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewRebootRouterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRebootRouterParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewRebootRouterParams), id) } @@ -333,7 +368,7 @@ func (m *MockRouterServiceIface) NewStartRouterParams(id string) *StartRouterPar } // NewStartRouterParams indicates an expected call of NewStartRouterParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewStartRouterParams(id interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewStartRouterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartRouterParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewStartRouterParams), id) } @@ -347,7 +382,7 @@ func (m *MockRouterServiceIface) NewStopRouterParams(id string) *StopRouterParam } // NewStopRouterParams indicates an expected call of NewStopRouterParams. -func (mr *MockRouterServiceIfaceMockRecorder) NewStopRouterParams(id interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) NewStopRouterParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopRouterParams", reflect.TypeOf((*MockRouterServiceIface)(nil).NewStopRouterParams), id) } @@ -362,7 +397,7 @@ func (m *MockRouterServiceIface) RebootRouter(p *RebootRouterParams) (*RebootRou } // RebootRouter indicates an expected call of RebootRouter. -func (mr *MockRouterServiceIfaceMockRecorder) RebootRouter(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) RebootRouter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootRouter", reflect.TypeOf((*MockRouterServiceIface)(nil).RebootRouter), p) } @@ -377,7 +412,7 @@ func (m *MockRouterServiceIface) StartRouter(p *StartRouterParams) (*StartRouter } // StartRouter indicates an expected call of StartRouter. -func (mr *MockRouterServiceIfaceMockRecorder) StartRouter(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) StartRouter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartRouter", reflect.TypeOf((*MockRouterServiceIface)(nil).StartRouter), p) } @@ -392,7 +427,7 @@ func (m *MockRouterServiceIface) StopRouter(p *StopRouterParams) (*StopRouterRes } // StopRouter indicates an expected call of StopRouter. -func (mr *MockRouterServiceIfaceMockRecorder) StopRouter(p interface{}) *gomock.Call { +func (mr *MockRouterServiceIfaceMockRecorder) StopRouter(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopRouter", reflect.TypeOf((*MockRouterServiceIface)(nil).StopRouter), p) } diff --git a/cloudstack/SSHService_mock.go b/cloudstack/SSHService_mock.go index fa39fa5d..3a899213 100644 --- a/cloudstack/SSHService_mock.go +++ b/cloudstack/SSHService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/SSHService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SSHService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SSHService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockSSHServiceIface is a mock of SSHServiceIface interface. type MockSSHServiceIface struct { ctrl *gomock.Controller recorder *MockSSHServiceIfaceMockRecorder + isgomock struct{} } // MockSSHServiceIfaceMockRecorder is the mock recorder for MockSSHServiceIface. @@ -62,7 +68,7 @@ func (m *MockSSHServiceIface) CreateSSHKeyPair(p *CreateSSHKeyPairParams) (*Crea } // CreateSSHKeyPair indicates an expected call of CreateSSHKeyPair. -func (mr *MockSSHServiceIfaceMockRecorder) CreateSSHKeyPair(p interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) CreateSSHKeyPair(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSSHKeyPair", reflect.TypeOf((*MockSSHServiceIface)(nil).CreateSSHKeyPair), p) } @@ -77,7 +83,7 @@ func (m *MockSSHServiceIface) DeleteSSHKeyPair(p *DeleteSSHKeyPairParams) (*Dele } // DeleteSSHKeyPair indicates an expected call of DeleteSSHKeyPair. -func (mr *MockSSHServiceIfaceMockRecorder) DeleteSSHKeyPair(p interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) DeleteSSHKeyPair(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSSHKeyPair", reflect.TypeOf((*MockSSHServiceIface)(nil).DeleteSSHKeyPair), p) } @@ -85,7 +91,7 @@ func (mr *MockSSHServiceIfaceMockRecorder) DeleteSSHKeyPair(p interface{}) *gomo // GetSSHKeyPairByID mocks base method. func (m *MockSSHServiceIface) GetSSHKeyPairByID(id string, opts ...OptionFunc) (*SSHKeyPair, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockSSHServiceIface) GetSSHKeyPairByID(id string, opts ...OptionFunc) ( } // GetSSHKeyPairByID indicates an expected call of GetSSHKeyPairByID. -func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSSHKeyPairByID", reflect.TypeOf((*MockSSHServiceIface)(nil).GetSSHKeyPairByID), varargs...) } // GetSSHKeyPairByName mocks base method. func (m *MockSSHServiceIface) GetSSHKeyPairByName(name string, opts ...OptionFunc) (*SSHKeyPair, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockSSHServiceIface) GetSSHKeyPairByName(name string, opts ...OptionFun } // GetSSHKeyPairByName indicates an expected call of GetSSHKeyPairByName. -func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSSHKeyPairByName", reflect.TypeOf((*MockSSHServiceIface)(nil).GetSSHKeyPairByName), varargs...) } // GetSSHKeyPairID mocks base method. func (m *MockSSHServiceIface) GetSSHKeyPairID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockSSHServiceIface) GetSSHKeyPairID(name string, opts ...OptionFunc) ( } // GetSSHKeyPairID indicates an expected call of GetSSHKeyPairID. -func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) GetSSHKeyPairID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSSHKeyPairID", reflect.TypeOf((*MockSSHServiceIface)(nil).GetSSHKeyPairID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockSSHServiceIface) ListSSHKeyPairs(p *ListSSHKeyPairsParams) (*ListSS } // ListSSHKeyPairs indicates an expected call of ListSSHKeyPairs. -func (mr *MockSSHServiceIfaceMockRecorder) ListSSHKeyPairs(p interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) ListSSHKeyPairs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSSHKeyPairs", reflect.TypeOf((*MockSSHServiceIface)(nil).ListSSHKeyPairs), p) } @@ -169,7 +175,7 @@ func (m *MockSSHServiceIface) NewCreateSSHKeyPairParams(name string) *CreateSSHK } // NewCreateSSHKeyPairParams indicates an expected call of NewCreateSSHKeyPairParams. -func (mr *MockSSHServiceIfaceMockRecorder) NewCreateSSHKeyPairParams(name interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) NewCreateSSHKeyPairParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSSHKeyPairParams", reflect.TypeOf((*MockSSHServiceIface)(nil).NewCreateSSHKeyPairParams), name) } @@ -183,7 +189,7 @@ func (m *MockSSHServiceIface) NewDeleteSSHKeyPairParams(name string) *DeleteSSHK } // NewDeleteSSHKeyPairParams indicates an expected call of NewDeleteSSHKeyPairParams. -func (mr *MockSSHServiceIfaceMockRecorder) NewDeleteSSHKeyPairParams(name interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) NewDeleteSSHKeyPairParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteSSHKeyPairParams", reflect.TypeOf((*MockSSHServiceIface)(nil).NewDeleteSSHKeyPairParams), name) } @@ -211,7 +217,7 @@ func (m *MockSSHServiceIface) NewRegisterSSHKeyPairParams(name, publickey string } // NewRegisterSSHKeyPairParams indicates an expected call of NewRegisterSSHKeyPairParams. -func (mr *MockSSHServiceIfaceMockRecorder) NewRegisterSSHKeyPairParams(name, publickey interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) NewRegisterSSHKeyPairParams(name, publickey any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterSSHKeyPairParams", reflect.TypeOf((*MockSSHServiceIface)(nil).NewRegisterSSHKeyPairParams), name, publickey) } @@ -225,7 +231,7 @@ func (m *MockSSHServiceIface) NewResetSSHKeyForVirtualMachineParams(id string) * } // NewResetSSHKeyForVirtualMachineParams indicates an expected call of NewResetSSHKeyForVirtualMachineParams. -func (mr *MockSSHServiceIfaceMockRecorder) NewResetSSHKeyForVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) NewResetSSHKeyForVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResetSSHKeyForVirtualMachineParams", reflect.TypeOf((*MockSSHServiceIface)(nil).NewResetSSHKeyForVirtualMachineParams), id) } @@ -240,7 +246,7 @@ func (m *MockSSHServiceIface) RegisterSSHKeyPair(p *RegisterSSHKeyPairParams) (* } // RegisterSSHKeyPair indicates an expected call of RegisterSSHKeyPair. -func (mr *MockSSHServiceIfaceMockRecorder) RegisterSSHKeyPair(p interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) RegisterSSHKeyPair(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterSSHKeyPair", reflect.TypeOf((*MockSSHServiceIface)(nil).RegisterSSHKeyPair), p) } @@ -255,7 +261,7 @@ func (m *MockSSHServiceIface) ResetSSHKeyForVirtualMachine(p *ResetSSHKeyForVirt } // ResetSSHKeyForVirtualMachine indicates an expected call of ResetSSHKeyForVirtualMachine. -func (mr *MockSSHServiceIfaceMockRecorder) ResetSSHKeyForVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockSSHServiceIfaceMockRecorder) ResetSSHKeyForVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetSSHKeyForVirtualMachine", reflect.TypeOf((*MockSSHServiceIface)(nil).ResetSSHKeyForVirtualMachine), p) } diff --git a/cloudstack/SecurityGroupService.go b/cloudstack/SecurityGroupService.go index dcc09d0b..29905cf8 100644 --- a/cloudstack/SecurityGroupService.go +++ b/cloudstack/SecurityGroupService.go @@ -77,6 +77,8 @@ type SecurityGroupServiceIface interface { NewRevokeSecurityGroupEgressParams(id string) *RevokeSecurityGroupEgressParams RevokeSecurityGroupIngress(p *RevokeSecurityGroupIngressParams) (*RevokeSecurityGroupIngressResponse, error) NewRevokeSecurityGroupIngressParams(id string) *RevokeSecurityGroupIngressParams + UpdateSecurityGroup(p *UpdateSecurityGroupParams) (*UpdateSecurityGroupResponse, error) + NewUpdateSecurityGroupParams(id string) *UpdateSecurityGroupParams } type AuthorizeSecurityGroupEgressParams struct { @@ -1818,3 +1820,146 @@ type RevokeSecurityGroupIngressResponse struct { Jobstatus int `json:"jobstatus"` Success bool `json:"success"` } + +type UpdateSecurityGroupParams struct { + p map[string]interface{} +} + +func (p *UpdateSecurityGroupParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["customid"]; found { + u.Set("customid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + return u +} + +func (p *UpdateSecurityGroupParams) SetCustomid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["customid"] = v +} + +func (p *UpdateSecurityGroupParams) ResetCustomid() { + if p.p != nil && p.p["customid"] != nil { + delete(p.p, "customid") + } +} + +func (p *UpdateSecurityGroupParams) GetCustomid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["customid"].(string) + return value, ok +} + +func (p *UpdateSecurityGroupParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateSecurityGroupParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateSecurityGroupParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateSecurityGroupParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *UpdateSecurityGroupParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *UpdateSecurityGroupParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +// You should always use this function to get a new UpdateSecurityGroupParams instance, +// as then you are sure you have configured all required params +func (s *SecurityGroupService) NewUpdateSecurityGroupParams(id string) *UpdateSecurityGroupParams { + p := &UpdateSecurityGroupParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Updates a security group +func (s *SecurityGroupService) UpdateSecurityGroup(p *UpdateSecurityGroupParams) (*UpdateSecurityGroupResponse, error) { + resp, err := s.cs.newRequest("updateSecurityGroup", p.toURLValues()) + if err != nil { + return nil, err + } + + var nested struct { + Response UpdateSecurityGroupResponse `json:"securitygroup"` + } + if err := json.Unmarshal(resp, &nested); err != nil { + return nil, err + } + r := nested.Response + + return &r, nil +} + +type UpdateSecurityGroupResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressrule []UpdateSecurityGroupResponseRule `json:"egressrule"` + Id string `json:"id"` + Ingressrule []UpdateSecurityGroupResponseRule `json:"ingressrule"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Tags []Tags `json:"tags"` + Virtualmachinecount int `json:"virtualmachinecount"` + Virtualmachineids []interface{} `json:"virtualmachineids"` +} + +type UpdateSecurityGroupResponseRule struct { + Account string `json:"account"` + Cidr string `json:"cidr"` + Endport int `json:"endport"` + Icmpcode int `json:"icmpcode"` + Icmptype int `json:"icmptype"` + Protocol string `json:"protocol"` + Ruleid string `json:"ruleid"` + Securitygroupname string `json:"securitygroupname"` + Startport int `json:"startport"` + Tags []Tags `json:"tags"` +} diff --git a/cloudstack/SecurityGroupService_mock.go b/cloudstack/SecurityGroupService_mock.go index 2d8558c7..19328339 100644 --- a/cloudstack/SecurityGroupService_mock.go +++ b/cloudstack/SecurityGroupService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/SecurityGroupService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SecurityGroupService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SecurityGroupService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockSecurityGroupServiceIface is a mock of SecurityGroupServiceIface interface. type MockSecurityGroupServiceIface struct { ctrl *gomock.Controller recorder *MockSecurityGroupServiceIfaceMockRecorder + isgomock struct{} } // MockSecurityGroupServiceIfaceMockRecorder is the mock recorder for MockSecurityGroupServiceIface. @@ -62,7 +68,7 @@ func (m *MockSecurityGroupServiceIface) AuthorizeSecurityGroupEgress(p *Authoriz } // AuthorizeSecurityGroupEgress indicates an expected call of AuthorizeSecurityGroupEgress. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) AuthorizeSecurityGroupEgress(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) AuthorizeSecurityGroupEgress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AuthorizeSecurityGroupEgress", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).AuthorizeSecurityGroupEgress), p) } @@ -77,7 +83,7 @@ func (m *MockSecurityGroupServiceIface) AuthorizeSecurityGroupIngress(p *Authori } // AuthorizeSecurityGroupIngress indicates an expected call of AuthorizeSecurityGroupIngress. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) AuthorizeSecurityGroupIngress(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) AuthorizeSecurityGroupIngress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AuthorizeSecurityGroupIngress", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).AuthorizeSecurityGroupIngress), p) } @@ -92,7 +98,7 @@ func (m *MockSecurityGroupServiceIface) CreateSecurityGroup(p *CreateSecurityGro } // CreateSecurityGroup indicates an expected call of CreateSecurityGroup. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) CreateSecurityGroup(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) CreateSecurityGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroup", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).CreateSecurityGroup), p) } @@ -107,7 +113,7 @@ func (m *MockSecurityGroupServiceIface) DeleteSecurityGroup(p *DeleteSecurityGro } // DeleteSecurityGroup indicates an expected call of DeleteSecurityGroup. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) DeleteSecurityGroup(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) DeleteSecurityGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroup", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).DeleteSecurityGroup), p) } @@ -115,7 +121,7 @@ func (mr *MockSecurityGroupServiceIfaceMockRecorder) DeleteSecurityGroup(p inter // GetSecurityGroupByID mocks base method. func (m *MockSecurityGroupServiceIface) GetSecurityGroupByID(id string, opts ...OptionFunc) (*SecurityGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +133,16 @@ func (m *MockSecurityGroupServiceIface) GetSecurityGroupByID(id string, opts ... } // GetSecurityGroupByID indicates an expected call of GetSecurityGroupByID. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) GetSecurityGroupByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) GetSecurityGroupByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupByID", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).GetSecurityGroupByID), varargs...) } // GetSecurityGroupByName mocks base method. func (m *MockSecurityGroupServiceIface) GetSecurityGroupByName(name string, opts ...OptionFunc) (*SecurityGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -148,16 +154,16 @@ func (m *MockSecurityGroupServiceIface) GetSecurityGroupByName(name string, opts } // GetSecurityGroupByName indicates an expected call of GetSecurityGroupByName. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) GetSecurityGroupByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) GetSecurityGroupByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupByName", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).GetSecurityGroupByName), varargs...) } // GetSecurityGroupID mocks base method. func (m *MockSecurityGroupServiceIface) GetSecurityGroupID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -169,9 +175,9 @@ func (m *MockSecurityGroupServiceIface) GetSecurityGroupID(keyword string, opts } // GetSecurityGroupID indicates an expected call of GetSecurityGroupID. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) GetSecurityGroupID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) GetSecurityGroupID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupID", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).GetSecurityGroupID), varargs...) } @@ -185,7 +191,7 @@ func (m *MockSecurityGroupServiceIface) ListSecurityGroups(p *ListSecurityGroups } // ListSecurityGroups indicates an expected call of ListSecurityGroups. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) ListSecurityGroups(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) ListSecurityGroups(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroups", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).ListSecurityGroups), p) } @@ -227,7 +233,7 @@ func (m *MockSecurityGroupServiceIface) NewCreateSecurityGroupParams(name string } // NewCreateSecurityGroupParams indicates an expected call of NewCreateSecurityGroupParams. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewCreateSecurityGroupParams(name interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewCreateSecurityGroupParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSecurityGroupParams", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).NewCreateSecurityGroupParams), name) } @@ -269,7 +275,7 @@ func (m *MockSecurityGroupServiceIface) NewRevokeSecurityGroupEgressParams(id st } // NewRevokeSecurityGroupEgressParams indicates an expected call of NewRevokeSecurityGroupEgressParams. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewRevokeSecurityGroupEgressParams(id interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewRevokeSecurityGroupEgressParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRevokeSecurityGroupEgressParams", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).NewRevokeSecurityGroupEgressParams), id) } @@ -283,11 +289,25 @@ func (m *MockSecurityGroupServiceIface) NewRevokeSecurityGroupIngressParams(id s } // NewRevokeSecurityGroupIngressParams indicates an expected call of NewRevokeSecurityGroupIngressParams. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewRevokeSecurityGroupIngressParams(id interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewRevokeSecurityGroupIngressParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRevokeSecurityGroupIngressParams", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).NewRevokeSecurityGroupIngressParams), id) } +// NewUpdateSecurityGroupParams mocks base method. +func (m *MockSecurityGroupServiceIface) NewUpdateSecurityGroupParams(id string) *UpdateSecurityGroupParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateSecurityGroupParams", id) + ret0, _ := ret[0].(*UpdateSecurityGroupParams) + return ret0 +} + +// NewUpdateSecurityGroupParams indicates an expected call of NewUpdateSecurityGroupParams. +func (mr *MockSecurityGroupServiceIfaceMockRecorder) NewUpdateSecurityGroupParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateSecurityGroupParams", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).NewUpdateSecurityGroupParams), id) +} + // RevokeSecurityGroupEgress mocks base method. func (m *MockSecurityGroupServiceIface) RevokeSecurityGroupEgress(p *RevokeSecurityGroupEgressParams) (*RevokeSecurityGroupEgressResponse, error) { m.ctrl.T.Helper() @@ -298,7 +318,7 @@ func (m *MockSecurityGroupServiceIface) RevokeSecurityGroupEgress(p *RevokeSecur } // RevokeSecurityGroupEgress indicates an expected call of RevokeSecurityGroupEgress. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) RevokeSecurityGroupEgress(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) RevokeSecurityGroupEgress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevokeSecurityGroupEgress", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).RevokeSecurityGroupEgress), p) } @@ -313,7 +333,22 @@ func (m *MockSecurityGroupServiceIface) RevokeSecurityGroupIngress(p *RevokeSecu } // RevokeSecurityGroupIngress indicates an expected call of RevokeSecurityGroupIngress. -func (mr *MockSecurityGroupServiceIfaceMockRecorder) RevokeSecurityGroupIngress(p interface{}) *gomock.Call { +func (mr *MockSecurityGroupServiceIfaceMockRecorder) RevokeSecurityGroupIngress(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevokeSecurityGroupIngress", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).RevokeSecurityGroupIngress), p) } + +// UpdateSecurityGroup mocks base method. +func (m *MockSecurityGroupServiceIface) UpdateSecurityGroup(p *UpdateSecurityGroupParams) (*UpdateSecurityGroupResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateSecurityGroup", p) + ret0, _ := ret[0].(*UpdateSecurityGroupResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateSecurityGroup indicates an expected call of UpdateSecurityGroup. +func (mr *MockSecurityGroupServiceIfaceMockRecorder) UpdateSecurityGroup(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecurityGroup", reflect.TypeOf((*MockSecurityGroupServiceIface)(nil).UpdateSecurityGroup), p) +} diff --git a/cloudstack/ServiceOfferingService_mock.go b/cloudstack/ServiceOfferingService_mock.go index b728d99b..24edb25d 100644 --- a/cloudstack/ServiceOfferingService_mock.go +++ b/cloudstack/ServiceOfferingService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ServiceOfferingService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ServiceOfferingService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ServiceOfferingService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockServiceOfferingServiceIface is a mock of ServiceOfferingServiceIface interface. type MockServiceOfferingServiceIface struct { ctrl *gomock.Controller recorder *MockServiceOfferingServiceIfaceMockRecorder + isgomock struct{} } // MockServiceOfferingServiceIfaceMockRecorder is the mock recorder for MockServiceOfferingServiceIface. @@ -62,7 +68,7 @@ func (m *MockServiceOfferingServiceIface) CreateServiceOffering(p *CreateService } // CreateServiceOffering indicates an expected call of CreateServiceOffering. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) CreateServiceOffering(p interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) CreateServiceOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServiceOffering", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).CreateServiceOffering), p) } @@ -77,7 +83,7 @@ func (m *MockServiceOfferingServiceIface) DeleteServiceOffering(p *DeleteService } // DeleteServiceOffering indicates an expected call of DeleteServiceOffering. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) DeleteServiceOffering(p interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) DeleteServiceOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServiceOffering", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).DeleteServiceOffering), p) } @@ -85,7 +91,7 @@ func (mr *MockServiceOfferingServiceIfaceMockRecorder) DeleteServiceOffering(p i // GetServiceOfferingByID mocks base method. func (m *MockServiceOfferingServiceIface) GetServiceOfferingByID(id string, opts ...OptionFunc) (*ServiceOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockServiceOfferingServiceIface) GetServiceOfferingByID(id string, opts } // GetServiceOfferingByID indicates an expected call of GetServiceOfferingByID. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) GetServiceOfferingByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) GetServiceOfferingByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServiceOfferingByID", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).GetServiceOfferingByID), varargs...) } // GetServiceOfferingByName mocks base method. func (m *MockServiceOfferingServiceIface) GetServiceOfferingByName(name string, opts ...OptionFunc) (*ServiceOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockServiceOfferingServiceIface) GetServiceOfferingByName(name string, } // GetServiceOfferingByName indicates an expected call of GetServiceOfferingByName. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) GetServiceOfferingByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) GetServiceOfferingByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServiceOfferingByName", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).GetServiceOfferingByName), varargs...) } // GetServiceOfferingID mocks base method. func (m *MockServiceOfferingServiceIface) GetServiceOfferingID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockServiceOfferingServiceIface) GetServiceOfferingID(name string, opts } // GetServiceOfferingID indicates an expected call of GetServiceOfferingID. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) GetServiceOfferingID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) GetServiceOfferingID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServiceOfferingID", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).GetServiceOfferingID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockServiceOfferingServiceIface) ListServiceOfferings(p *ListServiceOff } // ListServiceOfferings indicates an expected call of ListServiceOfferings. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) ListServiceOfferings(p interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) ListServiceOfferings(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServiceOfferings", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).ListServiceOfferings), p) } @@ -169,7 +175,7 @@ func (m *MockServiceOfferingServiceIface) NewCreateServiceOfferingParams(display } // NewCreateServiceOfferingParams indicates an expected call of NewCreateServiceOfferingParams. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) NewCreateServiceOfferingParams(displaytext, name interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) NewCreateServiceOfferingParams(displaytext, name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateServiceOfferingParams", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).NewCreateServiceOfferingParams), displaytext, name) } @@ -183,7 +189,7 @@ func (m *MockServiceOfferingServiceIface) NewDeleteServiceOfferingParams(id stri } // NewDeleteServiceOfferingParams indicates an expected call of NewDeleteServiceOfferingParams. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) NewDeleteServiceOfferingParams(id interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) NewDeleteServiceOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteServiceOfferingParams", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).NewDeleteServiceOfferingParams), id) } @@ -211,7 +217,7 @@ func (m *MockServiceOfferingServiceIface) NewUpdateServiceOfferingParams(id stri } // NewUpdateServiceOfferingParams indicates an expected call of NewUpdateServiceOfferingParams. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) NewUpdateServiceOfferingParams(id interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) NewUpdateServiceOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateServiceOfferingParams", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).NewUpdateServiceOfferingParams), id) } @@ -226,7 +232,7 @@ func (m *MockServiceOfferingServiceIface) UpdateServiceOffering(p *UpdateService } // UpdateServiceOffering indicates an expected call of UpdateServiceOffering. -func (mr *MockServiceOfferingServiceIfaceMockRecorder) UpdateServiceOffering(p interface{}) *gomock.Call { +func (mr *MockServiceOfferingServiceIfaceMockRecorder) UpdateServiceOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServiceOffering", reflect.TypeOf((*MockServiceOfferingServiceIface)(nil).UpdateServiceOffering), p) } diff --git a/cloudstack/SharedFileSystemService.go b/cloudstack/SharedFileSystemService.go new file mode 100644 index 00000000..e5714ce5 --- /dev/null +++ b/cloudstack/SharedFileSystemService.go @@ -0,0 +1,2412 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" +) + +type SharedFileSystemServiceIface interface { + ChangeSharedFileSystemDiskOffering(p *ChangeSharedFileSystemDiskOfferingParams) (*ChangeSharedFileSystemDiskOfferingResponse, error) + NewChangeSharedFileSystemDiskOfferingParams(id string) *ChangeSharedFileSystemDiskOfferingParams + ChangeSharedFileSystemServiceOffering(p *ChangeSharedFileSystemServiceOfferingParams) (*ChangeSharedFileSystemServiceOfferingResponse, error) + NewChangeSharedFileSystemServiceOfferingParams(id string, serviceofferingid string) *ChangeSharedFileSystemServiceOfferingParams + CreateSharedFileSystem(p *CreateSharedFileSystemParams) (*CreateSharedFileSystemResponse, error) + NewCreateSharedFileSystemParams(diskofferingid string, filesystem string, name string, networkid string, serviceofferingid string, zoneid string) *CreateSharedFileSystemParams + DestroySharedFileSystem(p *DestroySharedFileSystemParams) (*DestroySharedFileSystemResponse, error) + NewDestroySharedFileSystemParams() *DestroySharedFileSystemParams + ExpungeSharedFileSystem(p *ExpungeSharedFileSystemParams) (*ExpungeSharedFileSystemResponse, error) + NewExpungeSharedFileSystemParams() *ExpungeSharedFileSystemParams + ListSharedFileSystemProviders(p *ListSharedFileSystemProvidersParams) (*ListSharedFileSystemProvidersResponse, error) + NewListSharedFileSystemProvidersParams() *ListSharedFileSystemProvidersParams + ListSharedFileSystems(p *ListSharedFileSystemsParams) (*ListSharedFileSystemsResponse, error) + NewListSharedFileSystemsParams() *ListSharedFileSystemsParams + GetSharedFileSystemID(name string, opts ...OptionFunc) (string, int, error) + GetSharedFileSystemByName(name string, opts ...OptionFunc) (*SharedFileSystem, int, error) + GetSharedFileSystemByID(id string, opts ...OptionFunc) (*SharedFileSystem, int, error) + RecoverSharedFileSystem(p *RecoverSharedFileSystemParams) (*RecoverSharedFileSystemResponse, error) + NewRecoverSharedFileSystemParams() *RecoverSharedFileSystemParams + RestartSharedFileSystem(p *RestartSharedFileSystemParams) (*RestartSharedFileSystemResponse, error) + NewRestartSharedFileSystemParams(id string) *RestartSharedFileSystemParams + StartSharedFileSystem(p *StartSharedFileSystemParams) (*StartSharedFileSystemResponse, error) + NewStartSharedFileSystemParams(id string) *StartSharedFileSystemParams + StopSharedFileSystem(p *StopSharedFileSystemParams) (*StopSharedFileSystemResponse, error) + NewStopSharedFileSystemParams(id string) *StopSharedFileSystemParams + UpdateSharedFileSystem(p *UpdateSharedFileSystemParams) (*UpdateSharedFileSystemResponse, error) + NewUpdateSharedFileSystemParams(id string) *UpdateSharedFileSystemParams +} + +type ChangeSharedFileSystemDiskOfferingParams struct { + p map[string]interface{} +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["maxiops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("maxiops", vv) + } + if v, found := p.p["miniops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("miniops", vv) + } + if v, found := p.p["size"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("size", vv) + } + return u +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) SetDiskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["diskofferingid"] = v +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") + } +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) GetDiskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["diskofferingid"].(string) + return value, ok +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) SetMaxiops(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["maxiops"] = v +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) ResetMaxiops() { + if p.p != nil && p.p["maxiops"] != nil { + delete(p.p, "maxiops") + } +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) GetMaxiops() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["maxiops"].(int64) + return value, ok +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) SetMiniops(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["miniops"] = v +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) ResetMiniops() { + if p.p != nil && p.p["miniops"] != nil { + delete(p.p, "miniops") + } +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) GetMiniops() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["miniops"].(int64) + return value, ok +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) SetSize(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["size"] = v +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) ResetSize() { + if p.p != nil && p.p["size"] != nil { + delete(p.p, "size") + } +} + +func (p *ChangeSharedFileSystemDiskOfferingParams) GetSize() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["size"].(int64) + return value, ok +} + +// You should always use this function to get a new ChangeSharedFileSystemDiskOfferingParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewChangeSharedFileSystemDiskOfferingParams(id string) *ChangeSharedFileSystemDiskOfferingParams { + p := &ChangeSharedFileSystemDiskOfferingParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Change Disk offering of a Shared FileSystem +func (s *SharedFileSystemService) ChangeSharedFileSystemDiskOffering(p *ChangeSharedFileSystemDiskOfferingParams) (*ChangeSharedFileSystemDiskOfferingResponse, error) { + resp, err := s.cs.newRequest("changeSharedFileSystemDiskOffering", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ChangeSharedFileSystemDiskOfferingResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ChangeSharedFileSystemDiskOfferingResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ChangeSharedFileSystemServiceOfferingParams struct { + p map[string]interface{} +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) 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["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + return u +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") + } +} + +func (p *ChangeSharedFileSystemServiceOfferingParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +// You should always use this function to get a new ChangeSharedFileSystemServiceOfferingParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewChangeSharedFileSystemServiceOfferingParams(id string, serviceofferingid string) *ChangeSharedFileSystemServiceOfferingParams { + p := &ChangeSharedFileSystemServiceOfferingParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + p.p["serviceofferingid"] = serviceofferingid + return p +} + +// Change Service offering of a Shared FileSystem +func (s *SharedFileSystemService) ChangeSharedFileSystemServiceOffering(p *ChangeSharedFileSystemServiceOfferingParams) (*ChangeSharedFileSystemServiceOfferingResponse, error) { + resp, err := s.cs.newRequest("changeSharedFileSystemServiceOffering", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ChangeSharedFileSystemServiceOfferingResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ChangeSharedFileSystemServiceOfferingResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type CreateSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *CreateSharedFileSystemParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["description"]; found { + u.Set("description", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["filesystem"]; found { + u.Set("filesystem", v.(string)) + } + if v, found := p.p["maxiops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("maxiops", vv) + } + if v, found := p.p["miniops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("miniops", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + if v, found := p.p["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + if v, found := p.p["size"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("size", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *CreateSharedFileSystemParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *CreateSharedFileSystemParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *CreateSharedFileSystemParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetDescription(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["description"] = v +} + +func (p *CreateSharedFileSystemParams) ResetDescription() { + if p.p != nil && p.p["description"] != nil { + delete(p.p, "description") + } +} + +func (p *CreateSharedFileSystemParams) GetDescription() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["description"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetDiskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["diskofferingid"] = v +} + +func (p *CreateSharedFileSystemParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") + } +} + +func (p *CreateSharedFileSystemParams) GetDiskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["diskofferingid"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *CreateSharedFileSystemParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *CreateSharedFileSystemParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetFilesystem(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["filesystem"] = v +} + +func (p *CreateSharedFileSystemParams) ResetFilesystem() { + if p.p != nil && p.p["filesystem"] != nil { + delete(p.p, "filesystem") + } +} + +func (p *CreateSharedFileSystemParams) GetFilesystem() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["filesystem"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetMaxiops(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["maxiops"] = v +} + +func (p *CreateSharedFileSystemParams) ResetMaxiops() { + if p.p != nil && p.p["maxiops"] != nil { + delete(p.p, "maxiops") + } +} + +func (p *CreateSharedFileSystemParams) GetMaxiops() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["maxiops"].(int64) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetMiniops(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["miniops"] = v +} + +func (p *CreateSharedFileSystemParams) ResetMiniops() { + if p.p != nil && p.p["miniops"] != nil { + delete(p.p, "miniops") + } +} + +func (p *CreateSharedFileSystemParams) GetMiniops() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["miniops"].(int64) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *CreateSharedFileSystemParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *CreateSharedFileSystemParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *CreateSharedFileSystemParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *CreateSharedFileSystemParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *CreateSharedFileSystemParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *CreateSharedFileSystemParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *CreateSharedFileSystemParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *CreateSharedFileSystemParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v +} + +func (p *CreateSharedFileSystemParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") + } +} + +func (p *CreateSharedFileSystemParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetSize(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["size"] = v +} + +func (p *CreateSharedFileSystemParams) ResetSize() { + if p.p != nil && p.p["size"] != nil { + delete(p.p, "size") + } +} + +func (p *CreateSharedFileSystemParams) GetSize() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["size"].(int64) + return value, ok +} + +func (p *CreateSharedFileSystemParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *CreateSharedFileSystemParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *CreateSharedFileSystemParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new CreateSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewCreateSharedFileSystemParams(diskofferingid string, filesystem string, name string, networkid string, serviceofferingid string, zoneid string) *CreateSharedFileSystemParams { + p := &CreateSharedFileSystemParams{} + p.p = make(map[string]interface{}) + p.p["diskofferingid"] = diskofferingid + p.p["filesystem"] = filesystem + p.p["name"] = name + p.p["networkid"] = networkid + p.p["serviceofferingid"] = serviceofferingid + p.p["zoneid"] = zoneid + return p +} + +// Create a new Shared File System of specified size and disk offering, attached to the given network +func (s *SharedFileSystemService) CreateSharedFileSystem(p *CreateSharedFileSystemParams) (*CreateSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("createSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateSharedFileSystemResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type DestroySharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *DestroySharedFileSystemParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["expunge"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("expunge", 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)) + } + return u +} + +func (p *DestroySharedFileSystemParams) SetExpunge(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["expunge"] = v +} + +func (p *DestroySharedFileSystemParams) ResetExpunge() { + if p.p != nil && p.p["expunge"] != nil { + delete(p.p, "expunge") + } +} + +func (p *DestroySharedFileSystemParams) GetExpunge() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["expunge"].(bool) + return value, ok +} + +func (p *DestroySharedFileSystemParams) SetForced(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forced"] = v +} + +func (p *DestroySharedFileSystemParams) ResetForced() { + if p.p != nil && p.p["forced"] != nil { + delete(p.p, "forced") + } +} + +func (p *DestroySharedFileSystemParams) GetForced() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forced"].(bool) + return value, ok +} + +func (p *DestroySharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DestroySharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DestroySharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DestroySharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewDestroySharedFileSystemParams() *DestroySharedFileSystemParams { + p := &DestroySharedFileSystemParams{} + p.p = make(map[string]interface{}) + return p +} + +// Destroy a Shared FileSystem by id +func (s *SharedFileSystemService) DestroySharedFileSystem(p *DestroySharedFileSystemParams) (*DestroySharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("destroySharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DestroySharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DestroySharedFileSystemResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ExpungeSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *ExpungeSharedFileSystemParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *ExpungeSharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ExpungeSharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ExpungeSharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new ExpungeSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewExpungeSharedFileSystemParams() *ExpungeSharedFileSystemParams { + p := &ExpungeSharedFileSystemParams{} + p.p = make(map[string]interface{}) + return p +} + +// Expunge a Shared FileSystem by id +func (s *SharedFileSystemService) ExpungeSharedFileSystem(p *ExpungeSharedFileSystemParams) (*ExpungeSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("expungeSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ExpungeSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ExpungeSharedFileSystemResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ListSharedFileSystemProvidersParams struct { + p map[string]interface{} +} + +func (p *ListSharedFileSystemProvidersParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + return u +} + +func (p *ListSharedFileSystemProvidersParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListSharedFileSystemProvidersParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListSharedFileSystemProvidersParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListSharedFileSystemProvidersParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListSharedFileSystemProvidersParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListSharedFileSystemProvidersParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListSharedFileSystemProvidersParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListSharedFileSystemProvidersParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListSharedFileSystemProvidersParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +// You should always use this function to get a new ListSharedFileSystemProvidersParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewListSharedFileSystemProvidersParams() *ListSharedFileSystemProvidersParams { + p := &ListSharedFileSystemProvidersParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists all available shared filesystem providers. +func (s *SharedFileSystemService) ListSharedFileSystemProviders(p *ListSharedFileSystemProvidersParams) (*ListSharedFileSystemProvidersResponse, error) { + resp, err := s.cs.newRequest("listSharedFileSystemProviders", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListSharedFileSystemProvidersResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListSharedFileSystemProvidersResponse struct { + Count int `json:"count"` + SharedFileSystemProviders []*SharedFileSystemProvider `json:"sharedfilesystemprovider"` +} + +type SharedFileSystemProvider struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` +} + +type ListSharedFileSystemsParams struct { + p map[string]interface{} +} + +func (p *ListSharedFileSystemsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["retrieveonlyresourcecount"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("retrieveonlyresourcecount", vv) + } + if v, found := p.p["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListSharedFileSystemsParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListSharedFileSystemsParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListSharedFileSystemsParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetDiskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["diskofferingid"] = v +} + +func (p *ListSharedFileSystemsParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") + } +} + +func (p *ListSharedFileSystemsParams) GetDiskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["diskofferingid"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListSharedFileSystemsParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListSharedFileSystemsParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListSharedFileSystemsParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListSharedFileSystemsParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v +} + +func (p *ListSharedFileSystemsParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } +} + +func (p *ListSharedFileSystemsParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListSharedFileSystemsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListSharedFileSystemsParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listall"] = v +} + +func (p *ListSharedFileSystemsParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") + } +} + +func (p *ListSharedFileSystemsParams) GetListall() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listall"].(bool) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListSharedFileSystemsParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListSharedFileSystemsParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *ListSharedFileSystemsParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *ListSharedFileSystemsParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListSharedFileSystemsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListSharedFileSystemsParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListSharedFileSystemsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListSharedFileSystemsParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *ListSharedFileSystemsParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *ListSharedFileSystemsParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetRetrieveonlyresourcecount(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["retrieveonlyresourcecount"] = v +} + +func (p *ListSharedFileSystemsParams) ResetRetrieveonlyresourcecount() { + if p.p != nil && p.p["retrieveonlyresourcecount"] != nil { + delete(p.p, "retrieveonlyresourcecount") + } +} + +func (p *ListSharedFileSystemsParams) GetRetrieveonlyresourcecount() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["retrieveonlyresourcecount"].(bool) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v +} + +func (p *ListSharedFileSystemsParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") + } +} + +func (p *ListSharedFileSystemsParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetTags(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["tags"] = v +} + +func (p *ListSharedFileSystemsParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") + } +} + +func (p *ListSharedFileSystemsParams) GetTags() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tags"].(map[string]string) + return value, ok +} + +func (p *ListSharedFileSystemsParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListSharedFileSystemsParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListSharedFileSystemsParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListSharedFileSystemsParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewListSharedFileSystemsParams() *ListSharedFileSystemsParams { + p := &ListSharedFileSystemsParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *SharedFileSystemService) GetSharedFileSystemID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListSharedFileSystemsParams{} + 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.ListSharedFileSystems(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.SharedFileSystems[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.SharedFileSystems { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *SharedFileSystemService) GetSharedFileSystemByName(name string, opts ...OptionFunc) (*SharedFileSystem, int, error) { + id, count, err := s.GetSharedFileSystemID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetSharedFileSystemByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *SharedFileSystemService) GetSharedFileSystemByID(id string, opts ...OptionFunc) (*SharedFileSystem, int, error) { + p := &ListSharedFileSystemsParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListSharedFileSystems(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.SharedFileSystems[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for SharedFileSystem UUID: %s!", id) +} + +// List Shared FileSystems +func (s *SharedFileSystemService) ListSharedFileSystems(p *ListSharedFileSystemsParams) (*ListSharedFileSystemsResponse, error) { + resp, err := s.cs.newRequest("listSharedFileSystems", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListSharedFileSystemsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListSharedFileSystemsResponse struct { + Count int `json:"count"` + SharedFileSystems []*SharedFileSystem `json:"sharedfilesystem"` +} + +type SharedFileSystem struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type RecoverSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *RecoverSharedFileSystemParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *RecoverSharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *RecoverSharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *RecoverSharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new RecoverSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewRecoverSharedFileSystemParams() *RecoverSharedFileSystemParams { + p := &RecoverSharedFileSystemParams{} + p.p = make(map[string]interface{}) + return p +} + +// Recover a Shared FileSystem by id +func (s *SharedFileSystemService) RecoverSharedFileSystem(p *RecoverSharedFileSystemParams) (*RecoverSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("recoverSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RecoverSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type RecoverSharedFileSystemResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *RecoverSharedFileSystemResponse) 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 RecoverSharedFileSystemResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type RestartSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *RestartSharedFileSystemParams) toURLValues() url.Values { + u := 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 *RestartSharedFileSystemParams) SetCleanup(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cleanup"] = v +} + +func (p *RestartSharedFileSystemParams) ResetCleanup() { + if p.p != nil && p.p["cleanup"] != nil { + delete(p.p, "cleanup") + } +} + +func (p *RestartSharedFileSystemParams) GetCleanup() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cleanup"].(bool) + return value, ok +} + +func (p *RestartSharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *RestartSharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *RestartSharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new RestartSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewRestartSharedFileSystemParams(id string) *RestartSharedFileSystemParams { + p := &RestartSharedFileSystemParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Restart a Shared FileSystem +func (s *SharedFileSystemService) RestartSharedFileSystem(p *RestartSharedFileSystemParams) (*RestartSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("restartSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RestartSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type RestartSharedFileSystemResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type StartSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *StartSharedFileSystemParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *StartSharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *StartSharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *StartSharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new StartSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewStartSharedFileSystemParams(id string) *StartSharedFileSystemParams { + p := &StartSharedFileSystemParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Start a Shared FileSystem +func (s *SharedFileSystemService) StartSharedFileSystem(p *StartSharedFileSystemParams) (*StartSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("startSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r StartSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type StartSharedFileSystemResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type StopSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *StopSharedFileSystemParams) toURLValues() url.Values { + u := 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 *StopSharedFileSystemParams) SetForced(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forced"] = v +} + +func (p *StopSharedFileSystemParams) ResetForced() { + if p.p != nil && p.p["forced"] != nil { + delete(p.p, "forced") + } +} + +func (p *StopSharedFileSystemParams) GetForced() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forced"].(bool) + return value, ok +} + +func (p *StopSharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *StopSharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *StopSharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new StopSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewStopSharedFileSystemParams(id string) *StopSharedFileSystemParams { + p := &StopSharedFileSystemParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Stop a Shared FileSystem +func (s *SharedFileSystemService) StopSharedFileSystem(p *StopSharedFileSystemParams) (*StopSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("stopSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r StopSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type StopSharedFileSystemResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type UpdateSharedFileSystemParams struct { + p map[string]interface{} +} + +func (p *UpdateSharedFileSystemParams) 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["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + return u +} + +func (p *UpdateSharedFileSystemParams) SetDescription(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["description"] = v +} + +func (p *UpdateSharedFileSystemParams) ResetDescription() { + if p.p != nil && p.p["description"] != nil { + delete(p.p, "description") + } +} + +func (p *UpdateSharedFileSystemParams) GetDescription() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["description"].(string) + return value, ok +} + +func (p *UpdateSharedFileSystemParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateSharedFileSystemParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateSharedFileSystemParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateSharedFileSystemParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *UpdateSharedFileSystemParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *UpdateSharedFileSystemParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +// You should always use this function to get a new UpdateSharedFileSystemParams instance, +// as then you are sure you have configured all required params +func (s *SharedFileSystemService) NewUpdateSharedFileSystemParams(id string) *UpdateSharedFileSystemParams { + p := &UpdateSharedFileSystemParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Update a Shared FileSystem +func (s *SharedFileSystemService) UpdateSharedFileSystem(p *UpdateSharedFileSystemParams) (*UpdateSharedFileSystemResponse, error) { + resp, err := s.cs.newRequest("updateSharedFileSystem", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateSharedFileSystemResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type UpdateSharedFileSystemResponse struct { + Account string `json:"account"` + Description string `json:"description"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Filesystem string `json:"filesystem"` + Hasannotations bool `json:"hasannotations"` + Id string `json:"id"` + Iscustomdiskoffering bool `json:"iscustomdiskoffering"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Networkid string `json:"networkid"` + Networkname string `json:"networkname"` + Nic []Nic `json:"nic"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provider string `json:"provider"` + Provisioningtype string `json:"provisioningtype"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Sizegb string `json:"sizegb"` + State string `json:"state"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Tags []Tags `json:"tags"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmstate string `json:"vmstate"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} diff --git a/cloudstack/SharedFileSystemService_mock.go b/cloudstack/SharedFileSystemService_mock.go new file mode 100644 index 00000000..009d5c4b --- /dev/null +++ b/cloudstack/SharedFileSystemService_mock.go @@ -0,0 +1,470 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/SharedFileSystemService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SharedFileSystemService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SharedFileSystemService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockSharedFileSystemServiceIface is a mock of SharedFileSystemServiceIface interface. +type MockSharedFileSystemServiceIface struct { + ctrl *gomock.Controller + recorder *MockSharedFileSystemServiceIfaceMockRecorder + isgomock struct{} +} + +// MockSharedFileSystemServiceIfaceMockRecorder is the mock recorder for MockSharedFileSystemServiceIface. +type MockSharedFileSystemServiceIfaceMockRecorder struct { + mock *MockSharedFileSystemServiceIface +} + +// NewMockSharedFileSystemServiceIface creates a new mock instance. +func NewMockSharedFileSystemServiceIface(ctrl *gomock.Controller) *MockSharedFileSystemServiceIface { + mock := &MockSharedFileSystemServiceIface{ctrl: ctrl} + mock.recorder = &MockSharedFileSystemServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockSharedFileSystemServiceIface) EXPECT() *MockSharedFileSystemServiceIfaceMockRecorder { + return m.recorder +} + +// ChangeSharedFileSystemDiskOffering mocks base method. +func (m *MockSharedFileSystemServiceIface) ChangeSharedFileSystemDiskOffering(p *ChangeSharedFileSystemDiskOfferingParams) (*ChangeSharedFileSystemDiskOfferingResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChangeSharedFileSystemDiskOffering", p) + ret0, _ := ret[0].(*ChangeSharedFileSystemDiskOfferingResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ChangeSharedFileSystemDiskOffering indicates an expected call of ChangeSharedFileSystemDiskOffering. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) ChangeSharedFileSystemDiskOffering(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeSharedFileSystemDiskOffering", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).ChangeSharedFileSystemDiskOffering), p) +} + +// ChangeSharedFileSystemServiceOffering mocks base method. +func (m *MockSharedFileSystemServiceIface) ChangeSharedFileSystemServiceOffering(p *ChangeSharedFileSystemServiceOfferingParams) (*ChangeSharedFileSystemServiceOfferingResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChangeSharedFileSystemServiceOffering", p) + ret0, _ := ret[0].(*ChangeSharedFileSystemServiceOfferingResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ChangeSharedFileSystemServiceOffering indicates an expected call of ChangeSharedFileSystemServiceOffering. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) ChangeSharedFileSystemServiceOffering(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeSharedFileSystemServiceOffering", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).ChangeSharedFileSystemServiceOffering), p) +} + +// CreateSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) CreateSharedFileSystem(p *CreateSharedFileSystemParams) (*CreateSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateSharedFileSystem", p) + ret0, _ := ret[0].(*CreateSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateSharedFileSystem indicates an expected call of CreateSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) CreateSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).CreateSharedFileSystem), p) +} + +// DestroySharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) DestroySharedFileSystem(p *DestroySharedFileSystemParams) (*DestroySharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DestroySharedFileSystem", p) + ret0, _ := ret[0].(*DestroySharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DestroySharedFileSystem indicates an expected call of DestroySharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) DestroySharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DestroySharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).DestroySharedFileSystem), p) +} + +// ExpungeSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) ExpungeSharedFileSystem(p *ExpungeSharedFileSystemParams) (*ExpungeSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExpungeSharedFileSystem", p) + ret0, _ := ret[0].(*ExpungeSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ExpungeSharedFileSystem indicates an expected call of ExpungeSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) ExpungeSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpungeSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).ExpungeSharedFileSystem), p) +} + +// GetSharedFileSystemByID mocks base method. +func (m *MockSharedFileSystemServiceIface) GetSharedFileSystemByID(id string, opts ...OptionFunc) (*SharedFileSystem, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetSharedFileSystemByID", varargs...) + ret0, _ := ret[0].(*SharedFileSystem) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetSharedFileSystemByID indicates an expected call of GetSharedFileSystemByID. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) GetSharedFileSystemByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSharedFileSystemByID", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).GetSharedFileSystemByID), varargs...) +} + +// GetSharedFileSystemByName mocks base method. +func (m *MockSharedFileSystemServiceIface) GetSharedFileSystemByName(name string, opts ...OptionFunc) (*SharedFileSystem, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetSharedFileSystemByName", varargs...) + ret0, _ := ret[0].(*SharedFileSystem) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetSharedFileSystemByName indicates an expected call of GetSharedFileSystemByName. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) GetSharedFileSystemByName(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSharedFileSystemByName", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).GetSharedFileSystemByName), varargs...) +} + +// GetSharedFileSystemID mocks base method. +func (m *MockSharedFileSystemServiceIface) GetSharedFileSystemID(name string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetSharedFileSystemID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetSharedFileSystemID indicates an expected call of GetSharedFileSystemID. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) GetSharedFileSystemID(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSharedFileSystemID", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).GetSharedFileSystemID), varargs...) +} + +// ListSharedFileSystemProviders mocks base method. +func (m *MockSharedFileSystemServiceIface) ListSharedFileSystemProviders(p *ListSharedFileSystemProvidersParams) (*ListSharedFileSystemProvidersResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListSharedFileSystemProviders", p) + ret0, _ := ret[0].(*ListSharedFileSystemProvidersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListSharedFileSystemProviders indicates an expected call of ListSharedFileSystemProviders. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) ListSharedFileSystemProviders(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSharedFileSystemProviders", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).ListSharedFileSystemProviders), p) +} + +// ListSharedFileSystems mocks base method. +func (m *MockSharedFileSystemServiceIface) ListSharedFileSystems(p *ListSharedFileSystemsParams) (*ListSharedFileSystemsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListSharedFileSystems", p) + ret0, _ := ret[0].(*ListSharedFileSystemsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListSharedFileSystems indicates an expected call of ListSharedFileSystems. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) ListSharedFileSystems(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSharedFileSystems", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).ListSharedFileSystems), p) +} + +// NewChangeSharedFileSystemDiskOfferingParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewChangeSharedFileSystemDiskOfferingParams(id string) *ChangeSharedFileSystemDiskOfferingParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewChangeSharedFileSystemDiskOfferingParams", id) + ret0, _ := ret[0].(*ChangeSharedFileSystemDiskOfferingParams) + return ret0 +} + +// NewChangeSharedFileSystemDiskOfferingParams indicates an expected call of NewChangeSharedFileSystemDiskOfferingParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewChangeSharedFileSystemDiskOfferingParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeSharedFileSystemDiskOfferingParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewChangeSharedFileSystemDiskOfferingParams), id) +} + +// NewChangeSharedFileSystemServiceOfferingParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewChangeSharedFileSystemServiceOfferingParams(id, serviceofferingid string) *ChangeSharedFileSystemServiceOfferingParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewChangeSharedFileSystemServiceOfferingParams", id, serviceofferingid) + ret0, _ := ret[0].(*ChangeSharedFileSystemServiceOfferingParams) + return ret0 +} + +// NewChangeSharedFileSystemServiceOfferingParams indicates an expected call of NewChangeSharedFileSystemServiceOfferingParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewChangeSharedFileSystemServiceOfferingParams(id, serviceofferingid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeSharedFileSystemServiceOfferingParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewChangeSharedFileSystemServiceOfferingParams), id, serviceofferingid) +} + +// NewCreateSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewCreateSharedFileSystemParams(diskofferingid, filesystem, name, networkid, serviceofferingid, zoneid string) *CreateSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateSharedFileSystemParams", diskofferingid, filesystem, name, networkid, serviceofferingid, zoneid) + ret0, _ := ret[0].(*CreateSharedFileSystemParams) + return ret0 +} + +// NewCreateSharedFileSystemParams indicates an expected call of NewCreateSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewCreateSharedFileSystemParams(diskofferingid, filesystem, name, networkid, serviceofferingid, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewCreateSharedFileSystemParams), diskofferingid, filesystem, name, networkid, serviceofferingid, zoneid) +} + +// NewDestroySharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewDestroySharedFileSystemParams() *DestroySharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDestroySharedFileSystemParams") + ret0, _ := ret[0].(*DestroySharedFileSystemParams) + return ret0 +} + +// NewDestroySharedFileSystemParams indicates an expected call of NewDestroySharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewDestroySharedFileSystemParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDestroySharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewDestroySharedFileSystemParams)) +} + +// NewExpungeSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewExpungeSharedFileSystemParams() *ExpungeSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewExpungeSharedFileSystemParams") + ret0, _ := ret[0].(*ExpungeSharedFileSystemParams) + return ret0 +} + +// NewExpungeSharedFileSystemParams indicates an expected call of NewExpungeSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewExpungeSharedFileSystemParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExpungeSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewExpungeSharedFileSystemParams)) +} + +// NewListSharedFileSystemProvidersParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewListSharedFileSystemProvidersParams() *ListSharedFileSystemProvidersParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListSharedFileSystemProvidersParams") + ret0, _ := ret[0].(*ListSharedFileSystemProvidersParams) + return ret0 +} + +// NewListSharedFileSystemProvidersParams indicates an expected call of NewListSharedFileSystemProvidersParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewListSharedFileSystemProvidersParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSharedFileSystemProvidersParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewListSharedFileSystemProvidersParams)) +} + +// NewListSharedFileSystemsParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewListSharedFileSystemsParams() *ListSharedFileSystemsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListSharedFileSystemsParams") + ret0, _ := ret[0].(*ListSharedFileSystemsParams) + return ret0 +} + +// NewListSharedFileSystemsParams indicates an expected call of NewListSharedFileSystemsParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewListSharedFileSystemsParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSharedFileSystemsParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewListSharedFileSystemsParams)) +} + +// NewRecoverSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewRecoverSharedFileSystemParams() *RecoverSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRecoverSharedFileSystemParams") + ret0, _ := ret[0].(*RecoverSharedFileSystemParams) + return ret0 +} + +// NewRecoverSharedFileSystemParams indicates an expected call of NewRecoverSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewRecoverSharedFileSystemParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRecoverSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewRecoverSharedFileSystemParams)) +} + +// NewRestartSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewRestartSharedFileSystemParams(id string) *RestartSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRestartSharedFileSystemParams", id) + ret0, _ := ret[0].(*RestartSharedFileSystemParams) + return ret0 +} + +// NewRestartSharedFileSystemParams indicates an expected call of NewRestartSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewRestartSharedFileSystemParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRestartSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewRestartSharedFileSystemParams), id) +} + +// NewStartSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewStartSharedFileSystemParams(id string) *StartSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewStartSharedFileSystemParams", id) + ret0, _ := ret[0].(*StartSharedFileSystemParams) + return ret0 +} + +// NewStartSharedFileSystemParams indicates an expected call of NewStartSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewStartSharedFileSystemParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewStartSharedFileSystemParams), id) +} + +// NewStopSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewStopSharedFileSystemParams(id string) *StopSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewStopSharedFileSystemParams", id) + ret0, _ := ret[0].(*StopSharedFileSystemParams) + return ret0 +} + +// NewStopSharedFileSystemParams indicates an expected call of NewStopSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewStopSharedFileSystemParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewStopSharedFileSystemParams), id) +} + +// NewUpdateSharedFileSystemParams mocks base method. +func (m *MockSharedFileSystemServiceIface) NewUpdateSharedFileSystemParams(id string) *UpdateSharedFileSystemParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateSharedFileSystemParams", id) + ret0, _ := ret[0].(*UpdateSharedFileSystemParams) + return ret0 +} + +// NewUpdateSharedFileSystemParams indicates an expected call of NewUpdateSharedFileSystemParams. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) NewUpdateSharedFileSystemParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateSharedFileSystemParams", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).NewUpdateSharedFileSystemParams), id) +} + +// RecoverSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) RecoverSharedFileSystem(p *RecoverSharedFileSystemParams) (*RecoverSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RecoverSharedFileSystem", p) + ret0, _ := ret[0].(*RecoverSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RecoverSharedFileSystem indicates an expected call of RecoverSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) RecoverSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoverSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).RecoverSharedFileSystem), p) +} + +// RestartSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) RestartSharedFileSystem(p *RestartSharedFileSystemParams) (*RestartSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RestartSharedFileSystem", p) + ret0, _ := ret[0].(*RestartSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RestartSharedFileSystem indicates an expected call of RestartSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) RestartSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestartSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).RestartSharedFileSystem), p) +} + +// StartSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) StartSharedFileSystem(p *StartSharedFileSystemParams) (*StartSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StartSharedFileSystem", p) + ret0, _ := ret[0].(*StartSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StartSharedFileSystem indicates an expected call of StartSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) StartSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).StartSharedFileSystem), p) +} + +// StopSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) StopSharedFileSystem(p *StopSharedFileSystemParams) (*StopSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StopSharedFileSystem", p) + ret0, _ := ret[0].(*StopSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StopSharedFileSystem indicates an expected call of StopSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) StopSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).StopSharedFileSystem), p) +} + +// UpdateSharedFileSystem mocks base method. +func (m *MockSharedFileSystemServiceIface) UpdateSharedFileSystem(p *UpdateSharedFileSystemParams) (*UpdateSharedFileSystemResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateSharedFileSystem", p) + ret0, _ := ret[0].(*UpdateSharedFileSystemResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateSharedFileSystem indicates an expected call of UpdateSharedFileSystem. +func (mr *MockSharedFileSystemServiceIfaceMockRecorder) UpdateSharedFileSystem(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSharedFileSystem", reflect.TypeOf((*MockSharedFileSystemServiceIface)(nil).UpdateSharedFileSystem), p) +} diff --git a/cloudstack/ShutdownService.go b/cloudstack/ShutdownService.go deleted file mode 100644 index 257ec5c9..00000000 --- a/cloudstack/ShutdownService.go +++ /dev/null @@ -1,101 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -package cloudstack - -import ( - "encoding/json" - "net/url" -) - -type ShutdownServiceIface interface { - ReadyForShutdown(p *ReadyForShutdownParams) (*ReadyForShutdownResponse, error) - NewReadyForShutdownParams() *ReadyForShutdownParams -} - -type ReadyForShutdownParams struct { - p map[string]interface{} -} - -func (p *ReadyForShutdownParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["managementserverid"]; found { - u.Set("managementserverid", v.(string)) - } - return u -} - -func (p *ReadyForShutdownParams) SetManagementserverid(v UUID) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["managementserverid"] = v -} - -func (p *ReadyForShutdownParams) ResetManagementserverid() { - if p.p != nil && p.p["managementserverid"] != nil { - delete(p.p, "managementserverid") - } -} - -func (p *ReadyForShutdownParams) GetManagementserverid() (UUID, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["managementserverid"].(UUID) - return value, ok -} - -// You should always use this function to get a new ReadyForShutdownParams instance, -// as then you are sure you have configured all required params -func (s *ShutdownService) NewReadyForShutdownParams() *ReadyForShutdownParams { - p := &ReadyForShutdownParams{} - p.p = make(map[string]interface{}) - return p -} - -// Returns the status of CloudStack, whether a shutdown has been triggered and if ready to shutdown -func (s *ShutdownService) ReadyForShutdown(p *ReadyForShutdownParams) (*ReadyForShutdownResponse, error) { - resp, err := s.cs.newRequest("readyForShutdown", p.toURLValues()) - if err != nil { - return nil, err - } - - var nested struct { - Response ReadyForShutdownResponse `json:"readyforshutdown"` - } - if err := json.Unmarshal(resp, &nested); err != nil { - return nil, err - } - r := nested.Response - - return &r, nil -} - -type ReadyForShutdownResponse struct { - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Managementserverid UUID `json:"managementserverid"` - Pendingjobscount int64 `json:"pendingjobscount"` - Readyforshutdown bool `json:"readyforshutdown"` - Shutdowntriggered bool `json:"shutdowntriggered"` -} diff --git a/cloudstack/ShutdownService_mock.go b/cloudstack/ShutdownService_mock.go deleted file mode 100644 index 1cdd779e..00000000 --- a/cloudstack/ShutdownService_mock.go +++ /dev/null @@ -1,82 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -// Code generated by MockGen. DO NOT EDIT. -// Source: ./cloudstack/ShutdownService.go - -// Package cloudstack is a generated GoMock package. -package cloudstack - -import ( - reflect "reflect" - - gomock "github.com/golang/mock/gomock" -) - -// MockShutdownServiceIface is a mock of ShutdownServiceIface interface. -type MockShutdownServiceIface struct { - ctrl *gomock.Controller - recorder *MockShutdownServiceIfaceMockRecorder -} - -// MockShutdownServiceIfaceMockRecorder is the mock recorder for MockShutdownServiceIface. -type MockShutdownServiceIfaceMockRecorder struct { - mock *MockShutdownServiceIface -} - -// NewMockShutdownServiceIface creates a new mock instance. -func NewMockShutdownServiceIface(ctrl *gomock.Controller) *MockShutdownServiceIface { - mock := &MockShutdownServiceIface{ctrl: ctrl} - mock.recorder = &MockShutdownServiceIfaceMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockShutdownServiceIface) EXPECT() *MockShutdownServiceIfaceMockRecorder { - return m.recorder -} - -// NewReadyForShutdownParams mocks base method. -func (m *MockShutdownServiceIface) NewReadyForShutdownParams() *ReadyForShutdownParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewReadyForShutdownParams") - ret0, _ := ret[0].(*ReadyForShutdownParams) - return ret0 -} - -// NewReadyForShutdownParams indicates an expected call of NewReadyForShutdownParams. -func (mr *MockShutdownServiceIfaceMockRecorder) NewReadyForShutdownParams() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReadyForShutdownParams", reflect.TypeOf((*MockShutdownServiceIface)(nil).NewReadyForShutdownParams)) -} - -// ReadyForShutdown mocks base method. -func (m *MockShutdownServiceIface) ReadyForShutdown(p *ReadyForShutdownParams) (*ReadyForShutdownResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ReadyForShutdown", p) - ret0, _ := ret[0].(*ReadyForShutdownResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ReadyForShutdown indicates an expected call of ReadyForShutdown. -func (mr *MockShutdownServiceIfaceMockRecorder) ReadyForShutdown(p interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadyForShutdown", reflect.TypeOf((*MockShutdownServiceIface)(nil).ReadyForShutdown), p) -} diff --git a/cloudstack/SnapshotService.go b/cloudstack/SnapshotService.go index bc684030..012ffb03 100644 --- a/cloudstack/SnapshotService.go +++ b/cloudstack/SnapshotService.go @@ -28,8 +28,14 @@ import ( ) type SnapshotServiceIface interface { + ArchiveSnapshot(p *ArchiveSnapshotParams) (*ArchiveSnapshotResponse, error) + NewArchiveSnapshotParams(id string) *ArchiveSnapshotParams + CopySnapshot(p *CopySnapshotParams) (*CopySnapshotResponse, error) + NewCopySnapshotParams(id string) *CopySnapshotParams CreateSnapshot(p *CreateSnapshotParams) (*CreateSnapshotResponse, error) NewCreateSnapshotParams(volumeid string) *CreateSnapshotParams + CreateSnapshotFromVMSnapshot(p *CreateSnapshotFromVMSnapshotParams) (*CreateSnapshotFromVMSnapshotResponse, error) + NewCreateSnapshotFromVMSnapshotParams(vmsnapshotid string, volumeid string) *CreateSnapshotFromVMSnapshotParams CreateSnapshotPolicy(p *CreateSnapshotPolicyParams) (*CreateSnapshotPolicyResponse, error) NewCreateSnapshotPolicyParams(intervaltype string, maxsnaps int, schedule string, timezone string, volumeid string) *CreateSnapshotPolicyParams CreateVMSnapshot(p *CreateVMSnapshotParams) (*CreateVMSnapshotResponse, error) @@ -40,6 +46,8 @@ type SnapshotServiceIface interface { NewDeleteSnapshotPoliciesParams() *DeleteSnapshotPoliciesParams DeleteVMSnapshot(p *DeleteVMSnapshotParams) (*DeleteVMSnapshotResponse, error) NewDeleteVMSnapshotParams(vmsnapshotid string) *DeleteVMSnapshotParams + ExtractSnapshot(p *ExtractSnapshotParams) (*ExtractSnapshotResponse, error) + NewExtractSnapshotParams(id string, zoneid string) *ExtractSnapshotParams ListSnapshotPolicies(p *ListSnapshotPoliciesParams) (*ListSnapshotPoliciesResponse, error) NewListSnapshotPoliciesParams() *ListSnapshotPoliciesParams GetSnapshotPolicyByID(id string, opts ...OptionFunc) (*SnapshotPolicy, int, error) @@ -59,153 +67,769 @@ type SnapshotServiceIface interface { NewUpdateSnapshotPolicyParams() *UpdateSnapshotPolicyParams } -type CreateSnapshotParams struct { +type ArchiveSnapshotParams struct { p map[string]interface{} } -func (p *CreateSnapshotParams) toURLValues() url.Values { +func (p *ArchiveSnapshotParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } - if v, found := p.p["asyncbackup"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("asyncbackup", vv) + return u +} + +func (p *ArchiveSnapshotParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) + p.p["id"] = v +} + +func (p *ArchiveSnapshotParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } - if v, found := p.p["locationtype"]; found { - u.Set("locationtype", v.(string)) +} + +func (p *ArchiveSnapshotParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new ArchiveSnapshotParams instance, +// as then you are sure you have configured all required params +func (s *SnapshotService) NewArchiveSnapshotParams(id string) *ArchiveSnapshotParams { + p := &ArchiveSnapshotParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Archives (moves) a snapshot on primary storage to secondary storage +func (s *SnapshotService) ArchiveSnapshot(p *ArchiveSnapshotParams) (*ArchiveSnapshotResponse, error) { + resp, err := s.cs.newRequest("archiveSnapshot", p.toURLValues()) + if err != nil { + return nil, err } - if v, found := p.p["policyid"]; found { - u.Set("policyid", v.(string)) + + var r ArchiveSnapshotResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } - if v, found := p.p["quiescevm"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("quiescevm", vv) + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } } - if v, found := p.p["tags"]; found { - m := v.(map[string]string) - for i, k := range getSortedKeysFromMap(m) { - u.Set(fmt.Sprintf("tags[%d].key", i), k) - u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + + return &r, nil +} + +type ArchiveSnapshotResponse struct { + Account string `json:"account"` + Created string `json:"created"` + Datastoreid string `json:"datastoreid"` + Datastorename string `json:"datastorename"` + Datastorestate string `json:"datastorestate"` + Datastoretype string `json:"datastoretype"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Downloaddetails map[string]string `json:"downloaddetails"` + 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"` + Status string `json:"status"` + Tags []Tags `json:"tags"` + Virtualsize int64 `json:"virtualsize"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Volumestate string `json:"volumestate"` + Volumetype string `json:"volumetype"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +func (r *ArchiveSnapshotResponse) 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 v, found := p.p["volumeid"]; found { - u.Set("volumeid", v.(string)) + + if ostypeid, ok := m["ostypeid"].(float64); ok { + m["ostypeid"] = strconv.Itoa(int(ostypeid)) + b, err = json.Marshal(m) + if err != nil { + return err + } } - if v, found := p.p["zoneids"]; found { + + type alias ArchiveSnapshotResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type CopySnapshotParams struct { + p map[string]interface{} +} + +func (p *CopySnapshotParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["destzoneid"]; found { + u.Set("destzoneid", v.(string)) + } + if v, found := p.p["destzoneids"]; found { vv := strings.Join(v.([]string), ",") - u.Set("zoneids", vv) + u.Set("destzoneids", vv) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["sourcezoneid"]; found { + u.Set("sourcezoneid", v.(string)) } return u } -func (p *CreateSnapshotParams) SetAccount(v string) { +func (p *CopySnapshotParams) SetDestzoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["account"] = v + p.p["destzoneid"] = v } -func (p *CreateSnapshotParams) ResetAccount() { - if p.p != nil && p.p["account"] != nil { - delete(p.p, "account") +func (p *CopySnapshotParams) ResetDestzoneid() { + if p.p != nil && p.p["destzoneid"] != nil { + delete(p.p, "destzoneid") } } -func (p *CreateSnapshotParams) GetAccount() (string, bool) { +func (p *CopySnapshotParams) GetDestzoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["account"].(string) + value, ok := p.p["destzoneid"].(string) return value, ok } -func (p *CreateSnapshotParams) SetAsyncbackup(v bool) { +func (p *CopySnapshotParams) SetDestzoneids(v []string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["asyncbackup"] = v + p.p["destzoneids"] = v +} + +func (p *CopySnapshotParams) ResetDestzoneids() { + if p.p != nil && p.p["destzoneids"] != nil { + delete(p.p, "destzoneids") + } +} + +func (p *CopySnapshotParams) GetDestzoneids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["destzoneids"].([]string) + return value, ok +} + +func (p *CopySnapshotParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *CopySnapshotParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *CopySnapshotParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *CopySnapshotParams) SetSourcezoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sourcezoneid"] = v +} + +func (p *CopySnapshotParams) ResetSourcezoneid() { + if p.p != nil && p.p["sourcezoneid"] != nil { + delete(p.p, "sourcezoneid") + } +} + +func (p *CopySnapshotParams) GetSourcezoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sourcezoneid"].(string) + return value, ok +} + +// You should always use this function to get a new CopySnapshotParams instance, +// as then you are sure you have configured all required params +func (s *SnapshotService) NewCopySnapshotParams(id string) *CopySnapshotParams { + p := &CopySnapshotParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Copies a snapshot from one zone to another. +func (s *SnapshotService) CopySnapshot(p *CopySnapshotParams) (*CopySnapshotResponse, error) { + resp, err := s.cs.newRequest("copySnapshot", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CopySnapshotResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CopySnapshotResponse struct { + Account string `json:"account"` + Created string `json:"created"` + Datastoreid string `json:"datastoreid"` + Datastorename string `json:"datastorename"` + Datastorestate string `json:"datastorestate"` + Datastoretype string `json:"datastoretype"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Downloaddetails map[string]string `json:"downloaddetails"` + 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"` + Status string `json:"status"` + Tags []Tags `json:"tags"` + Virtualsize int64 `json:"virtualsize"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Volumestate string `json:"volumestate"` + Volumetype string `json:"volumetype"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +func (r *CopySnapshotResponse) 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 CopySnapshotResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type CreateSnapshotParams struct { + p map[string]interface{} +} + +func (p *CreateSnapshotParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["asyncbackup"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("asyncbackup", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["locationtype"]; found { + u.Set("locationtype", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["policyid"]; found { + u.Set("policyid", v.(string)) + } + if v, found := p.p["quiescevm"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("quiescevm", vv) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + if v, found := p.p["volumeid"]; found { + u.Set("volumeid", v.(string)) + } + if v, found := p.p["zoneids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("zoneids", vv) + } + return u +} + +func (p *CreateSnapshotParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *CreateSnapshotParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *CreateSnapshotParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *CreateSnapshotParams) SetAsyncbackup(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["asyncbackup"] = v +} + +func (p *CreateSnapshotParams) ResetAsyncbackup() { + if p.p != nil && p.p["asyncbackup"] != nil { + delete(p.p, "asyncbackup") + } +} + +func (p *CreateSnapshotParams) GetAsyncbackup() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["asyncbackup"].(bool) + return value, ok +} + +func (p *CreateSnapshotParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *CreateSnapshotParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *CreateSnapshotParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *CreateSnapshotParams) SetLocationtype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["locationtype"] = v +} + +func (p *CreateSnapshotParams) ResetLocationtype() { + if p.p != nil && p.p["locationtype"] != nil { + delete(p.p, "locationtype") + } +} + +func (p *CreateSnapshotParams) GetLocationtype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["locationtype"].(string) + return value, ok +} + +func (p *CreateSnapshotParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *CreateSnapshotParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *CreateSnapshotParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *CreateSnapshotParams) SetPolicyid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["policyid"] = v +} + +func (p *CreateSnapshotParams) ResetPolicyid() { + if p.p != nil && p.p["policyid"] != nil { + delete(p.p, "policyid") + } +} + +func (p *CreateSnapshotParams) GetPolicyid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["policyid"].(string) + return value, ok +} + +func (p *CreateSnapshotParams) SetQuiescevm(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["quiescevm"] = v +} + +func (p *CreateSnapshotParams) ResetQuiescevm() { + if p.p != nil && p.p["quiescevm"] != nil { + delete(p.p, "quiescevm") + } +} + +func (p *CreateSnapshotParams) GetQuiescevm() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["quiescevm"].(bool) + return value, ok +} + +func (p *CreateSnapshotParams) SetTags(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["tags"] = v +} + +func (p *CreateSnapshotParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") + } +} + +func (p *CreateSnapshotParams) GetTags() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tags"].(map[string]string) + return value, ok +} + +func (p *CreateSnapshotParams) SetVolumeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["volumeid"] = v +} + +func (p *CreateSnapshotParams) ResetVolumeid() { + if p.p != nil && p.p["volumeid"] != nil { + delete(p.p, "volumeid") + } +} + +func (p *CreateSnapshotParams) GetVolumeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["volumeid"].(string) + return value, ok +} + +func (p *CreateSnapshotParams) SetZoneids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneids"] = v +} + +func (p *CreateSnapshotParams) ResetZoneids() { + if p.p != nil && p.p["zoneids"] != nil { + delete(p.p, "zoneids") + } +} + +func (p *CreateSnapshotParams) GetZoneids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneids"].([]string) + return value, ok +} + +// You should always use this function to get a new CreateSnapshotParams instance, +// as then you are sure you have configured all required params +func (s *SnapshotService) NewCreateSnapshotParams(volumeid string) *CreateSnapshotParams { + p := &CreateSnapshotParams{} + p.p = make(map[string]interface{}) + p.p["volumeid"] = volumeid + return p +} + +// Creates an instant snapshot of a volume. +func (s *SnapshotService) CreateSnapshot(p *CreateSnapshotParams) (*CreateSnapshotResponse, error) { + resp, err := s.cs.newRequest("createSnapshot", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateSnapshotResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateSnapshotResponse struct { + Account string `json:"account"` + Created string `json:"created"` + Datastoreid string `json:"datastoreid"` + Datastorename string `json:"datastorename"` + Datastorestate string `json:"datastorestate"` + Datastoretype string `json:"datastoretype"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Downloaddetails map[string]string `json:"downloaddetails"` + 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"` + Status string `json:"status"` + Tags []Tags `json:"tags"` + Virtualsize int64 `json:"virtualsize"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` + Volumestate string `json:"volumestate"` + Volumetype string `json:"volumetype"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -func (p *CreateSnapshotParams) ResetAsyncbackup() { - if p.p != nil && p.p["asyncbackup"] != nil { - delete(p.p, "asyncbackup") +func (r *CreateSnapshotResponse) UnmarshalJSON(b []byte) error { + var m map[string]interface{} + err := json.Unmarshal(b, &m) + if err != nil { + return err } -} -func (p *CreateSnapshotParams) GetAsyncbackup() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if success, ok := m["success"].(string); ok { + m["success"] = success == "true" + b, err = json.Marshal(m) + if err != nil { + return err + } } - value, ok := p.p["asyncbackup"].(bool) - return value, ok -} -func (p *CreateSnapshotParams) SetDomainid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + if ostypeid, ok := m["ostypeid"].(float64); ok { + m["ostypeid"] = strconv.Itoa(int(ostypeid)) + b, err = json.Marshal(m) + if err != nil { + return err + } } - p.p["domainid"] = v -} -func (p *CreateSnapshotParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") - } + type alias CreateSnapshotResponse + return json.Unmarshal(b, (*alias)(r)) } -func (p *CreateSnapshotParams) GetDomainid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["domainid"].(string) - return value, ok +type CreateSnapshotFromVMSnapshotParams struct { + p map[string]interface{} } -func (p *CreateSnapshotParams) SetLocationtype(v string) { +func (p *CreateSnapshotFromVMSnapshotParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - p.p["locationtype"] = v -} - -func (p *CreateSnapshotParams) ResetLocationtype() { - if p.p != nil && p.p["locationtype"] != nil { - delete(p.p, "locationtype") + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) } -} - -func (p *CreateSnapshotParams) GetLocationtype() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["vmsnapshotid"]; found { + u.Set("vmsnapshotid", v.(string)) } - value, ok := p.p["locationtype"].(string) - return value, ok + if v, found := p.p["volumeid"]; found { + u.Set("volumeid", v.(string)) + } + return u } -func (p *CreateSnapshotParams) SetName(v string) { +func (p *CreateSnapshotFromVMSnapshotParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["name"] = v } -func (p *CreateSnapshotParams) ResetName() { +func (p *CreateSnapshotFromVMSnapshotParams) ResetName() { if p.p != nil && p.p["name"] != nil { delete(p.p, "name") } } -func (p *CreateSnapshotParams) GetName() (string, bool) { +func (p *CreateSnapshotFromVMSnapshotParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -213,83 +837,41 @@ func (p *CreateSnapshotParams) GetName() (string, bool) { return value, ok } -func (p *CreateSnapshotParams) SetPolicyid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["policyid"] = v -} - -func (p *CreateSnapshotParams) ResetPolicyid() { - if p.p != nil && p.p["policyid"] != nil { - delete(p.p, "policyid") - } -} - -func (p *CreateSnapshotParams) GetPolicyid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["policyid"].(string) - return value, ok -} - -func (p *CreateSnapshotParams) SetQuiescevm(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["quiescevm"] = v -} - -func (p *CreateSnapshotParams) ResetQuiescevm() { - if p.p != nil && p.p["quiescevm"] != nil { - delete(p.p, "quiescevm") - } -} - -func (p *CreateSnapshotParams) GetQuiescevm() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["quiescevm"].(bool) - return value, ok -} - -func (p *CreateSnapshotParams) SetTags(v map[string]string) { +func (p *CreateSnapshotFromVMSnapshotParams) SetVmsnapshotid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["tags"] = v + p.p["vmsnapshotid"] = v } -func (p *CreateSnapshotParams) ResetTags() { - if p.p != nil && p.p["tags"] != nil { - delete(p.p, "tags") +func (p *CreateSnapshotFromVMSnapshotParams) ResetVmsnapshotid() { + if p.p != nil && p.p["vmsnapshotid"] != nil { + delete(p.p, "vmsnapshotid") } } -func (p *CreateSnapshotParams) GetTags() (map[string]string, bool) { +func (p *CreateSnapshotFromVMSnapshotParams) GetVmsnapshotid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["tags"].(map[string]string) + value, ok := p.p["vmsnapshotid"].(string) return value, ok } -func (p *CreateSnapshotParams) SetVolumeid(v string) { +func (p *CreateSnapshotFromVMSnapshotParams) SetVolumeid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["volumeid"] = v } -func (p *CreateSnapshotParams) ResetVolumeid() { +func (p *CreateSnapshotFromVMSnapshotParams) ResetVolumeid() { if p.p != nil && p.p["volumeid"] != nil { delete(p.p, "volumeid") } } -func (p *CreateSnapshotParams) GetVolumeid() (string, bool) { +func (p *CreateSnapshotFromVMSnapshotParams) GetVolumeid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -297,44 +879,24 @@ func (p *CreateSnapshotParams) GetVolumeid() (string, bool) { return value, ok } -func (p *CreateSnapshotParams) SetZoneids(v []string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["zoneids"] = v -} - -func (p *CreateSnapshotParams) ResetZoneids() { - if p.p != nil && p.p["zoneids"] != nil { - delete(p.p, "zoneids") - } -} - -func (p *CreateSnapshotParams) GetZoneids() ([]string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["zoneids"].([]string) - return value, ok -} - -// You should always use this function to get a new CreateSnapshotParams instance, +// You should always use this function to get a new CreateSnapshotFromVMSnapshotParams instance, // as then you are sure you have configured all required params -func (s *SnapshotService) NewCreateSnapshotParams(volumeid string) *CreateSnapshotParams { - p := &CreateSnapshotParams{} +func (s *SnapshotService) NewCreateSnapshotFromVMSnapshotParams(vmsnapshotid string, volumeid string) *CreateSnapshotFromVMSnapshotParams { + p := &CreateSnapshotFromVMSnapshotParams{} p.p = make(map[string]interface{}) + p.p["vmsnapshotid"] = vmsnapshotid p.p["volumeid"] = volumeid return p } -// Creates an instant snapshot of a volume. -func (s *SnapshotService) CreateSnapshot(p *CreateSnapshotParams) (*CreateSnapshotResponse, error) { - resp, err := s.cs.newRequest("createSnapshot", p.toURLValues()) +// Creates an instant snapshot of a volume from existing vm snapshot. +func (s *SnapshotService) CreateSnapshotFromVMSnapshot(p *CreateSnapshotFromVMSnapshotParams) (*CreateSnapshotFromVMSnapshotResponse, error) { + resp, err := s.cs.newRequest("createSnapshotFromVMSnapshot", p.toURLValues()) if err != nil { return nil, err } - var r CreateSnapshotResponse + var r CreateSnapshotFromVMSnapshotResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -362,7 +924,7 @@ func (s *SnapshotService) CreateSnapshot(p *CreateSnapshotParams) (*CreateSnapsh return &r, nil } -type CreateSnapshotResponse struct { +type CreateSnapshotFromVMSnapshotResponse struct { Account string `json:"account"` Created string `json:"created"` Datastoreid string `json:"datastoreid"` @@ -399,7 +961,7 @@ type CreateSnapshotResponse struct { Zonename string `json:"zonename"` } -func (r *CreateSnapshotResponse) UnmarshalJSON(b []byte) error { +func (r *CreateSnapshotFromVMSnapshotResponse) UnmarshalJSON(b []byte) error { var m map[string]interface{} err := json.Unmarshal(b, &m) if err != nil { @@ -422,7 +984,7 @@ func (r *CreateSnapshotResponse) UnmarshalJSON(b []byte) error { } } - type alias CreateSnapshotResponse + type alias CreateSnapshotFromVMSnapshotResponse return json.Unmarshal(b, (*alias)(r)) } @@ -1192,6 +1754,130 @@ type DeleteVMSnapshotResponse struct { Success bool `json:"success"` } +type ExtractSnapshotParams struct { + p map[string]interface{} +} + +func (p *ExtractSnapshotParams) 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["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ExtractSnapshotParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ExtractSnapshotParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ExtractSnapshotParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ExtractSnapshotParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ExtractSnapshotParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ExtractSnapshotParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ExtractSnapshotParams instance, +// as then you are sure you have configured all required params +func (s *SnapshotService) NewExtractSnapshotParams(id string, zoneid string) *ExtractSnapshotParams { + p := &ExtractSnapshotParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + p.p["zoneid"] = zoneid + return p +} + +// Returns a download URL for extracting a snapshot. It must be in the Backed Up state. +func (s *SnapshotService) ExtractSnapshot(p *ExtractSnapshotParams) (*ExtractSnapshotResponse, error) { + resp, err := s.cs.newRequest("extractSnapshot", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ExtractSnapshotResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ExtractSnapshotResponse struct { + Accountid string `json:"accountid"` + Created string `json:"created"` + ExtractId string `json:"extractId"` + ExtractMode string `json:"extractMode"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Resultstring string `json:"resultstring"` + State string `json:"state"` + Status string `json:"status"` + Storagetype string `json:"storagetype"` + Uploadpercentage int `json:"uploadpercentage"` + Url string `json:"url"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + type ListSnapshotPoliciesParams struct { p map[string]interface{} } diff --git a/cloudstack/SnapshotService_mock.go b/cloudstack/SnapshotService_mock.go index 3a76d372..a2083a05 100644 --- a/cloudstack/SnapshotService_mock.go +++ b/cloudstack/SnapshotService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/SnapshotService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SnapshotService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SnapshotService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockSnapshotServiceIface is a mock of SnapshotServiceIface interface. type MockSnapshotServiceIface struct { ctrl *gomock.Controller recorder *MockSnapshotServiceIfaceMockRecorder + isgomock struct{} } // MockSnapshotServiceIfaceMockRecorder is the mock recorder for MockSnapshotServiceIface. @@ -52,6 +58,36 @@ func (m *MockSnapshotServiceIface) EXPECT() *MockSnapshotServiceIfaceMockRecorde return m.recorder } +// ArchiveSnapshot mocks base method. +func (m *MockSnapshotServiceIface) ArchiveSnapshot(p *ArchiveSnapshotParams) (*ArchiveSnapshotResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ArchiveSnapshot", p) + ret0, _ := ret[0].(*ArchiveSnapshotResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ArchiveSnapshot indicates an expected call of ArchiveSnapshot. +func (mr *MockSnapshotServiceIfaceMockRecorder) ArchiveSnapshot(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ArchiveSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).ArchiveSnapshot), p) +} + +// CopySnapshot mocks base method. +func (m *MockSnapshotServiceIface) CopySnapshot(p *CopySnapshotParams) (*CopySnapshotResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CopySnapshot", p) + ret0, _ := ret[0].(*CopySnapshotResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CopySnapshot indicates an expected call of CopySnapshot. +func (mr *MockSnapshotServiceIfaceMockRecorder) CopySnapshot(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopySnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).CopySnapshot), p) +} + // CreateSnapshot mocks base method. func (m *MockSnapshotServiceIface) CreateSnapshot(p *CreateSnapshotParams) (*CreateSnapshotResponse, error) { m.ctrl.T.Helper() @@ -62,11 +98,26 @@ func (m *MockSnapshotServiceIface) CreateSnapshot(p *CreateSnapshotParams) (*Cre } // CreateSnapshot indicates an expected call of CreateSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) CreateSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) CreateSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).CreateSnapshot), p) } +// CreateSnapshotFromVMSnapshot mocks base method. +func (m *MockSnapshotServiceIface) CreateSnapshotFromVMSnapshot(p *CreateSnapshotFromVMSnapshotParams) (*CreateSnapshotFromVMSnapshotResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateSnapshotFromVMSnapshot", p) + ret0, _ := ret[0].(*CreateSnapshotFromVMSnapshotResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateSnapshotFromVMSnapshot indicates an expected call of CreateSnapshotFromVMSnapshot. +func (mr *MockSnapshotServiceIfaceMockRecorder) CreateSnapshotFromVMSnapshot(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshotFromVMSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).CreateSnapshotFromVMSnapshot), p) +} + // CreateSnapshotPolicy mocks base method. func (m *MockSnapshotServiceIface) CreateSnapshotPolicy(p *CreateSnapshotPolicyParams) (*CreateSnapshotPolicyResponse, error) { m.ctrl.T.Helper() @@ -77,7 +128,7 @@ func (m *MockSnapshotServiceIface) CreateSnapshotPolicy(p *CreateSnapshotPolicyP } // CreateSnapshotPolicy indicates an expected call of CreateSnapshotPolicy. -func (mr *MockSnapshotServiceIfaceMockRecorder) CreateSnapshotPolicy(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) CreateSnapshotPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshotPolicy", reflect.TypeOf((*MockSnapshotServiceIface)(nil).CreateSnapshotPolicy), p) } @@ -92,7 +143,7 @@ func (m *MockSnapshotServiceIface) CreateVMSnapshot(p *CreateVMSnapshotParams) ( } // CreateVMSnapshot indicates an expected call of CreateVMSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) CreateVMSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) CreateVMSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVMSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).CreateVMSnapshot), p) } @@ -107,7 +158,7 @@ func (m *MockSnapshotServiceIface) DeleteSnapshot(p *DeleteSnapshotParams) (*Del } // DeleteSnapshot indicates an expected call of DeleteSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) DeleteSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) DeleteSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).DeleteSnapshot), p) } @@ -122,7 +173,7 @@ func (m *MockSnapshotServiceIface) DeleteSnapshotPolicies(p *DeleteSnapshotPolic } // DeleteSnapshotPolicies indicates an expected call of DeleteSnapshotPolicies. -func (mr *MockSnapshotServiceIfaceMockRecorder) DeleteSnapshotPolicies(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) DeleteSnapshotPolicies(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshotPolicies", reflect.TypeOf((*MockSnapshotServiceIface)(nil).DeleteSnapshotPolicies), p) } @@ -137,15 +188,30 @@ func (m *MockSnapshotServiceIface) DeleteVMSnapshot(p *DeleteVMSnapshotParams) ( } // DeleteVMSnapshot indicates an expected call of DeleteVMSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) DeleteVMSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) DeleteVMSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVMSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).DeleteVMSnapshot), p) } +// ExtractSnapshot mocks base method. +func (m *MockSnapshotServiceIface) ExtractSnapshot(p *ExtractSnapshotParams) (*ExtractSnapshotResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExtractSnapshot", p) + ret0, _ := ret[0].(*ExtractSnapshotResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ExtractSnapshot indicates an expected call of ExtractSnapshot. +func (mr *MockSnapshotServiceIfaceMockRecorder) ExtractSnapshot(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExtractSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).ExtractSnapshot), p) +} + // GetSnapshotByID mocks base method. func (m *MockSnapshotServiceIface) GetSnapshotByID(id string, opts ...OptionFunc) (*Snapshot, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -157,16 +223,16 @@ func (m *MockSnapshotServiceIface) GetSnapshotByID(id string, opts ...OptionFunc } // GetSnapshotByID indicates an expected call of GetSnapshotByID. -func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotByID", reflect.TypeOf((*MockSnapshotServiceIface)(nil).GetSnapshotByID), varargs...) } // GetSnapshotByName mocks base method. func (m *MockSnapshotServiceIface) GetSnapshotByName(name string, opts ...OptionFunc) (*Snapshot, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -178,16 +244,16 @@ func (m *MockSnapshotServiceIface) GetSnapshotByName(name string, opts ...Option } // GetSnapshotByName indicates an expected call of GetSnapshotByName. -func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotByName", reflect.TypeOf((*MockSnapshotServiceIface)(nil).GetSnapshotByName), varargs...) } // GetSnapshotID mocks base method. func (m *MockSnapshotServiceIface) GetSnapshotID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -199,16 +265,16 @@ func (m *MockSnapshotServiceIface) GetSnapshotID(name string, opts ...OptionFunc } // GetSnapshotID indicates an expected call of GetSnapshotID. -func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotID", reflect.TypeOf((*MockSnapshotServiceIface)(nil).GetSnapshotID), varargs...) } // GetSnapshotPolicyByID mocks base method. func (m *MockSnapshotServiceIface) GetSnapshotPolicyByID(id string, opts ...OptionFunc) (*SnapshotPolicy, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -220,16 +286,16 @@ func (m *MockSnapshotServiceIface) GetSnapshotPolicyByID(id string, opts ...Opti } // GetSnapshotPolicyByID indicates an expected call of GetSnapshotPolicyByID. -func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotPolicyByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) GetSnapshotPolicyByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotPolicyByID", reflect.TypeOf((*MockSnapshotServiceIface)(nil).GetSnapshotPolicyByID), varargs...) } // GetVMSnapshotID mocks base method. func (m *MockSnapshotServiceIface) GetVMSnapshotID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -241,9 +307,9 @@ func (m *MockSnapshotServiceIface) GetVMSnapshotID(name string, opts ...OptionFu } // GetVMSnapshotID indicates an expected call of GetVMSnapshotID. -func (mr *MockSnapshotServiceIfaceMockRecorder) GetVMSnapshotID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) GetVMSnapshotID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVMSnapshotID", reflect.TypeOf((*MockSnapshotServiceIface)(nil).GetVMSnapshotID), varargs...) } @@ -257,7 +323,7 @@ func (m *MockSnapshotServiceIface) ListSnapshotPolicies(p *ListSnapshotPoliciesP } // ListSnapshotPolicies indicates an expected call of ListSnapshotPolicies. -func (mr *MockSnapshotServiceIfaceMockRecorder) ListSnapshotPolicies(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) ListSnapshotPolicies(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshotPolicies", reflect.TypeOf((*MockSnapshotServiceIface)(nil).ListSnapshotPolicies), p) } @@ -272,7 +338,7 @@ func (m *MockSnapshotServiceIface) ListSnapshots(p *ListSnapshotsParams) (*ListS } // ListSnapshots indicates an expected call of ListSnapshots. -func (mr *MockSnapshotServiceIfaceMockRecorder) ListSnapshots(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) ListSnapshots(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshots", reflect.TypeOf((*MockSnapshotServiceIface)(nil).ListSnapshots), p) } @@ -287,11 +353,53 @@ func (m *MockSnapshotServiceIface) ListVMSnapshot(p *ListVMSnapshotParams) (*Lis } // ListVMSnapshot indicates an expected call of ListVMSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) ListVMSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) ListVMSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVMSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).ListVMSnapshot), p) } +// NewArchiveSnapshotParams mocks base method. +func (m *MockSnapshotServiceIface) NewArchiveSnapshotParams(id string) *ArchiveSnapshotParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewArchiveSnapshotParams", id) + ret0, _ := ret[0].(*ArchiveSnapshotParams) + return ret0 +} + +// NewArchiveSnapshotParams indicates an expected call of NewArchiveSnapshotParams. +func (mr *MockSnapshotServiceIfaceMockRecorder) NewArchiveSnapshotParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewArchiveSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewArchiveSnapshotParams), id) +} + +// NewCopySnapshotParams mocks base method. +func (m *MockSnapshotServiceIface) NewCopySnapshotParams(id string) *CopySnapshotParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCopySnapshotParams", id) + ret0, _ := ret[0].(*CopySnapshotParams) + return ret0 +} + +// NewCopySnapshotParams indicates an expected call of NewCopySnapshotParams. +func (mr *MockSnapshotServiceIfaceMockRecorder) NewCopySnapshotParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCopySnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewCopySnapshotParams), id) +} + +// NewCreateSnapshotFromVMSnapshotParams mocks base method. +func (m *MockSnapshotServiceIface) NewCreateSnapshotFromVMSnapshotParams(vmsnapshotid, volumeid string) *CreateSnapshotFromVMSnapshotParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateSnapshotFromVMSnapshotParams", vmsnapshotid, volumeid) + ret0, _ := ret[0].(*CreateSnapshotFromVMSnapshotParams) + return ret0 +} + +// NewCreateSnapshotFromVMSnapshotParams indicates an expected call of NewCreateSnapshotFromVMSnapshotParams. +func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateSnapshotFromVMSnapshotParams(vmsnapshotid, volumeid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSnapshotFromVMSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewCreateSnapshotFromVMSnapshotParams), vmsnapshotid, volumeid) +} + // NewCreateSnapshotParams mocks base method. func (m *MockSnapshotServiceIface) NewCreateSnapshotParams(volumeid string) *CreateSnapshotParams { m.ctrl.T.Helper() @@ -301,7 +409,7 @@ func (m *MockSnapshotServiceIface) NewCreateSnapshotParams(volumeid string) *Cre } // NewCreateSnapshotParams indicates an expected call of NewCreateSnapshotParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateSnapshotParams(volumeid interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateSnapshotParams(volumeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewCreateSnapshotParams), volumeid) } @@ -315,7 +423,7 @@ func (m *MockSnapshotServiceIface) NewCreateSnapshotPolicyParams(intervaltype st } // NewCreateSnapshotPolicyParams indicates an expected call of NewCreateSnapshotPolicyParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateSnapshotPolicyParams(intervaltype, maxsnaps, schedule, timezone, volumeid interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateSnapshotPolicyParams(intervaltype, maxsnaps, schedule, timezone, volumeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateSnapshotPolicyParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewCreateSnapshotPolicyParams), intervaltype, maxsnaps, schedule, timezone, volumeid) } @@ -329,7 +437,7 @@ func (m *MockSnapshotServiceIface) NewCreateVMSnapshotParams(virtualmachineid st } // NewCreateVMSnapshotParams indicates an expected call of NewCreateVMSnapshotParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateVMSnapshotParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewCreateVMSnapshotParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVMSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewCreateVMSnapshotParams), virtualmachineid) } @@ -343,7 +451,7 @@ func (m *MockSnapshotServiceIface) NewDeleteSnapshotParams(id string) *DeleteSna } // NewDeleteSnapshotParams indicates an expected call of NewDeleteSnapshotParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewDeleteSnapshotParams(id interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewDeleteSnapshotParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewDeleteSnapshotParams), id) } @@ -371,11 +479,25 @@ func (m *MockSnapshotServiceIface) NewDeleteVMSnapshotParams(vmsnapshotid string } // NewDeleteVMSnapshotParams indicates an expected call of NewDeleteVMSnapshotParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewDeleteVMSnapshotParams(vmsnapshotid interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewDeleteVMSnapshotParams(vmsnapshotid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVMSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewDeleteVMSnapshotParams), vmsnapshotid) } +// NewExtractSnapshotParams mocks base method. +func (m *MockSnapshotServiceIface) NewExtractSnapshotParams(id, zoneid string) *ExtractSnapshotParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewExtractSnapshotParams", id, zoneid) + ret0, _ := ret[0].(*ExtractSnapshotParams) + return ret0 +} + +// NewExtractSnapshotParams indicates an expected call of NewExtractSnapshotParams. +func (mr *MockSnapshotServiceIfaceMockRecorder) NewExtractSnapshotParams(id, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExtractSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewExtractSnapshotParams), id, zoneid) +} + // NewListSnapshotPoliciesParams mocks base method. func (m *MockSnapshotServiceIface) NewListSnapshotPoliciesParams() *ListSnapshotPoliciesParams { m.ctrl.T.Helper() @@ -427,7 +549,7 @@ func (m *MockSnapshotServiceIface) NewRevertSnapshotParams(id string) *RevertSna } // NewRevertSnapshotParams indicates an expected call of NewRevertSnapshotParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewRevertSnapshotParams(id interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewRevertSnapshotParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRevertSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewRevertSnapshotParams), id) } @@ -441,7 +563,7 @@ func (m *MockSnapshotServiceIface) NewRevertToVMSnapshotParams(vmsnapshotid stri } // NewRevertToVMSnapshotParams indicates an expected call of NewRevertToVMSnapshotParams. -func (mr *MockSnapshotServiceIfaceMockRecorder) NewRevertToVMSnapshotParams(vmsnapshotid interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) NewRevertToVMSnapshotParams(vmsnapshotid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRevertToVMSnapshotParams", reflect.TypeOf((*MockSnapshotServiceIface)(nil).NewRevertToVMSnapshotParams), vmsnapshotid) } @@ -470,7 +592,7 @@ func (m *MockSnapshotServiceIface) RevertSnapshot(p *RevertSnapshotParams) (*Rev } // RevertSnapshot indicates an expected call of RevertSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) RevertSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) RevertSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevertSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).RevertSnapshot), p) } @@ -485,7 +607,7 @@ func (m *MockSnapshotServiceIface) RevertToVMSnapshot(p *RevertToVMSnapshotParam } // RevertToVMSnapshot indicates an expected call of RevertToVMSnapshot. -func (mr *MockSnapshotServiceIfaceMockRecorder) RevertToVMSnapshot(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) RevertToVMSnapshot(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RevertToVMSnapshot", reflect.TypeOf((*MockSnapshotServiceIface)(nil).RevertToVMSnapshot), p) } @@ -500,7 +622,7 @@ func (m *MockSnapshotServiceIface) UpdateSnapshotPolicy(p *UpdateSnapshotPolicyP } // UpdateSnapshotPolicy indicates an expected call of UpdateSnapshotPolicy. -func (mr *MockSnapshotServiceIfaceMockRecorder) UpdateSnapshotPolicy(p interface{}) *gomock.Call { +func (mr *MockSnapshotServiceIfaceMockRecorder) UpdateSnapshotPolicy(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSnapshotPolicy", reflect.TypeOf((*MockSnapshotServiceIface)(nil).UpdateSnapshotPolicy), p) } diff --git a/cloudstack/SolidFireService.go b/cloudstack/SolidFireService.go new file mode 100644 index 00000000..b2275ceb --- /dev/null +++ b/cloudstack/SolidFireService.go @@ -0,0 +1,282 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "net/url" +) + +type SolidFireServiceIface interface { + GetSolidFireAccountId(p *GetSolidFireAccountIdParams) (*GetSolidFireAccountIdResponse, error) + NewGetSolidFireAccountIdParams(accountid string, storageid string) *GetSolidFireAccountIdParams + GetSolidFireVolumeAccessGroupIds(p *GetSolidFireVolumeAccessGroupIdsParams) (*GetSolidFireVolumeAccessGroupIdsResponse, error) + NewGetSolidFireVolumeAccessGroupIdsParams(clusterid string, storageid string) *GetSolidFireVolumeAccessGroupIdsParams + GetSolidFireVolumeSize(p *GetSolidFireVolumeSizeParams) (*GetSolidFireVolumeSizeResponse, error) + NewGetSolidFireVolumeSizeParams(volumeid string) *GetSolidFireVolumeSizeParams +} + +type GetSolidFireAccountIdParams struct { + p map[string]interface{} +} + +func (p *GetSolidFireAccountIdParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["accountid"]; found { + u.Set("accountid", v.(string)) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + return u +} + +func (p *GetSolidFireAccountIdParams) SetAccountid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["accountid"] = v +} + +func (p *GetSolidFireAccountIdParams) ResetAccountid() { + if p.p != nil && p.p["accountid"] != nil { + delete(p.p, "accountid") + } +} + +func (p *GetSolidFireAccountIdParams) GetAccountid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["accountid"].(string) + return value, ok +} + +func (p *GetSolidFireAccountIdParams) SetStorageid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["storageid"] = v +} + +func (p *GetSolidFireAccountIdParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") + } +} + +func (p *GetSolidFireAccountIdParams) GetStorageid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["storageid"].(string) + return value, ok +} + +// You should always use this function to get a new GetSolidFireAccountIdParams instance, +// as then you are sure you have configured all required params +func (s *SolidFireService) NewGetSolidFireAccountIdParams(accountid string, storageid string) *GetSolidFireAccountIdParams { + p := &GetSolidFireAccountIdParams{} + p.p = make(map[string]interface{}) + p.p["accountid"] = accountid + p.p["storageid"] = storageid + return p +} + +// Get SolidFire Account ID +func (s *SolidFireService) GetSolidFireAccountId(p *GetSolidFireAccountIdParams) (*GetSolidFireAccountIdResponse, error) { + resp, err := s.cs.newRequest("getSolidFireAccountId", p.toURLValues()) + if err != nil { + return nil, err + } + + var r GetSolidFireAccountIdResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type GetSolidFireAccountIdResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + SolidFireAccountId int64 `json:"solidFireAccountId"` +} + +type GetSolidFireVolumeAccessGroupIdsParams struct { + p map[string]interface{} +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["clusterid"]; found { + u.Set("clusterid", v.(string)) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + return u +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) SetClusterid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["clusterid"] = v +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) ResetClusterid() { + if p.p != nil && p.p["clusterid"] != nil { + delete(p.p, "clusterid") + } +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) GetClusterid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["clusterid"].(string) + return value, ok +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) SetStorageid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["storageid"] = v +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") + } +} + +func (p *GetSolidFireVolumeAccessGroupIdsParams) GetStorageid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["storageid"].(string) + return value, ok +} + +// You should always use this function to get a new GetSolidFireVolumeAccessGroupIdsParams instance, +// as then you are sure you have configured all required params +func (s *SolidFireService) NewGetSolidFireVolumeAccessGroupIdsParams(clusterid string, storageid string) *GetSolidFireVolumeAccessGroupIdsParams { + p := &GetSolidFireVolumeAccessGroupIdsParams{} + p.p = make(map[string]interface{}) + p.p["clusterid"] = clusterid + p.p["storageid"] = storageid + return p +} + +// Get the SF Volume Access Group IDs +func (s *SolidFireService) GetSolidFireVolumeAccessGroupIds(p *GetSolidFireVolumeAccessGroupIdsParams) (*GetSolidFireVolumeAccessGroupIdsResponse, error) { + resp, err := s.cs.newRequest("getSolidFireVolumeAccessGroupIds", p.toURLValues()) + if err != nil { + return nil, err + } + + var r GetSolidFireVolumeAccessGroupIdsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type GetSolidFireVolumeAccessGroupIdsResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + SolidFireVolumeAccessGroupIds []int64 `json:"solidFireVolumeAccessGroupIds"` +} + +type GetSolidFireVolumeSizeParams struct { + p map[string]interface{} +} + +func (p *GetSolidFireVolumeSizeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["volumeid"]; found { + u.Set("volumeid", v.(string)) + } + return u +} + +func (p *GetSolidFireVolumeSizeParams) SetVolumeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["volumeid"] = v +} + +func (p *GetSolidFireVolumeSizeParams) ResetVolumeid() { + if p.p != nil && p.p["volumeid"] != nil { + delete(p.p, "volumeid") + } +} + +func (p *GetSolidFireVolumeSizeParams) GetVolumeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["volumeid"].(string) + return value, ok +} + +// You should always use this function to get a new GetSolidFireVolumeSizeParams instance, +// as then you are sure you have configured all required params +func (s *SolidFireService) NewGetSolidFireVolumeSizeParams(volumeid string) *GetSolidFireVolumeSizeParams { + p := &GetSolidFireVolumeSizeParams{} + p.p = make(map[string]interface{}) + p.p["volumeid"] = volumeid + return p +} + +// Get the SF volume size including Hypervisor Snapshot Reserve +func (s *SolidFireService) GetSolidFireVolumeSize(p *GetSolidFireVolumeSizeParams) (*GetSolidFireVolumeSizeResponse, error) { + resp, err := s.cs.newRequest("getSolidFireVolumeSize", p.toURLValues()) + if err != nil { + return nil, err + } + + var r GetSolidFireVolumeSizeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type GetSolidFireVolumeSizeResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + SolidFireVolumeSize int64 `json:"solidFireVolumeSize"` +} diff --git a/cloudstack/SolidFireService_mock.go b/cloudstack/SolidFireService_mock.go new file mode 100644 index 00000000..87d1b091 --- /dev/null +++ b/cloudstack/SolidFireService_mock.go @@ -0,0 +1,146 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/SolidFireService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SolidFireService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SolidFireService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockSolidFireServiceIface is a mock of SolidFireServiceIface interface. +type MockSolidFireServiceIface struct { + ctrl *gomock.Controller + recorder *MockSolidFireServiceIfaceMockRecorder + isgomock struct{} +} + +// MockSolidFireServiceIfaceMockRecorder is the mock recorder for MockSolidFireServiceIface. +type MockSolidFireServiceIfaceMockRecorder struct { + mock *MockSolidFireServiceIface +} + +// NewMockSolidFireServiceIface creates a new mock instance. +func NewMockSolidFireServiceIface(ctrl *gomock.Controller) *MockSolidFireServiceIface { + mock := &MockSolidFireServiceIface{ctrl: ctrl} + mock.recorder = &MockSolidFireServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockSolidFireServiceIface) EXPECT() *MockSolidFireServiceIfaceMockRecorder { + return m.recorder +} + +// GetSolidFireAccountId mocks base method. +func (m *MockSolidFireServiceIface) GetSolidFireAccountId(p *GetSolidFireAccountIdParams) (*GetSolidFireAccountIdResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSolidFireAccountId", p) + ret0, _ := ret[0].(*GetSolidFireAccountIdResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetSolidFireAccountId indicates an expected call of GetSolidFireAccountId. +func (mr *MockSolidFireServiceIfaceMockRecorder) GetSolidFireAccountId(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSolidFireAccountId", reflect.TypeOf((*MockSolidFireServiceIface)(nil).GetSolidFireAccountId), p) +} + +// GetSolidFireVolumeAccessGroupIds mocks base method. +func (m *MockSolidFireServiceIface) GetSolidFireVolumeAccessGroupIds(p *GetSolidFireVolumeAccessGroupIdsParams) (*GetSolidFireVolumeAccessGroupIdsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSolidFireVolumeAccessGroupIds", p) + ret0, _ := ret[0].(*GetSolidFireVolumeAccessGroupIdsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetSolidFireVolumeAccessGroupIds indicates an expected call of GetSolidFireVolumeAccessGroupIds. +func (mr *MockSolidFireServiceIfaceMockRecorder) GetSolidFireVolumeAccessGroupIds(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSolidFireVolumeAccessGroupIds", reflect.TypeOf((*MockSolidFireServiceIface)(nil).GetSolidFireVolumeAccessGroupIds), p) +} + +// GetSolidFireVolumeSize mocks base method. +func (m *MockSolidFireServiceIface) GetSolidFireVolumeSize(p *GetSolidFireVolumeSizeParams) (*GetSolidFireVolumeSizeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSolidFireVolumeSize", p) + ret0, _ := ret[0].(*GetSolidFireVolumeSizeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetSolidFireVolumeSize indicates an expected call of GetSolidFireVolumeSize. +func (mr *MockSolidFireServiceIfaceMockRecorder) GetSolidFireVolumeSize(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSolidFireVolumeSize", reflect.TypeOf((*MockSolidFireServiceIface)(nil).GetSolidFireVolumeSize), p) +} + +// NewGetSolidFireAccountIdParams mocks base method. +func (m *MockSolidFireServiceIface) NewGetSolidFireAccountIdParams(accountid, storageid string) *GetSolidFireAccountIdParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewGetSolidFireAccountIdParams", accountid, storageid) + ret0, _ := ret[0].(*GetSolidFireAccountIdParams) + return ret0 +} + +// NewGetSolidFireAccountIdParams indicates an expected call of NewGetSolidFireAccountIdParams. +func (mr *MockSolidFireServiceIfaceMockRecorder) NewGetSolidFireAccountIdParams(accountid, storageid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetSolidFireAccountIdParams", reflect.TypeOf((*MockSolidFireServiceIface)(nil).NewGetSolidFireAccountIdParams), accountid, storageid) +} + +// NewGetSolidFireVolumeAccessGroupIdsParams mocks base method. +func (m *MockSolidFireServiceIface) NewGetSolidFireVolumeAccessGroupIdsParams(clusterid, storageid string) *GetSolidFireVolumeAccessGroupIdsParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewGetSolidFireVolumeAccessGroupIdsParams", clusterid, storageid) + ret0, _ := ret[0].(*GetSolidFireVolumeAccessGroupIdsParams) + return ret0 +} + +// NewGetSolidFireVolumeAccessGroupIdsParams indicates an expected call of NewGetSolidFireVolumeAccessGroupIdsParams. +func (mr *MockSolidFireServiceIfaceMockRecorder) NewGetSolidFireVolumeAccessGroupIdsParams(clusterid, storageid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetSolidFireVolumeAccessGroupIdsParams", reflect.TypeOf((*MockSolidFireServiceIface)(nil).NewGetSolidFireVolumeAccessGroupIdsParams), clusterid, storageid) +} + +// NewGetSolidFireVolumeSizeParams mocks base method. +func (m *MockSolidFireServiceIface) NewGetSolidFireVolumeSizeParams(volumeid string) *GetSolidFireVolumeSizeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewGetSolidFireVolumeSizeParams", volumeid) + ret0, _ := ret[0].(*GetSolidFireVolumeSizeParams) + return ret0 +} + +// NewGetSolidFireVolumeSizeParams indicates an expected call of NewGetSolidFireVolumeSizeParams. +func (mr *MockSolidFireServiceIfaceMockRecorder) NewGetSolidFireVolumeSizeParams(volumeid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetSolidFireVolumeSizeParams", reflect.TypeOf((*MockSolidFireServiceIface)(nil).NewGetSolidFireVolumeSizeParams), volumeid) +} diff --git a/cloudstack/StoragePoolService.go b/cloudstack/StoragePoolService.go index 012d87de..6e8358a6 100644 --- a/cloudstack/StoragePoolService.go +++ b/cloudstack/StoragePoolService.go @@ -30,8 +30,13 @@ import ( type StoragePoolServiceIface interface { CancelStorageMaintenance(p *CancelStorageMaintenanceParams) (*CancelStorageMaintenanceResponse, error) NewCancelStorageMaintenanceParams(id string) *CancelStorageMaintenanceParams + ChangeStoragePoolScope(p *ChangeStoragePoolScopeParams) (*ChangeStoragePoolScopeResponse, error) + NewChangeStoragePoolScopeParams(id string, scope string) *ChangeStoragePoolScopeParams EnableStorageMaintenance(p *EnableStorageMaintenanceParams) (*EnableStorageMaintenanceResponse, error) NewEnableStorageMaintenanceParams(id string) *EnableStorageMaintenanceParams + ListAffectedVmsForStorageScopeChange(p *ListAffectedVmsForStorageScopeChangeParams) (*ListAffectedVmsForStorageScopeChangeResponse, error) + NewListAffectedVmsForStorageScopeChangeParams(clusterid string, storageid string) *ListAffectedVmsForStorageScopeChangeParams + GetAffectedVmsForStorageScopeChangeID(keyword string, clusterid string, storageid string, opts ...OptionFunc) (string, int, error) ListStorageProviders(p *ListStorageProvidersParams) (*ListStorageProvidersResponse, error) NewListStorageProvidersParams(storagePoolType string) *ListStorageProvidersParams ListObjectStoragePools(p *ListObjectStoragePoolsParams) (*ListObjectStoragePoolsResponse, error) @@ -170,6 +175,137 @@ type CancelStorageMaintenanceResponse struct { Zonename string `json:"zonename"` } +type ChangeStoragePoolScopeParams struct { + p map[string]interface{} +} + +func (p *ChangeStoragePoolScopeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["clusterid"]; found { + u.Set("clusterid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["scope"]; found { + u.Set("scope", v.(string)) + } + return u +} + +func (p *ChangeStoragePoolScopeParams) SetClusterid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["clusterid"] = v +} + +func (p *ChangeStoragePoolScopeParams) ResetClusterid() { + if p.p != nil && p.p["clusterid"] != nil { + delete(p.p, "clusterid") + } +} + +func (p *ChangeStoragePoolScopeParams) GetClusterid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["clusterid"].(string) + return value, ok +} + +func (p *ChangeStoragePoolScopeParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ChangeStoragePoolScopeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ChangeStoragePoolScopeParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ChangeStoragePoolScopeParams) SetScope(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["scope"] = v +} + +func (p *ChangeStoragePoolScopeParams) ResetScope() { + if p.p != nil && p.p["scope"] != nil { + delete(p.p, "scope") + } +} + +func (p *ChangeStoragePoolScopeParams) GetScope() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["scope"].(string) + return value, ok +} + +// You should always use this function to get a new ChangeStoragePoolScopeParams instance, +// as then you are sure you have configured all required params +func (s *StoragePoolService) NewChangeStoragePoolScopeParams(id string, scope string) *ChangeStoragePoolScopeParams { + p := &ChangeStoragePoolScopeParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + p.p["scope"] = scope + return p +} + +// Changes the scope of a storage pool when the pool is in Disabled state.This feature is officially tested and supported for Hypervisors: KVM and VMware, Protocols: NFS and Ceph, and Storage Provider: DefaultPrimary. There might be extra steps involved to make this work for other hypervisors and storage options. +func (s *StoragePoolService) ChangeStoragePoolScope(p *ChangeStoragePoolScopeParams) (*ChangeStoragePoolScopeResponse, error) { + resp, err := s.cs.newRequest("changeStoragePoolScope", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ChangeStoragePoolScopeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ChangeStoragePoolScopeResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + type EnableStorageMaintenanceParams struct { p map[string]interface{} } @@ -285,6 +421,220 @@ type EnableStorageMaintenanceResponse struct { Zonename string `json:"zonename"` } +type ListAffectedVmsForStorageScopeChangeParams struct { + p map[string]interface{} +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["clusterid"]; found { + u.Set("clusterid", v.(string)) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + return u +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) SetClusterid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["clusterid"] = v +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) ResetClusterid() { + if p.p != nil && p.p["clusterid"] != nil { + delete(p.p, "clusterid") + } +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) GetClusterid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["clusterid"].(string) + return value, ok +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) SetStorageid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["storageid"] = v +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") + } +} + +func (p *ListAffectedVmsForStorageScopeChangeParams) GetStorageid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["storageid"].(string) + return value, ok +} + +// You should always use this function to get a new ListAffectedVmsForStorageScopeChangeParams instance, +// as then you are sure you have configured all required params +func (s *StoragePoolService) NewListAffectedVmsForStorageScopeChangeParams(clusterid string, storageid string) *ListAffectedVmsForStorageScopeChangeParams { + p := &ListAffectedVmsForStorageScopeChangeParams{} + p.p = make(map[string]interface{}) + p.p["clusterid"] = clusterid + p.p["storageid"] = storageid + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *StoragePoolService) GetAffectedVmsForStorageScopeChangeID(keyword string, clusterid string, storageid string, opts ...OptionFunc) (string, int, error) { + p := &ListAffectedVmsForStorageScopeChangeParams{} + p.p = make(map[string]interface{}) + + p.p["keyword"] = keyword + p.p["clusterid"] = clusterid + p.p["storageid"] = storageid + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return "", -1, err + } + } + + l, err := s.ListAffectedVmsForStorageScopeChange(p) + if err != nil { + return "", -1, err + } + + if l.Count == 0 { + return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + } + + if l.Count == 1 { + return l.AffectedVmsForStorageScopeChange[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.AffectedVmsForStorageScopeChange { + if v.Name == keyword { + return v.Id, l.Count, nil + } + } + } + return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) +} + +// List user and system VMs that need to be stopped and destroyed respectively for changing the scope of the storage pool from Zone to Cluster. +func (s *StoragePoolService) ListAffectedVmsForStorageScopeChange(p *ListAffectedVmsForStorageScopeChangeParams) (*ListAffectedVmsForStorageScopeChangeResponse, error) { + resp, err := s.cs.newRequest("listAffectedVmsForStorageScopeChange", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListAffectedVmsForStorageScopeChangeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListAffectedVmsForStorageScopeChangeResponse struct { + Count int `json:"count"` + AffectedVmsForStorageScopeChange []*AffectedVmsForStorageScopeChange `json:"affectedvmsforstoragescopechange"` +} + +type AffectedVmsForStorageScopeChange struct { + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Type string `json:"type"` +} + type ListStorageProvidersParams struct { p map[string]interface{} } @@ -909,16 +1259,19 @@ type ListStoragePoolObjectsResponse struct { } type StoragePoolObject struct { - Format string `json:"format"` - Isdirectory bool `json:"isdirectory"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Lastupdated string `json:"lastupdated"` - Name string `json:"name"` - Size int64 `json:"size"` - Snapshotid string `json:"snapshotid"` - Templateid string `json:"templateid"` - Volumeid string `json:"volumeid"` + Format string `json:"format"` + Isdirectory bool `json:"isdirectory"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Lastupdated string `json:"lastupdated"` + Name string `json:"name"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + Snapshotname string `json:"snapshotname"` + Templateid string `json:"templateid"` + Templatename string `json:"templatename"` + Volumeid string `json:"volumeid"` + Volumename string `json:"volumename"` } type UpdateObjectStoragePoolParams struct { @@ -1362,6 +1715,10 @@ func (p *ListStoragePoolsMetricsParams) toURLValues() url.Values { if v, found := p.p["status"]; found { u.Set("status", v.(string)) } + if v, found := p.p["storagecustomstats"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("storagecustomstats", vv) + } if v, found := p.p["zoneid"]; found { u.Set("zoneid", v.(string)) } @@ -1620,6 +1977,27 @@ func (p *ListStoragePoolsMetricsParams) GetStatus() (string, bool) { return value, ok } +func (p *ListStoragePoolsMetricsParams) SetStoragecustomstats(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["storagecustomstats"] = v +} + +func (p *ListStoragePoolsMetricsParams) ResetStoragecustomstats() { + if p.p != nil && p.p["storagecustomstats"] != nil { + delete(p.p, "storagecustomstats") + } +} + +func (p *ListStoragePoolsMetricsParams) GetStoragecustomstats() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["storagecustomstats"].(bool) + return value, ok +} + func (p *ListStoragePoolsMetricsParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) @@ -1772,7 +2150,9 @@ type StoragePoolsMetric struct { Istagarule bool `json:"istagarule"` JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` + Managed bool `json:"managed"` Name string `json:"name"` + Nfsmountopts string `json:"nfsmountopts"` Overprovisionfactor string `json:"overprovisionfactor"` Path string `json:"path"` Podid string `json:"podid"` @@ -1783,6 +2163,7 @@ type StoragePoolsMetric struct { Storageallocateddisablethreshold bool `json:"storageallocateddisablethreshold"` Storageallocatedthreshold bool `json:"storageallocatedthreshold"` Storagecapabilities map[string]string `json:"storagecapabilities"` + Storagecustomstats map[string]string `json:"storagecustomstats"` Storageusagedisablethreshold bool `json:"storageusagedisablethreshold"` Storageusagethreshold bool `json:"storageusagethreshold"` Suitableformigration bool `json:"suitableformigration"` diff --git a/cloudstack/StoragePoolService_mock.go b/cloudstack/StoragePoolService_mock.go index 68258006..25b2f1b2 100644 --- a/cloudstack/StoragePoolService_mock.go +++ b/cloudstack/StoragePoolService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/StoragePoolService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/StoragePoolService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/StoragePoolService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockStoragePoolServiceIface is a mock of StoragePoolServiceIface interface. type MockStoragePoolServiceIface struct { ctrl *gomock.Controller recorder *MockStoragePoolServiceIfaceMockRecorder + isgomock struct{} } // MockStoragePoolServiceIfaceMockRecorder is the mock recorder for MockStoragePoolServiceIface. @@ -62,7 +68,7 @@ func (m *MockStoragePoolServiceIface) AddObjectStoragePool(p *AddObjectStoragePo } // AddObjectStoragePool indicates an expected call of AddObjectStoragePool. -func (mr *MockStoragePoolServiceIfaceMockRecorder) AddObjectStoragePool(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) AddObjectStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddObjectStoragePool", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).AddObjectStoragePool), p) } @@ -77,11 +83,26 @@ func (m *MockStoragePoolServiceIface) CancelStorageMaintenance(p *CancelStorageM } // CancelStorageMaintenance indicates an expected call of CancelStorageMaintenance. -func (mr *MockStoragePoolServiceIfaceMockRecorder) CancelStorageMaintenance(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) CancelStorageMaintenance(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelStorageMaintenance", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).CancelStorageMaintenance), p) } +// ChangeStoragePoolScope mocks base method. +func (m *MockStoragePoolServiceIface) ChangeStoragePoolScope(p *ChangeStoragePoolScopeParams) (*ChangeStoragePoolScopeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChangeStoragePoolScope", p) + ret0, _ := ret[0].(*ChangeStoragePoolScopeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ChangeStoragePoolScope indicates an expected call of ChangeStoragePoolScope. +func (mr *MockStoragePoolServiceIfaceMockRecorder) ChangeStoragePoolScope(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeStoragePoolScope", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).ChangeStoragePoolScope), p) +} + // DeleteObjectStoragePool mocks base method. func (m *MockStoragePoolServiceIface) DeleteObjectStoragePool(p *DeleteObjectStoragePoolParams) (*DeleteObjectStoragePoolResponse, error) { m.ctrl.T.Helper() @@ -92,7 +113,7 @@ func (m *MockStoragePoolServiceIface) DeleteObjectStoragePool(p *DeleteObjectSto } // DeleteObjectStoragePool indicates an expected call of DeleteObjectStoragePool. -func (mr *MockStoragePoolServiceIfaceMockRecorder) DeleteObjectStoragePool(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) DeleteObjectStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectStoragePool", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).DeleteObjectStoragePool), p) } @@ -107,15 +128,36 @@ func (m *MockStoragePoolServiceIface) EnableStorageMaintenance(p *EnableStorageM } // EnableStorageMaintenance indicates an expected call of EnableStorageMaintenance. -func (mr *MockStoragePoolServiceIfaceMockRecorder) EnableStorageMaintenance(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) EnableStorageMaintenance(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableStorageMaintenance", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).EnableStorageMaintenance), p) } +// GetAffectedVmsForStorageScopeChangeID mocks base method. +func (m *MockStoragePoolServiceIface) GetAffectedVmsForStorageScopeChangeID(keyword, clusterid, storageid string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{keyword, clusterid, storageid} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetAffectedVmsForStorageScopeChangeID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetAffectedVmsForStorageScopeChangeID indicates an expected call of GetAffectedVmsForStorageScopeChangeID. +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetAffectedVmsForStorageScopeChangeID(keyword, clusterid, storageid any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{keyword, clusterid, storageid}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffectedVmsForStorageScopeChangeID", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetAffectedVmsForStorageScopeChangeID), varargs...) +} + // GetObjectStoragePoolByID mocks base method. func (m *MockStoragePoolServiceIface) GetObjectStoragePoolByID(id string, opts ...OptionFunc) (*ObjectStoragePool, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +169,16 @@ func (m *MockStoragePoolServiceIface) GetObjectStoragePoolByID(id string, opts . } // GetObjectStoragePoolByID indicates an expected call of GetObjectStoragePoolByID. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetObjectStoragePoolByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetObjectStoragePoolByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectStoragePoolByID", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetObjectStoragePoolByID), varargs...) } // GetObjectStoragePoolByName mocks base method. func (m *MockStoragePoolServiceIface) GetObjectStoragePoolByName(name string, opts ...OptionFunc) (*ObjectStoragePool, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -148,16 +190,16 @@ func (m *MockStoragePoolServiceIface) GetObjectStoragePoolByName(name string, op } // GetObjectStoragePoolByName indicates an expected call of GetObjectStoragePoolByName. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetObjectStoragePoolByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetObjectStoragePoolByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectStoragePoolByName", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetObjectStoragePoolByName), varargs...) } // GetObjectStoragePoolID mocks base method. func (m *MockStoragePoolServiceIface) GetObjectStoragePoolID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -169,16 +211,16 @@ func (m *MockStoragePoolServiceIface) GetObjectStoragePoolID(name string, opts . } // GetObjectStoragePoolID indicates an expected call of GetObjectStoragePoolID. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetObjectStoragePoolID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetObjectStoragePoolID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectStoragePoolID", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetObjectStoragePoolID), varargs...) } // GetStoragePoolObjectByID mocks base method. func (m *MockStoragePoolServiceIface) GetStoragePoolObjectByID(id string, opts ...OptionFunc) (*StoragePoolObject, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -190,16 +232,16 @@ func (m *MockStoragePoolServiceIface) GetStoragePoolObjectByID(id string, opts . } // GetStoragePoolObjectByID indicates an expected call of GetStoragePoolObjectByID. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolObjectByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolObjectByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolObjectByID", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetStoragePoolObjectByID), varargs...) } // GetStoragePoolsMetricByID mocks base method. func (m *MockStoragePoolServiceIface) GetStoragePoolsMetricByID(id string, opts ...OptionFunc) (*StoragePoolsMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -211,16 +253,16 @@ func (m *MockStoragePoolServiceIface) GetStoragePoolsMetricByID(id string, opts } // GetStoragePoolsMetricByID indicates an expected call of GetStoragePoolsMetricByID. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolsMetricByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolsMetricByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolsMetricByID", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetStoragePoolsMetricByID), varargs...) } // GetStoragePoolsMetricByName mocks base method. func (m *MockStoragePoolServiceIface) GetStoragePoolsMetricByName(name string, opts ...OptionFunc) (*StoragePoolsMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -232,16 +274,16 @@ func (m *MockStoragePoolServiceIface) GetStoragePoolsMetricByName(name string, o } // GetStoragePoolsMetricByName indicates an expected call of GetStoragePoolsMetricByName. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolsMetricByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolsMetricByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolsMetricByName", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetStoragePoolsMetricByName), varargs...) } // GetStoragePoolsMetricID mocks base method. func (m *MockStoragePoolServiceIface) GetStoragePoolsMetricID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -253,12 +295,27 @@ func (m *MockStoragePoolServiceIface) GetStoragePoolsMetricID(name string, opts } // GetStoragePoolsMetricID indicates an expected call of GetStoragePoolsMetricID. -func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolsMetricID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) GetStoragePoolsMetricID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStoragePoolsMetricID", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).GetStoragePoolsMetricID), varargs...) } +// ListAffectedVmsForStorageScopeChange mocks base method. +func (m *MockStoragePoolServiceIface) ListAffectedVmsForStorageScopeChange(p *ListAffectedVmsForStorageScopeChangeParams) (*ListAffectedVmsForStorageScopeChangeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAffectedVmsForStorageScopeChange", p) + ret0, _ := ret[0].(*ListAffectedVmsForStorageScopeChangeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAffectedVmsForStorageScopeChange indicates an expected call of ListAffectedVmsForStorageScopeChange. +func (mr *MockStoragePoolServiceIfaceMockRecorder) ListAffectedVmsForStorageScopeChange(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffectedVmsForStorageScopeChange", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).ListAffectedVmsForStorageScopeChange), p) +} + // ListObjectStoragePools mocks base method. func (m *MockStoragePoolServiceIface) ListObjectStoragePools(p *ListObjectStoragePoolsParams) (*ListObjectStoragePoolsResponse, error) { m.ctrl.T.Helper() @@ -269,7 +326,7 @@ func (m *MockStoragePoolServiceIface) ListObjectStoragePools(p *ListObjectStorag } // ListObjectStoragePools indicates an expected call of ListObjectStoragePools. -func (mr *MockStoragePoolServiceIfaceMockRecorder) ListObjectStoragePools(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) ListObjectStoragePools(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectStoragePools", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).ListObjectStoragePools), p) } @@ -284,7 +341,7 @@ func (m *MockStoragePoolServiceIface) ListStoragePoolObjects(p *ListStoragePoolO } // ListStoragePoolObjects indicates an expected call of ListStoragePoolObjects. -func (mr *MockStoragePoolServiceIfaceMockRecorder) ListStoragePoolObjects(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) ListStoragePoolObjects(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStoragePoolObjects", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).ListStoragePoolObjects), p) } @@ -299,7 +356,7 @@ func (m *MockStoragePoolServiceIface) ListStoragePoolsMetrics(p *ListStoragePool } // ListStoragePoolsMetrics indicates an expected call of ListStoragePoolsMetrics. -func (mr *MockStoragePoolServiceIfaceMockRecorder) ListStoragePoolsMetrics(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) ListStoragePoolsMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStoragePoolsMetrics", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).ListStoragePoolsMetrics), p) } @@ -314,7 +371,7 @@ func (m *MockStoragePoolServiceIface) ListStorageProviders(p *ListStorageProvide } // ListStorageProviders indicates an expected call of ListStorageProviders. -func (mr *MockStoragePoolServiceIfaceMockRecorder) ListStorageProviders(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) ListStorageProviders(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStorageProviders", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).ListStorageProviders), p) } @@ -328,7 +385,7 @@ func (m *MockStoragePoolServiceIface) NewAddObjectStoragePoolParams(name, provid } // NewAddObjectStoragePoolParams indicates an expected call of NewAddObjectStoragePoolParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewAddObjectStoragePoolParams(name, provider, url interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewAddObjectStoragePoolParams(name, provider, url any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddObjectStoragePoolParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewAddObjectStoragePoolParams), name, provider, url) } @@ -342,11 +399,25 @@ func (m *MockStoragePoolServiceIface) NewCancelStorageMaintenanceParams(id strin } // NewCancelStorageMaintenanceParams indicates an expected call of NewCancelStorageMaintenanceParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewCancelStorageMaintenanceParams(id interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewCancelStorageMaintenanceParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCancelStorageMaintenanceParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewCancelStorageMaintenanceParams), id) } +// NewChangeStoragePoolScopeParams mocks base method. +func (m *MockStoragePoolServiceIface) NewChangeStoragePoolScopeParams(id, scope string) *ChangeStoragePoolScopeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewChangeStoragePoolScopeParams", id, scope) + ret0, _ := ret[0].(*ChangeStoragePoolScopeParams) + return ret0 +} + +// NewChangeStoragePoolScopeParams indicates an expected call of NewChangeStoragePoolScopeParams. +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewChangeStoragePoolScopeParams(id, scope any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeStoragePoolScopeParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewChangeStoragePoolScopeParams), id, scope) +} + // NewDeleteObjectStoragePoolParams mocks base method. func (m *MockStoragePoolServiceIface) NewDeleteObjectStoragePoolParams(id string) *DeleteObjectStoragePoolParams { m.ctrl.T.Helper() @@ -356,7 +427,7 @@ func (m *MockStoragePoolServiceIface) NewDeleteObjectStoragePoolParams(id string } // NewDeleteObjectStoragePoolParams indicates an expected call of NewDeleteObjectStoragePoolParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewDeleteObjectStoragePoolParams(id interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewDeleteObjectStoragePoolParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteObjectStoragePoolParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewDeleteObjectStoragePoolParams), id) } @@ -370,11 +441,25 @@ func (m *MockStoragePoolServiceIface) NewEnableStorageMaintenanceParams(id strin } // NewEnableStorageMaintenanceParams indicates an expected call of NewEnableStorageMaintenanceParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewEnableStorageMaintenanceParams(id interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewEnableStorageMaintenanceParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableStorageMaintenanceParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewEnableStorageMaintenanceParams), id) } +// NewListAffectedVmsForStorageScopeChangeParams mocks base method. +func (m *MockStoragePoolServiceIface) NewListAffectedVmsForStorageScopeChangeParams(clusterid, storageid string) *ListAffectedVmsForStorageScopeChangeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListAffectedVmsForStorageScopeChangeParams", clusterid, storageid) + ret0, _ := ret[0].(*ListAffectedVmsForStorageScopeChangeParams) + return ret0 +} + +// NewListAffectedVmsForStorageScopeChangeParams indicates an expected call of NewListAffectedVmsForStorageScopeChangeParams. +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewListAffectedVmsForStorageScopeChangeParams(clusterid, storageid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListAffectedVmsForStorageScopeChangeParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewListAffectedVmsForStorageScopeChangeParams), clusterid, storageid) +} + // NewListObjectStoragePoolsParams mocks base method. func (m *MockStoragePoolServiceIface) NewListObjectStoragePoolsParams() *ListObjectStoragePoolsParams { m.ctrl.T.Helper() @@ -398,7 +483,7 @@ func (m *MockStoragePoolServiceIface) NewListStoragePoolObjectsParams(id string) } // NewListStoragePoolObjectsParams indicates an expected call of NewListStoragePoolObjectsParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewListStoragePoolObjectsParams(id interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewListStoragePoolObjectsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListStoragePoolObjectsParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewListStoragePoolObjectsParams), id) } @@ -426,7 +511,7 @@ func (m *MockStoragePoolServiceIface) NewListStorageProvidersParams(storagePoolT } // NewListStorageProvidersParams indicates an expected call of NewListStorageProvidersParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewListStorageProvidersParams(storagePoolType interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewListStorageProvidersParams(storagePoolType any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListStorageProvidersParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewListStorageProvidersParams), storagePoolType) } @@ -440,7 +525,7 @@ func (m *MockStoragePoolServiceIface) NewUpdateObjectStoragePoolParams(id string } // NewUpdateObjectStoragePoolParams indicates an expected call of NewUpdateObjectStoragePoolParams. -func (mr *MockStoragePoolServiceIfaceMockRecorder) NewUpdateObjectStoragePoolParams(id interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) NewUpdateObjectStoragePoolParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateObjectStoragePoolParams", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).NewUpdateObjectStoragePoolParams), id) } @@ -455,7 +540,7 @@ func (m *MockStoragePoolServiceIface) UpdateObjectStoragePool(p *UpdateObjectSto } // UpdateObjectStoragePool indicates an expected call of UpdateObjectStoragePool. -func (mr *MockStoragePoolServiceIfaceMockRecorder) UpdateObjectStoragePool(p interface{}) *gomock.Call { +func (mr *MockStoragePoolServiceIfaceMockRecorder) UpdateObjectStoragePool(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateObjectStoragePool", reflect.TypeOf((*MockStoragePoolServiceIface)(nil).UpdateObjectStoragePool), p) } diff --git a/cloudstack/StratosphereSSPService_mock.go b/cloudstack/StratosphereSSPService_mock.go index db68b97e..536718be 100644 --- a/cloudstack/StratosphereSSPService_mock.go +++ b/cloudstack/StratosphereSSPService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/StratosphereSSPService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/StratosphereSSPService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/StratosphereSSPService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockStratosphereSSPServiceIface is a mock of StratosphereSSPServiceIface interface. type MockStratosphereSSPServiceIface struct { ctrl *gomock.Controller recorder *MockStratosphereSSPServiceIfaceMockRecorder + isgomock struct{} } // MockStratosphereSSPServiceIfaceMockRecorder is the mock recorder for MockStratosphereSSPServiceIface. @@ -62,7 +68,7 @@ func (m *MockStratosphereSSPServiceIface) AddStratosphereSsp(p *AddStratosphereS } // AddStratosphereSsp indicates an expected call of AddStratosphereSsp. -func (mr *MockStratosphereSSPServiceIfaceMockRecorder) AddStratosphereSsp(p interface{}) *gomock.Call { +func (mr *MockStratosphereSSPServiceIfaceMockRecorder) AddStratosphereSsp(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddStratosphereSsp", reflect.TypeOf((*MockStratosphereSSPServiceIface)(nil).AddStratosphereSsp), p) } @@ -77,7 +83,7 @@ func (m *MockStratosphereSSPServiceIface) DeleteStratosphereSsp(p *DeleteStratos } // DeleteStratosphereSsp indicates an expected call of DeleteStratosphereSsp. -func (mr *MockStratosphereSSPServiceIfaceMockRecorder) DeleteStratosphereSsp(p interface{}) *gomock.Call { +func (mr *MockStratosphereSSPServiceIfaceMockRecorder) DeleteStratosphereSsp(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteStratosphereSsp", reflect.TypeOf((*MockStratosphereSSPServiceIface)(nil).DeleteStratosphereSsp), p) } @@ -91,7 +97,7 @@ func (m *MockStratosphereSSPServiceIface) NewAddStratosphereSspParams(name, url, } // NewAddStratosphereSspParams indicates an expected call of NewAddStratosphereSspParams. -func (mr *MockStratosphereSSPServiceIfaceMockRecorder) NewAddStratosphereSspParams(name, url, zoneid interface{}) *gomock.Call { +func (mr *MockStratosphereSSPServiceIfaceMockRecorder) NewAddStratosphereSspParams(name, url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddStratosphereSspParams", reflect.TypeOf((*MockStratosphereSSPServiceIface)(nil).NewAddStratosphereSspParams), name, url, zoneid) } @@ -105,7 +111,7 @@ func (m *MockStratosphereSSPServiceIface) NewDeleteStratosphereSspParams(hostid } // NewDeleteStratosphereSspParams indicates an expected call of NewDeleteStratosphereSspParams. -func (mr *MockStratosphereSSPServiceIfaceMockRecorder) NewDeleteStratosphereSspParams(hostid interface{}) *gomock.Call { +func (mr *MockStratosphereSSPServiceIfaceMockRecorder) NewDeleteStratosphereSspParams(hostid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteStratosphereSspParams", reflect.TypeOf((*MockStratosphereSSPServiceIface)(nil).NewDeleteStratosphereSspParams), hostid) } diff --git a/cloudstack/SwiftService_mock.go b/cloudstack/SwiftService_mock.go index 9e870a79..879eb804 100644 --- a/cloudstack/SwiftService_mock.go +++ b/cloudstack/SwiftService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/SwiftService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SwiftService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SwiftService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockSwiftServiceIface is a mock of SwiftServiceIface interface. type MockSwiftServiceIface struct { ctrl *gomock.Controller recorder *MockSwiftServiceIfaceMockRecorder + isgomock struct{} } // MockSwiftServiceIfaceMockRecorder is the mock recorder for MockSwiftServiceIface. @@ -62,7 +68,7 @@ func (m *MockSwiftServiceIface) AddSwift(p *AddSwiftParams) (*AddSwiftResponse, } // AddSwift indicates an expected call of AddSwift. -func (mr *MockSwiftServiceIfaceMockRecorder) AddSwift(p interface{}) *gomock.Call { +func (mr *MockSwiftServiceIfaceMockRecorder) AddSwift(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddSwift", reflect.TypeOf((*MockSwiftServiceIface)(nil).AddSwift), p) } @@ -70,7 +76,7 @@ func (mr *MockSwiftServiceIfaceMockRecorder) AddSwift(p interface{}) *gomock.Cal // GetSwiftID mocks base method. func (m *MockSwiftServiceIface) GetSwiftID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -82,9 +88,9 @@ func (m *MockSwiftServiceIface) GetSwiftID(keyword string, opts ...OptionFunc) ( } // GetSwiftID indicates an expected call of GetSwiftID. -func (mr *MockSwiftServiceIfaceMockRecorder) GetSwiftID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSwiftServiceIfaceMockRecorder) GetSwiftID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSwiftID", reflect.TypeOf((*MockSwiftServiceIface)(nil).GetSwiftID), varargs...) } @@ -98,7 +104,7 @@ func (m *MockSwiftServiceIface) ListSwifts(p *ListSwiftsParams) (*ListSwiftsResp } // ListSwifts indicates an expected call of ListSwifts. -func (mr *MockSwiftServiceIfaceMockRecorder) ListSwifts(p interface{}) *gomock.Call { +func (mr *MockSwiftServiceIfaceMockRecorder) ListSwifts(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSwifts", reflect.TypeOf((*MockSwiftServiceIface)(nil).ListSwifts), p) } @@ -112,7 +118,7 @@ func (m *MockSwiftServiceIface) NewAddSwiftParams(url string) *AddSwiftParams { } // NewAddSwiftParams indicates an expected call of NewAddSwiftParams. -func (mr *MockSwiftServiceIfaceMockRecorder) NewAddSwiftParams(url interface{}) *gomock.Call { +func (mr *MockSwiftServiceIfaceMockRecorder) NewAddSwiftParams(url any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddSwiftParams", reflect.TypeOf((*MockSwiftServiceIface)(nil).NewAddSwiftParams), url) } diff --git a/cloudstack/SystemCapacityService_mock.go b/cloudstack/SystemCapacityService_mock.go index 7d3504c4..ba648387 100644 --- a/cloudstack/SystemCapacityService_mock.go +++ b/cloudstack/SystemCapacityService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/SystemCapacityService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SystemCapacityService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SystemCapacityService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockSystemCapacityServiceIface is a mock of SystemCapacityServiceIface interface. type MockSystemCapacityServiceIface struct { ctrl *gomock.Controller recorder *MockSystemCapacityServiceIfaceMockRecorder + isgomock struct{} } // MockSystemCapacityServiceIfaceMockRecorder is the mock recorder for MockSystemCapacityServiceIface. @@ -62,7 +68,7 @@ func (m *MockSystemCapacityServiceIface) ListCapacity(p *ListCapacityParams) (*L } // ListCapacity indicates an expected call of ListCapacity. -func (mr *MockSystemCapacityServiceIfaceMockRecorder) ListCapacity(p interface{}) *gomock.Call { +func (mr *MockSystemCapacityServiceIfaceMockRecorder) ListCapacity(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCapacity", reflect.TypeOf((*MockSystemCapacityServiceIface)(nil).ListCapacity), p) } diff --git a/cloudstack/SystemVMService.go b/cloudstack/SystemVMService.go index a6ec2110..48f3b650 100644 --- a/cloudstack/SystemVMService.go +++ b/cloudstack/SystemVMService.go @@ -37,6 +37,11 @@ type SystemVMServiceIface interface { GetSystemVmID(name string, opts ...OptionFunc) (string, int, error) GetSystemVmByName(name string, opts ...OptionFunc) (*SystemVm, int, error) GetSystemVmByID(id string, opts ...OptionFunc) (*SystemVm, int, error) + ListSystemVmsUsageHistory(p *ListSystemVmsUsageHistoryParams) (*ListSystemVmsUsageHistoryResponse, error) + NewListSystemVmsUsageHistoryParams() *ListSystemVmsUsageHistoryParams + GetSystemVmsUsageHistoryID(name string, opts ...OptionFunc) (string, int, error) + GetSystemVmsUsageHistoryByName(name string, opts ...OptionFunc) (*SystemVmsUsageHistory, int, error) + GetSystemVmsUsageHistoryByID(id string, opts ...OptionFunc) (*SystemVmsUsageHistory, int, error) MigrateSystemVm(p *MigrateSystemVmParams) (*MigrateSystemVmResponse, error) NewMigrateSystemVmParams(virtualmachineid string) *MigrateSystemVmParams RebootSystemVm(p *RebootSystemVmParams) (*RebootSystemVmResponse, error) @@ -761,6 +766,333 @@ type SystemVm struct { Zonename string `json:"zonename"` } +type ListSystemVmsUsageHistoryParams struct { + p map[string]interface{} +} + +func (p *ListSystemVmsUsageHistoryParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["enddate"]; found { + u.Set("enddate", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("ids", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["startdate"]; found { + u.Set("startdate", v.(string)) + } + return u +} + +func (p *ListSystemVmsUsageHistoryParams) SetEnddate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["enddate"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetEnddate() { + if p.p != nil && p.p["enddate"] != nil { + delete(p.p, "enddate") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetEnddate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["enddate"].(string) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetIds(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ids"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetIds() { + if p.p != nil && p.p["ids"] != nil { + delete(p.p, "ids") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetIds() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ids"].([]string) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListSystemVmsUsageHistoryParams) SetStartdate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startdate"] = v +} + +func (p *ListSystemVmsUsageHistoryParams) ResetStartdate() { + if p.p != nil && p.p["startdate"] != nil { + delete(p.p, "startdate") + } +} + +func (p *ListSystemVmsUsageHistoryParams) GetStartdate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startdate"].(string) + return value, ok +} + +// You should always use this function to get a new ListSystemVmsUsageHistoryParams instance, +// as then you are sure you have configured all required params +func (s *SystemVMService) NewListSystemVmsUsageHistoryParams() *ListSystemVmsUsageHistoryParams { + p := &ListSystemVmsUsageHistoryParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *SystemVMService) GetSystemVmsUsageHistoryID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListSystemVmsUsageHistoryParams{} + 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.ListSystemVmsUsageHistory(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.SystemVmsUsageHistory[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.SystemVmsUsageHistory { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *SystemVMService) GetSystemVmsUsageHistoryByName(name string, opts ...OptionFunc) (*SystemVmsUsageHistory, int, error) { + id, count, err := s.GetSystemVmsUsageHistoryID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetSystemVmsUsageHistoryByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *SystemVMService) GetSystemVmsUsageHistoryByID(id string, opts ...OptionFunc) (*SystemVmsUsageHistory, int, error) { + p := &ListSystemVmsUsageHistoryParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListSystemVmsUsageHistory(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.SystemVmsUsageHistory[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for SystemVmsUsageHistory UUID: %s!", id) +} + +// Lists System VM stats +func (s *SystemVMService) ListSystemVmsUsageHistory(p *ListSystemVmsUsageHistoryParams) (*ListSystemVmsUsageHistoryResponse, error) { + resp, err := s.cs.newRequest("listSystemVmsUsageHistory", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListSystemVmsUsageHistoryResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListSystemVmsUsageHistoryResponse struct { + Count int `json:"count"` + SystemVmsUsageHistory []*SystemVmsUsageHistory `json:"systemvmsusagehistory"` +} + +type SystemVmsUsageHistory struct { + Displayname string `json:"displayname"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Stats []string `json:"stats"` +} + type MigrateSystemVmParams struct { p map[string]interface{} } diff --git a/cloudstack/SystemVMService_mock.go b/cloudstack/SystemVMService_mock.go index d29fbcbc..e8f5f301 100644 --- a/cloudstack/SystemVMService_mock.go +++ b/cloudstack/SystemVMService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/SystemVMService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/SystemVMService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/SystemVMService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockSystemVMServiceIface is a mock of SystemVMServiceIface interface. type MockSystemVMServiceIface struct { ctrl *gomock.Controller recorder *MockSystemVMServiceIfaceMockRecorder + isgomock struct{} } // MockSystemVMServiceIfaceMockRecorder is the mock recorder for MockSystemVMServiceIface. @@ -62,7 +68,7 @@ func (m *MockSystemVMServiceIface) ChangeServiceForSystemVm(p *ChangeServiceForS } // ChangeServiceForSystemVm indicates an expected call of ChangeServiceForSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) ChangeServiceForSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) ChangeServiceForSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeServiceForSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).ChangeServiceForSystemVm), p) } @@ -77,7 +83,7 @@ func (m *MockSystemVMServiceIface) DestroySystemVm(p *DestroySystemVmParams) (*D } // DestroySystemVm indicates an expected call of DestroySystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) DestroySystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) DestroySystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DestroySystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).DestroySystemVm), p) } @@ -85,7 +91,7 @@ func (mr *MockSystemVMServiceIfaceMockRecorder) DestroySystemVm(p interface{}) * // GetSystemVmByID mocks base method. func (m *MockSystemVMServiceIface) GetSystemVmByID(id string, opts ...OptionFunc) (*SystemVm, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockSystemVMServiceIface) GetSystemVmByID(id string, opts ...OptionFunc } // GetSystemVmByID indicates an expected call of GetSystemVmByID. -func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemVmByID", reflect.TypeOf((*MockSystemVMServiceIface)(nil).GetSystemVmByID), varargs...) } // GetSystemVmByName mocks base method. func (m *MockSystemVMServiceIface) GetSystemVmByName(name string, opts ...OptionFunc) (*SystemVm, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockSystemVMServiceIface) GetSystemVmByName(name string, opts ...Option } // GetSystemVmByName indicates an expected call of GetSystemVmByName. -func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemVmByName", reflect.TypeOf((*MockSystemVMServiceIface)(nil).GetSystemVmByName), varargs...) } // GetSystemVmID mocks base method. func (m *MockSystemVMServiceIface) GetSystemVmID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,12 +145,75 @@ func (m *MockSystemVMServiceIface) GetSystemVmID(name string, opts ...OptionFunc } // GetSystemVmID indicates an expected call of GetSystemVmID. -func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemVmID", reflect.TypeOf((*MockSystemVMServiceIface)(nil).GetSystemVmID), varargs...) } +// GetSystemVmsUsageHistoryByID mocks base method. +func (m *MockSystemVMServiceIface) GetSystemVmsUsageHistoryByID(id string, opts ...OptionFunc) (*SystemVmsUsageHistory, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetSystemVmsUsageHistoryByID", varargs...) + ret0, _ := ret[0].(*SystemVmsUsageHistory) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetSystemVmsUsageHistoryByID indicates an expected call of GetSystemVmsUsageHistoryByID. +func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmsUsageHistoryByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemVmsUsageHistoryByID", reflect.TypeOf((*MockSystemVMServiceIface)(nil).GetSystemVmsUsageHistoryByID), varargs...) +} + +// GetSystemVmsUsageHistoryByName mocks base method. +func (m *MockSystemVMServiceIface) GetSystemVmsUsageHistoryByName(name string, opts ...OptionFunc) (*SystemVmsUsageHistory, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetSystemVmsUsageHistoryByName", varargs...) + ret0, _ := ret[0].(*SystemVmsUsageHistory) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetSystemVmsUsageHistoryByName indicates an expected call of GetSystemVmsUsageHistoryByName. +func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmsUsageHistoryByName(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemVmsUsageHistoryByName", reflect.TypeOf((*MockSystemVMServiceIface)(nil).GetSystemVmsUsageHistoryByName), varargs...) +} + +// GetSystemVmsUsageHistoryID mocks base method. +func (m *MockSystemVMServiceIface) GetSystemVmsUsageHistoryID(name string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetSystemVmsUsageHistoryID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetSystemVmsUsageHistoryID indicates an expected call of GetSystemVmsUsageHistoryID. +func (mr *MockSystemVMServiceIfaceMockRecorder) GetSystemVmsUsageHistoryID(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemVmsUsageHistoryID", reflect.TypeOf((*MockSystemVMServiceIface)(nil).GetSystemVmsUsageHistoryID), varargs...) +} + // ListSystemVms mocks base method. func (m *MockSystemVMServiceIface) ListSystemVms(p *ListSystemVmsParams) (*ListSystemVmsResponse, error) { m.ctrl.T.Helper() @@ -155,11 +224,26 @@ func (m *MockSystemVMServiceIface) ListSystemVms(p *ListSystemVmsParams) (*ListS } // ListSystemVms indicates an expected call of ListSystemVms. -func (mr *MockSystemVMServiceIfaceMockRecorder) ListSystemVms(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) ListSystemVms(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSystemVms", reflect.TypeOf((*MockSystemVMServiceIface)(nil).ListSystemVms), p) } +// ListSystemVmsUsageHistory mocks base method. +func (m *MockSystemVMServiceIface) ListSystemVmsUsageHistory(p *ListSystemVmsUsageHistoryParams) (*ListSystemVmsUsageHistoryResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListSystemVmsUsageHistory", p) + ret0, _ := ret[0].(*ListSystemVmsUsageHistoryResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListSystemVmsUsageHistory indicates an expected call of ListSystemVmsUsageHistory. +func (mr *MockSystemVMServiceIfaceMockRecorder) ListSystemVmsUsageHistory(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSystemVmsUsageHistory", reflect.TypeOf((*MockSystemVMServiceIface)(nil).ListSystemVmsUsageHistory), p) +} + // MigrateSystemVm mocks base method. func (m *MockSystemVMServiceIface) MigrateSystemVm(p *MigrateSystemVmParams) (*MigrateSystemVmResponse, error) { m.ctrl.T.Helper() @@ -170,7 +254,7 @@ func (m *MockSystemVMServiceIface) MigrateSystemVm(p *MigrateSystemVmParams) (*M } // MigrateSystemVm indicates an expected call of MigrateSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) MigrateSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) MigrateSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).MigrateSystemVm), p) } @@ -184,7 +268,7 @@ func (m *MockSystemVMServiceIface) NewChangeServiceForSystemVmParams(id, service } // NewChangeServiceForSystemVmParams indicates an expected call of NewChangeServiceForSystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewChangeServiceForSystemVmParams(id, serviceofferingid interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewChangeServiceForSystemVmParams(id, serviceofferingid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeServiceForSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewChangeServiceForSystemVmParams), id, serviceofferingid) } @@ -198,7 +282,7 @@ func (m *MockSystemVMServiceIface) NewDestroySystemVmParams(id string) *DestroyS } // NewDestroySystemVmParams indicates an expected call of NewDestroySystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewDestroySystemVmParams(id interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewDestroySystemVmParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDestroySystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewDestroySystemVmParams), id) } @@ -217,6 +301,20 @@ func (mr *MockSystemVMServiceIfaceMockRecorder) NewListSystemVmsParams() *gomock return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSystemVmsParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewListSystemVmsParams)) } +// NewListSystemVmsUsageHistoryParams mocks base method. +func (m *MockSystemVMServiceIface) NewListSystemVmsUsageHistoryParams() *ListSystemVmsUsageHistoryParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListSystemVmsUsageHistoryParams") + ret0, _ := ret[0].(*ListSystemVmsUsageHistoryParams) + return ret0 +} + +// NewListSystemVmsUsageHistoryParams indicates an expected call of NewListSystemVmsUsageHistoryParams. +func (mr *MockSystemVMServiceIfaceMockRecorder) NewListSystemVmsUsageHistoryParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListSystemVmsUsageHistoryParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewListSystemVmsUsageHistoryParams)) +} + // NewMigrateSystemVmParams mocks base method. func (m *MockSystemVMServiceIface) NewMigrateSystemVmParams(virtualmachineid string) *MigrateSystemVmParams { m.ctrl.T.Helper() @@ -226,7 +324,7 @@ func (m *MockSystemVMServiceIface) NewMigrateSystemVmParams(virtualmachineid str } // NewMigrateSystemVmParams indicates an expected call of NewMigrateSystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewMigrateSystemVmParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewMigrateSystemVmParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewMigrateSystemVmParams), virtualmachineid) } @@ -254,7 +352,7 @@ func (m *MockSystemVMServiceIface) NewRebootSystemVmParams(id string) *RebootSys } // NewRebootSystemVmParams indicates an expected call of NewRebootSystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewRebootSystemVmParams(id interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewRebootSystemVmParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRebootSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewRebootSystemVmParams), id) } @@ -268,7 +366,7 @@ func (m *MockSystemVMServiceIface) NewScaleSystemVmParams(id, serviceofferingid } // NewScaleSystemVmParams indicates an expected call of NewScaleSystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewScaleSystemVmParams(id, serviceofferingid interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewScaleSystemVmParams(id, serviceofferingid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewScaleSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewScaleSystemVmParams), id, serviceofferingid) } @@ -282,7 +380,7 @@ func (m *MockSystemVMServiceIface) NewStartSystemVmParams(id string) *StartSyste } // NewStartSystemVmParams indicates an expected call of NewStartSystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewStartSystemVmParams(id interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewStartSystemVmParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewStartSystemVmParams), id) } @@ -296,7 +394,7 @@ func (m *MockSystemVMServiceIface) NewStopSystemVmParams(id string) *StopSystemV } // NewStopSystemVmParams indicates an expected call of NewStopSystemVmParams. -func (mr *MockSystemVMServiceIfaceMockRecorder) NewStopSystemVmParams(id interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) NewStopSystemVmParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopSystemVmParams", reflect.TypeOf((*MockSystemVMServiceIface)(nil).NewStopSystemVmParams), id) } @@ -311,7 +409,7 @@ func (m *MockSystemVMServiceIface) PatchSystemVm(p *PatchSystemVmParams) (*Patch } // PatchSystemVm indicates an expected call of PatchSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) PatchSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) PatchSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PatchSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).PatchSystemVm), p) } @@ -326,7 +424,7 @@ func (m *MockSystemVMServiceIface) RebootSystemVm(p *RebootSystemVmParams) (*Reb } // RebootSystemVm indicates an expected call of RebootSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) RebootSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) RebootSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).RebootSystemVm), p) } @@ -341,7 +439,7 @@ func (m *MockSystemVMServiceIface) ScaleSystemVm(p *ScaleSystemVmParams) (*Scale } // ScaleSystemVm indicates an expected call of ScaleSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) ScaleSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) ScaleSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ScaleSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).ScaleSystemVm), p) } @@ -356,7 +454,7 @@ func (m *MockSystemVMServiceIface) StartSystemVm(p *StartSystemVmParams) (*Start } // StartSystemVm indicates an expected call of StartSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) StartSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) StartSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).StartSystemVm), p) } @@ -371,7 +469,7 @@ func (m *MockSystemVMServiceIface) StopSystemVm(p *StopSystemVmParams) (*StopSys } // StopSystemVm indicates an expected call of StopSystemVm. -func (mr *MockSystemVMServiceIfaceMockRecorder) StopSystemVm(p interface{}) *gomock.Call { +func (mr *MockSystemVMServiceIfaceMockRecorder) StopSystemVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopSystemVm", reflect.TypeOf((*MockSystemVMServiceIface)(nil).StopSystemVm), p) } diff --git a/cloudstack/TemplateService.go b/cloudstack/TemplateService.go index 66a36365..1d2b4291 100644 --- a/cloudstack/TemplateService.go +++ b/cloudstack/TemplateService.go @@ -56,11 +56,6 @@ type TemplateServiceIface interface { NewUpdateTemplatePermissionsParams(id string) *UpdateTemplatePermissionsParams UpgradeRouterTemplate(p *UpgradeRouterTemplateParams) (*UpgradeRouterTemplateResponse, error) NewUpgradeRouterTemplateParams() *UpgradeRouterTemplateParams - ListTemplateDirectDownloadCertificates(p *ListTemplateDirectDownloadCertificatesParams) (*ListTemplateDirectDownloadCertificatesResponse, error) - NewListTemplateDirectDownloadCertificatesParams() *ListTemplateDirectDownloadCertificatesParams - GetTemplateDirectDownloadCertificateByID(id string, opts ...OptionFunc) (*TemplateDirectDownloadCertificate, int, error) - ProvisionTemplateDirectDownloadCertificate(p *ProvisionTemplateDirectDownloadCertificateParams) (*ProvisionTemplateDirectDownloadCertificateResponse, error) - NewProvisionTemplateDirectDownloadCertificateParams(hostid string, id string) *ProvisionTemplateDirectDownloadCertificateParams LinkUserDataToTemplate(p *LinkUserDataToTemplateParams) (*LinkUserDataToTemplateResponse, error) NewLinkUserDataToTemplateParams() *LinkUserDataToTemplateParams } @@ -4776,336 +4771,6 @@ type UpgradeRouterTemplateResponse struct { Jobstatus int `json:"jobstatus"` } -type ListTemplateDirectDownloadCertificatesParams struct { - p map[string]interface{} -} - -func (p *ListTemplateDirectDownloadCertificatesParams) 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["keyword"]; found { - u.Set("keyword", v.(string)) - } - if v, found := p.p["listhosts"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("listhosts", vv) - } - if v, found := p.p["page"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("page", vv) - } - if v, found := p.p["pagesize"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("pagesize", vv) - } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) - } - return u -} - -func (p *ListTemplateDirectDownloadCertificatesParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["id"] = v -} - -func (p *ListTemplateDirectDownloadCertificatesParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") - } -} - -func (p *ListTemplateDirectDownloadCertificatesParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["id"].(string) - return value, ok -} - -func (p *ListTemplateDirectDownloadCertificatesParams) SetKeyword(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["keyword"] = v -} - -func (p *ListTemplateDirectDownloadCertificatesParams) ResetKeyword() { - if p.p != nil && p.p["keyword"] != nil { - delete(p.p, "keyword") - } -} - -func (p *ListTemplateDirectDownloadCertificatesParams) GetKeyword() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["keyword"].(string) - return value, ok -} - -func (p *ListTemplateDirectDownloadCertificatesParams) SetListhosts(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["listhosts"] = v -} - -func (p *ListTemplateDirectDownloadCertificatesParams) ResetListhosts() { - if p.p != nil && p.p["listhosts"] != nil { - delete(p.p, "listhosts") - } -} - -func (p *ListTemplateDirectDownloadCertificatesParams) GetListhosts() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["listhosts"].(bool) - return value, ok -} - -func (p *ListTemplateDirectDownloadCertificatesParams) SetPage(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["page"] = v -} - -func (p *ListTemplateDirectDownloadCertificatesParams) ResetPage() { - if p.p != nil && p.p["page"] != nil { - delete(p.p, "page") - } -} - -func (p *ListTemplateDirectDownloadCertificatesParams) GetPage() (int, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["page"].(int) - return value, ok -} - -func (p *ListTemplateDirectDownloadCertificatesParams) SetPagesize(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["pagesize"] = v -} - -func (p *ListTemplateDirectDownloadCertificatesParams) ResetPagesize() { - if p.p != nil && p.p["pagesize"] != nil { - delete(p.p, "pagesize") - } -} - -func (p *ListTemplateDirectDownloadCertificatesParams) GetPagesize() (int, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["pagesize"].(int) - return value, ok -} - -func (p *ListTemplateDirectDownloadCertificatesParams) SetZoneid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["zoneid"] = v -} - -func (p *ListTemplateDirectDownloadCertificatesParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") - } -} - -func (p *ListTemplateDirectDownloadCertificatesParams) GetZoneid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["zoneid"].(string) - return value, ok -} - -// You should always use this function to get a new ListTemplateDirectDownloadCertificatesParams instance, -// as then you are sure you have configured all required params -func (s *TemplateService) NewListTemplateDirectDownloadCertificatesParams() *ListTemplateDirectDownloadCertificatesParams { - p := &ListTemplateDirectDownloadCertificatesParams{} - p.p = make(map[string]interface{}) - return p -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *TemplateService) GetTemplateDirectDownloadCertificateByID(id string, opts ...OptionFunc) (*TemplateDirectDownloadCertificate, int, error) { - p := &ListTemplateDirectDownloadCertificatesParams{} - p.p = make(map[string]interface{}) - - p.p["id"] = id - - for _, fn := range append(s.cs.options, opts...) { - if err := fn(s.cs, p); err != nil { - return nil, -1, err - } - } - - l, err := s.ListTemplateDirectDownloadCertificates(p) - if err != nil { - if strings.Contains(err.Error(), fmt.Sprintf( - "Invalid parameter id value=%s due to incorrect long value format, "+ - "or entity does not exist", id)) { - return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) - } - return nil, -1, err - } - - if l.Count == 0 { - return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) - } - - if l.Count == 1 { - return l.TemplateDirectDownloadCertificates[0], l.Count, nil - } - return nil, l.Count, fmt.Errorf("There is more then one result for TemplateDirectDownloadCertificate UUID: %s!", id) -} - -// List the uploaded certificates for direct download templates -func (s *TemplateService) ListTemplateDirectDownloadCertificates(p *ListTemplateDirectDownloadCertificatesParams) (*ListTemplateDirectDownloadCertificatesResponse, error) { - resp, err := s.cs.newRequest("listTemplateDirectDownloadCertificates", p.toURLValues()) - if err != nil { - return nil, err - } - - var r ListTemplateDirectDownloadCertificatesResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - return &r, nil -} - -type ListTemplateDirectDownloadCertificatesResponse struct { - Count int `json:"count"` - TemplateDirectDownloadCertificates []*TemplateDirectDownloadCertificate `json:"templatedirectdownloadcertificate"` -} - -type TemplateDirectDownloadCertificate struct { - Alias string `json:"alias"` - Hostsmap []string `json:"hostsmap"` - Hypervisor string `json:"hypervisor"` - Id string `json:"id"` - Issuer string `json:"issuer"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Serialnum string `json:"serialnum"` - Subject string `json:"subject"` - Validity string `json:"validity"` - Version string `json:"version"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` -} - -type ProvisionTemplateDirectDownloadCertificateParams struct { - p map[string]interface{} -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["hostid"]; found { - u.Set("hostid", v.(string)) - } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) - } - return u -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) SetHostid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["hostid"] = v -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) ResetHostid() { - if p.p != nil && p.p["hostid"] != nil { - delete(p.p, "hostid") - } -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) GetHostid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["hostid"].(string) - return value, ok -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["id"] = v -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") - } -} - -func (p *ProvisionTemplateDirectDownloadCertificateParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["id"].(string) - return value, ok -} - -// You should always use this function to get a new ProvisionTemplateDirectDownloadCertificateParams instance, -// as then you are sure you have configured all required params -func (s *TemplateService) NewProvisionTemplateDirectDownloadCertificateParams(hostid string, id string) *ProvisionTemplateDirectDownloadCertificateParams { - p := &ProvisionTemplateDirectDownloadCertificateParams{} - p.p = make(map[string]interface{}) - p.p["hostid"] = hostid - p.p["id"] = id - return p -} - -// Provisions a host with a direct download certificate -func (s *TemplateService) ProvisionTemplateDirectDownloadCertificate(p *ProvisionTemplateDirectDownloadCertificateParams) (*ProvisionTemplateDirectDownloadCertificateResponse, error) { - resp, err := s.cs.newRequest("provisionTemplateDirectDownloadCertificate", p.toURLValues()) - if err != nil { - return nil, err - } - - var r ProvisionTemplateDirectDownloadCertificateResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - return &r, nil -} - -type ProvisionTemplateDirectDownloadCertificateResponse struct { - Details string `json:"details"` - Hostid string `json:"hostid"` - Hostname string `json:"hostname"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Status string `json:"status"` -} - type LinkUserDataToTemplateParams struct { p map[string]interface{} } @@ -5243,6 +4908,7 @@ func (s *TemplateService) LinkUserDataToTemplate(p *LinkUserDataToTemplateParams type LinkUserDataToTemplateResponse struct { Account string `json:"account"` Accountid string `json:"accountid"` + Arch string `json:"arch"` Bits int `json:"bits"` Bootable bool `json:"bootable"` Checksum string `json:"checksum"` @@ -5256,6 +4922,7 @@ type LinkUserDataToTemplateResponse struct { Displaytext string `json:"displaytext"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Downloaddetails []map[string]string `json:"downloaddetails"` Format string `json:"format"` Hasannotations bool `json:"hasannotations"` diff --git a/cloudstack/TemplateService_mock.go b/cloudstack/TemplateService_mock.go index a6d2b2a8..88618795 100644 --- a/cloudstack/TemplateService_mock.go +++ b/cloudstack/TemplateService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/TemplateService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/TemplateService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/TemplateService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockTemplateServiceIface is a mock of TemplateServiceIface interface. type MockTemplateServiceIface struct { ctrl *gomock.Controller recorder *MockTemplateServiceIfaceMockRecorder + isgomock struct{} } // MockTemplateServiceIfaceMockRecorder is the mock recorder for MockTemplateServiceIface. @@ -62,7 +68,7 @@ func (m *MockTemplateServiceIface) CopyTemplate(p *CopyTemplateParams) (*CopyTem } // CopyTemplate indicates an expected call of CopyTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) CopyTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) CopyTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).CopyTemplate), p) } @@ -77,7 +83,7 @@ func (m *MockTemplateServiceIface) CreateTemplate(p *CreateTemplateParams) (*Cre } // CreateTemplate indicates an expected call of CreateTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) CreateTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) CreateTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).CreateTemplate), p) } @@ -92,7 +98,7 @@ func (m *MockTemplateServiceIface) DeleteTemplate(p *DeleteTemplateParams) (*Del } // DeleteTemplate indicates an expected call of DeleteTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) DeleteTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) DeleteTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).DeleteTemplate), p) } @@ -107,7 +113,7 @@ func (m *MockTemplateServiceIface) ExtractTemplate(p *ExtractTemplateParams) (*E } // ExtractTemplate indicates an expected call of ExtractTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) ExtractTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) ExtractTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExtractTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).ExtractTemplate), p) } @@ -115,7 +121,7 @@ func (mr *MockTemplateServiceIfaceMockRecorder) ExtractTemplate(p interface{}) * // GetTemplateByID mocks base method. func (m *MockTemplateServiceIface) GetTemplateByID(id, templatefilter string, opts ...OptionFunc) (*Template, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id, templatefilter} + varargs := []any{id, templatefilter} for _, a := range opts { varargs = append(varargs, a) } @@ -127,16 +133,16 @@ func (m *MockTemplateServiceIface) GetTemplateByID(id, templatefilter string, op } // GetTemplateByID indicates an expected call of GetTemplateByID. -func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateByID(id, templatefilter interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateByID(id, templatefilter any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id, templatefilter}, opts...) + varargs := append([]any{id, templatefilter}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateByID", reflect.TypeOf((*MockTemplateServiceIface)(nil).GetTemplateByID), varargs...) } // GetTemplateByName mocks base method. func (m *MockTemplateServiceIface) GetTemplateByName(name, templatefilter, zoneid string, opts ...OptionFunc) (*Template, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name, templatefilter, zoneid} + varargs := []any{name, templatefilter, zoneid} for _, a := range opts { varargs = append(varargs, a) } @@ -148,37 +154,16 @@ func (m *MockTemplateServiceIface) GetTemplateByName(name, templatefilter, zonei } // GetTemplateByName indicates an expected call of GetTemplateByName. -func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateByName(name, templatefilter, zoneid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateByName(name, templatefilter, zoneid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name, templatefilter, zoneid}, opts...) + varargs := append([]any{name, templatefilter, zoneid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateByName", reflect.TypeOf((*MockTemplateServiceIface)(nil).GetTemplateByName), varargs...) } -// GetTemplateDirectDownloadCertificateByID mocks base method. -func (m *MockTemplateServiceIface) GetTemplateDirectDownloadCertificateByID(id string, opts ...OptionFunc) (*TemplateDirectDownloadCertificate, int, error) { - m.ctrl.T.Helper() - varargs := []interface{}{id} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetTemplateDirectDownloadCertificateByID", varargs...) - ret0, _ := ret[0].(*TemplateDirectDownloadCertificate) - ret1, _ := ret[1].(int) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// GetTemplateDirectDownloadCertificateByID indicates an expected call of GetTemplateDirectDownloadCertificateByID. -func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateDirectDownloadCertificateByID(id interface{}, opts ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateDirectDownloadCertificateByID", reflect.TypeOf((*MockTemplateServiceIface)(nil).GetTemplateDirectDownloadCertificateByID), varargs...) -} - // GetTemplateID mocks base method. func (m *MockTemplateServiceIface) GetTemplateID(name, templatefilter, zoneid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name, templatefilter, zoneid} + varargs := []any{name, templatefilter, zoneid} for _, a := range opts { varargs = append(varargs, a) } @@ -190,16 +175,16 @@ func (m *MockTemplateServiceIface) GetTemplateID(name, templatefilter, zoneid st } // GetTemplateID indicates an expected call of GetTemplateID. -func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateID(name, templatefilter, zoneid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplateID(name, templatefilter, zoneid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name, templatefilter, zoneid}, opts...) + varargs := append([]any{name, templatefilter, zoneid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplateID", reflect.TypeOf((*MockTemplateServiceIface)(nil).GetTemplateID), varargs...) } // GetTemplatePermissionByID mocks base method. func (m *MockTemplateServiceIface) GetTemplatePermissionByID(id string, opts ...OptionFunc) (*TemplatePermission, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -211,9 +196,9 @@ func (m *MockTemplateServiceIface) GetTemplatePermissionByID(id string, opts ... } // GetTemplatePermissionByID indicates an expected call of GetTemplatePermissionByID. -func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplatePermissionByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) GetTemplatePermissionByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTemplatePermissionByID", reflect.TypeOf((*MockTemplateServiceIface)(nil).GetTemplatePermissionByID), varargs...) } @@ -227,7 +212,7 @@ func (m *MockTemplateServiceIface) GetUploadParamsForTemplate(p *GetUploadParams } // GetUploadParamsForTemplate indicates an expected call of GetUploadParamsForTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) GetUploadParamsForTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) GetUploadParamsForTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadParamsForTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).GetUploadParamsForTemplate), p) } @@ -242,26 +227,11 @@ func (m *MockTemplateServiceIface) LinkUserDataToTemplate(p *LinkUserDataToTempl } // LinkUserDataToTemplate indicates an expected call of LinkUserDataToTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) LinkUserDataToTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) LinkUserDataToTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LinkUserDataToTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).LinkUserDataToTemplate), p) } -// ListTemplateDirectDownloadCertificates mocks base method. -func (m *MockTemplateServiceIface) ListTemplateDirectDownloadCertificates(p *ListTemplateDirectDownloadCertificatesParams) (*ListTemplateDirectDownloadCertificatesResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListTemplateDirectDownloadCertificates", p) - ret0, _ := ret[0].(*ListTemplateDirectDownloadCertificatesResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTemplateDirectDownloadCertificates indicates an expected call of ListTemplateDirectDownloadCertificates. -func (mr *MockTemplateServiceIfaceMockRecorder) ListTemplateDirectDownloadCertificates(p interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTemplateDirectDownloadCertificates", reflect.TypeOf((*MockTemplateServiceIface)(nil).ListTemplateDirectDownloadCertificates), p) -} - // ListTemplatePermissions mocks base method. func (m *MockTemplateServiceIface) ListTemplatePermissions(p *ListTemplatePermissionsParams) (*ListTemplatePermissionsResponse, error) { m.ctrl.T.Helper() @@ -272,7 +242,7 @@ func (m *MockTemplateServiceIface) ListTemplatePermissions(p *ListTemplatePermis } // ListTemplatePermissions indicates an expected call of ListTemplatePermissions. -func (mr *MockTemplateServiceIfaceMockRecorder) ListTemplatePermissions(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) ListTemplatePermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTemplatePermissions", reflect.TypeOf((*MockTemplateServiceIface)(nil).ListTemplatePermissions), p) } @@ -287,7 +257,7 @@ func (m *MockTemplateServiceIface) ListTemplates(p *ListTemplatesParams) (*ListT } // ListTemplates indicates an expected call of ListTemplates. -func (mr *MockTemplateServiceIfaceMockRecorder) ListTemplates(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) ListTemplates(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTemplates", reflect.TypeOf((*MockTemplateServiceIface)(nil).ListTemplates), p) } @@ -301,7 +271,7 @@ func (m *MockTemplateServiceIface) NewCopyTemplateParams(id string) *CopyTemplat } // NewCopyTemplateParams indicates an expected call of NewCopyTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewCopyTemplateParams(id interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewCopyTemplateParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCopyTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewCopyTemplateParams), id) } @@ -315,7 +285,7 @@ func (m *MockTemplateServiceIface) NewCreateTemplateParams(displaytext, name, os } // NewCreateTemplateParams indicates an expected call of NewCreateTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewCreateTemplateParams(displaytext, name, ostypeid interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewCreateTemplateParams(displaytext, name, ostypeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewCreateTemplateParams), displaytext, name, ostypeid) } @@ -329,7 +299,7 @@ func (m *MockTemplateServiceIface) NewDeleteTemplateParams(id string) *DeleteTem } // NewDeleteTemplateParams indicates an expected call of NewDeleteTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewDeleteTemplateParams(id interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewDeleteTemplateParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewDeleteTemplateParams), id) } @@ -343,7 +313,7 @@ func (m *MockTemplateServiceIface) NewExtractTemplateParams(id, mode string) *Ex } // NewExtractTemplateParams indicates an expected call of NewExtractTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewExtractTemplateParams(id, mode interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewExtractTemplateParams(id, mode any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExtractTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewExtractTemplateParams), id, mode) } @@ -357,7 +327,7 @@ func (m *MockTemplateServiceIface) NewGetUploadParamsForTemplateParams(displayte } // NewGetUploadParamsForTemplateParams indicates an expected call of NewGetUploadParamsForTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewGetUploadParamsForTemplateParams(displaytext, format, hypervisor, name, zoneid interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewGetUploadParamsForTemplateParams(displaytext, format, hypervisor, name, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetUploadParamsForTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewGetUploadParamsForTemplateParams), displaytext, format, hypervisor, name, zoneid) } @@ -376,20 +346,6 @@ func (mr *MockTemplateServiceIfaceMockRecorder) NewLinkUserDataToTemplateParams( return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLinkUserDataToTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewLinkUserDataToTemplateParams)) } -// NewListTemplateDirectDownloadCertificatesParams mocks base method. -func (m *MockTemplateServiceIface) NewListTemplateDirectDownloadCertificatesParams() *ListTemplateDirectDownloadCertificatesParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewListTemplateDirectDownloadCertificatesParams") - ret0, _ := ret[0].(*ListTemplateDirectDownloadCertificatesParams) - return ret0 -} - -// NewListTemplateDirectDownloadCertificatesParams indicates an expected call of NewListTemplateDirectDownloadCertificatesParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewListTemplateDirectDownloadCertificatesParams() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListTemplateDirectDownloadCertificatesParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewListTemplateDirectDownloadCertificatesParams)) -} - // NewListTemplatePermissionsParams mocks base method. func (m *MockTemplateServiceIface) NewListTemplatePermissionsParams(id string) *ListTemplatePermissionsParams { m.ctrl.T.Helper() @@ -399,7 +355,7 @@ func (m *MockTemplateServiceIface) NewListTemplatePermissionsParams(id string) * } // NewListTemplatePermissionsParams indicates an expected call of NewListTemplatePermissionsParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewListTemplatePermissionsParams(id interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewListTemplatePermissionsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListTemplatePermissionsParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewListTemplatePermissionsParams), id) } @@ -413,7 +369,7 @@ func (m *MockTemplateServiceIface) NewListTemplatesParams(templatefilter string) } // NewListTemplatesParams indicates an expected call of NewListTemplatesParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewListTemplatesParams(templatefilter interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewListTemplatesParams(templatefilter any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListTemplatesParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewListTemplatesParams), templatefilter) } @@ -427,25 +383,11 @@ func (m *MockTemplateServiceIface) NewPrepareTemplateParams(templateid, zoneid s } // NewPrepareTemplateParams indicates an expected call of NewPrepareTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewPrepareTemplateParams(templateid, zoneid interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewPrepareTemplateParams(templateid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewPrepareTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewPrepareTemplateParams), templateid, zoneid) } -// NewProvisionTemplateDirectDownloadCertificateParams mocks base method. -func (m *MockTemplateServiceIface) NewProvisionTemplateDirectDownloadCertificateParams(hostid, id string) *ProvisionTemplateDirectDownloadCertificateParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewProvisionTemplateDirectDownloadCertificateParams", hostid, id) - ret0, _ := ret[0].(*ProvisionTemplateDirectDownloadCertificateParams) - return ret0 -} - -// NewProvisionTemplateDirectDownloadCertificateParams indicates an expected call of NewProvisionTemplateDirectDownloadCertificateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewProvisionTemplateDirectDownloadCertificateParams(hostid, id interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewProvisionTemplateDirectDownloadCertificateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewProvisionTemplateDirectDownloadCertificateParams), hostid, id) -} - // NewRegisterTemplateParams mocks base method. func (m *MockTemplateServiceIface) NewRegisterTemplateParams(displaytext, format, hypervisor, name, url string) *RegisterTemplateParams { m.ctrl.T.Helper() @@ -455,7 +397,7 @@ func (m *MockTemplateServiceIface) NewRegisterTemplateParams(displaytext, format } // NewRegisterTemplateParams indicates an expected call of NewRegisterTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewRegisterTemplateParams(displaytext, format, hypervisor, name, url interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewRegisterTemplateParams(displaytext, format, hypervisor, name, url any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewRegisterTemplateParams), displaytext, format, hypervisor, name, url) } @@ -469,7 +411,7 @@ func (m *MockTemplateServiceIface) NewUpdateTemplateParams(id string) *UpdateTem } // NewUpdateTemplateParams indicates an expected call of NewUpdateTemplateParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewUpdateTemplateParams(id interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewUpdateTemplateParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateTemplateParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewUpdateTemplateParams), id) } @@ -483,7 +425,7 @@ func (m *MockTemplateServiceIface) NewUpdateTemplatePermissionsParams(id string) } // NewUpdateTemplatePermissionsParams indicates an expected call of NewUpdateTemplatePermissionsParams. -func (mr *MockTemplateServiceIfaceMockRecorder) NewUpdateTemplatePermissionsParams(id interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) NewUpdateTemplatePermissionsParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateTemplatePermissionsParams", reflect.TypeOf((*MockTemplateServiceIface)(nil).NewUpdateTemplatePermissionsParams), id) } @@ -512,26 +454,11 @@ func (m *MockTemplateServiceIface) PrepareTemplate(p *PrepareTemplateParams) (*P } // PrepareTemplate indicates an expected call of PrepareTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) PrepareTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) PrepareTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PrepareTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).PrepareTemplate), p) } -// ProvisionTemplateDirectDownloadCertificate mocks base method. -func (m *MockTemplateServiceIface) ProvisionTemplateDirectDownloadCertificate(p *ProvisionTemplateDirectDownloadCertificateParams) (*ProvisionTemplateDirectDownloadCertificateResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ProvisionTemplateDirectDownloadCertificate", p) - ret0, _ := ret[0].(*ProvisionTemplateDirectDownloadCertificateResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ProvisionTemplateDirectDownloadCertificate indicates an expected call of ProvisionTemplateDirectDownloadCertificate. -func (mr *MockTemplateServiceIfaceMockRecorder) ProvisionTemplateDirectDownloadCertificate(p interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProvisionTemplateDirectDownloadCertificate", reflect.TypeOf((*MockTemplateServiceIface)(nil).ProvisionTemplateDirectDownloadCertificate), p) -} - // RegisterTemplate mocks base method. func (m *MockTemplateServiceIface) RegisterTemplate(p *RegisterTemplateParams) (*RegisterTemplateResponse, error) { m.ctrl.T.Helper() @@ -542,7 +469,7 @@ func (m *MockTemplateServiceIface) RegisterTemplate(p *RegisterTemplateParams) ( } // RegisterTemplate indicates an expected call of RegisterTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) RegisterTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) RegisterTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).RegisterTemplate), p) } @@ -557,7 +484,7 @@ func (m *MockTemplateServiceIface) UpdateTemplate(p *UpdateTemplateParams) (*Upd } // UpdateTemplate indicates an expected call of UpdateTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) UpdateTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) UpdateTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).UpdateTemplate), p) } @@ -572,7 +499,7 @@ func (m *MockTemplateServiceIface) UpdateTemplatePermissions(p *UpdateTemplatePe } // UpdateTemplatePermissions indicates an expected call of UpdateTemplatePermissions. -func (mr *MockTemplateServiceIfaceMockRecorder) UpdateTemplatePermissions(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) UpdateTemplatePermissions(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTemplatePermissions", reflect.TypeOf((*MockTemplateServiceIface)(nil).UpdateTemplatePermissions), p) } @@ -587,7 +514,7 @@ func (m *MockTemplateServiceIface) UpgradeRouterTemplate(p *UpgradeRouterTemplat } // UpgradeRouterTemplate indicates an expected call of UpgradeRouterTemplate. -func (mr *MockTemplateServiceIfaceMockRecorder) UpgradeRouterTemplate(p interface{}) *gomock.Call { +func (mr *MockTemplateServiceIfaceMockRecorder) UpgradeRouterTemplate(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpgradeRouterTemplate", reflect.TypeOf((*MockTemplateServiceIface)(nil).UpgradeRouterTemplate), p) } diff --git a/cloudstack/UCSService_mock.go b/cloudstack/UCSService_mock.go index 5c9702c4..969e4879 100644 --- a/cloudstack/UCSService_mock.go +++ b/cloudstack/UCSService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/UCSService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/UCSService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/UCSService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockUCSServiceIface is a mock of UCSServiceIface interface. type MockUCSServiceIface struct { ctrl *gomock.Controller recorder *MockUCSServiceIfaceMockRecorder + isgomock struct{} } // MockUCSServiceIfaceMockRecorder is the mock recorder for MockUCSServiceIface. @@ -62,7 +68,7 @@ func (m *MockUCSServiceIface) AddUcsManager(p *AddUcsManagerParams) (*AddUcsMana } // AddUcsManager indicates an expected call of AddUcsManager. -func (mr *MockUCSServiceIfaceMockRecorder) AddUcsManager(p interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) AddUcsManager(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddUcsManager", reflect.TypeOf((*MockUCSServiceIface)(nil).AddUcsManager), p) } @@ -77,7 +83,7 @@ func (m *MockUCSServiceIface) AssociateUcsProfileToBlade(p *AssociateUcsProfileT } // AssociateUcsProfileToBlade indicates an expected call of AssociateUcsProfileToBlade. -func (mr *MockUCSServiceIfaceMockRecorder) AssociateUcsProfileToBlade(p interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) AssociateUcsProfileToBlade(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssociateUcsProfileToBlade", reflect.TypeOf((*MockUCSServiceIface)(nil).AssociateUcsProfileToBlade), p) } @@ -92,7 +98,7 @@ func (m *MockUCSServiceIface) DeleteUcsManager(p *DeleteUcsManagerParams) (*Dele } // DeleteUcsManager indicates an expected call of DeleteUcsManager. -func (mr *MockUCSServiceIfaceMockRecorder) DeleteUcsManager(p interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) DeleteUcsManager(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUcsManager", reflect.TypeOf((*MockUCSServiceIface)(nil).DeleteUcsManager), p) } @@ -100,7 +106,7 @@ func (mr *MockUCSServiceIfaceMockRecorder) DeleteUcsManager(p interface{}) *gomo // GetUcsManagerByID mocks base method. func (m *MockUCSServiceIface) GetUcsManagerByID(id string, opts ...OptionFunc) (*UcsManager, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -112,16 +118,16 @@ func (m *MockUCSServiceIface) GetUcsManagerByID(id string, opts ...OptionFunc) ( } // GetUcsManagerByID indicates an expected call of GetUcsManagerByID. -func (mr *MockUCSServiceIfaceMockRecorder) GetUcsManagerByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) GetUcsManagerByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUcsManagerByID", reflect.TypeOf((*MockUCSServiceIface)(nil).GetUcsManagerByID), varargs...) } // GetUcsManagerByName mocks base method. func (m *MockUCSServiceIface) GetUcsManagerByName(name string, opts ...OptionFunc) (*UcsManager, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -133,16 +139,16 @@ func (m *MockUCSServiceIface) GetUcsManagerByName(name string, opts ...OptionFun } // GetUcsManagerByName indicates an expected call of GetUcsManagerByName. -func (mr *MockUCSServiceIfaceMockRecorder) GetUcsManagerByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) GetUcsManagerByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUcsManagerByName", reflect.TypeOf((*MockUCSServiceIface)(nil).GetUcsManagerByName), varargs...) } // GetUcsManagerID mocks base method. func (m *MockUCSServiceIface) GetUcsManagerID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -154,9 +160,9 @@ func (m *MockUCSServiceIface) GetUcsManagerID(keyword string, opts ...OptionFunc } // GetUcsManagerID indicates an expected call of GetUcsManagerID. -func (mr *MockUCSServiceIfaceMockRecorder) GetUcsManagerID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) GetUcsManagerID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUcsManagerID", reflect.TypeOf((*MockUCSServiceIface)(nil).GetUcsManagerID), varargs...) } @@ -170,7 +176,7 @@ func (m *MockUCSServiceIface) ListUcsBlades(p *ListUcsBladesParams) (*ListUcsBla } // ListUcsBlades indicates an expected call of ListUcsBlades. -func (mr *MockUCSServiceIfaceMockRecorder) ListUcsBlades(p interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) ListUcsBlades(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUcsBlades", reflect.TypeOf((*MockUCSServiceIface)(nil).ListUcsBlades), p) } @@ -185,7 +191,7 @@ func (m *MockUCSServiceIface) ListUcsManagers(p *ListUcsManagersParams) (*ListUc } // ListUcsManagers indicates an expected call of ListUcsManagers. -func (mr *MockUCSServiceIfaceMockRecorder) ListUcsManagers(p interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) ListUcsManagers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUcsManagers", reflect.TypeOf((*MockUCSServiceIface)(nil).ListUcsManagers), p) } @@ -200,7 +206,7 @@ func (m *MockUCSServiceIface) ListUcsProfiles(p *ListUcsProfilesParams) (*ListUc } // ListUcsProfiles indicates an expected call of ListUcsProfiles. -func (mr *MockUCSServiceIfaceMockRecorder) ListUcsProfiles(p interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) ListUcsProfiles(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUcsProfiles", reflect.TypeOf((*MockUCSServiceIface)(nil).ListUcsProfiles), p) } @@ -214,7 +220,7 @@ func (m *MockUCSServiceIface) NewAddUcsManagerParams(password, url, username, zo } // NewAddUcsManagerParams indicates an expected call of NewAddUcsManagerParams. -func (mr *MockUCSServiceIfaceMockRecorder) NewAddUcsManagerParams(password, url, username, zoneid interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) NewAddUcsManagerParams(password, url, username, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddUcsManagerParams", reflect.TypeOf((*MockUCSServiceIface)(nil).NewAddUcsManagerParams), password, url, username, zoneid) } @@ -228,7 +234,7 @@ func (m *MockUCSServiceIface) NewAssociateUcsProfileToBladeParams(bladeid, profi } // NewAssociateUcsProfileToBladeParams indicates an expected call of NewAssociateUcsProfileToBladeParams. -func (mr *MockUCSServiceIfaceMockRecorder) NewAssociateUcsProfileToBladeParams(bladeid, profiledn, ucsmanagerid interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) NewAssociateUcsProfileToBladeParams(bladeid, profiledn, ucsmanagerid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAssociateUcsProfileToBladeParams", reflect.TypeOf((*MockUCSServiceIface)(nil).NewAssociateUcsProfileToBladeParams), bladeid, profiledn, ucsmanagerid) } @@ -242,7 +248,7 @@ func (m *MockUCSServiceIface) NewDeleteUcsManagerParams(ucsmanagerid string) *De } // NewDeleteUcsManagerParams indicates an expected call of NewDeleteUcsManagerParams. -func (mr *MockUCSServiceIfaceMockRecorder) NewDeleteUcsManagerParams(ucsmanagerid interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) NewDeleteUcsManagerParams(ucsmanagerid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteUcsManagerParams", reflect.TypeOf((*MockUCSServiceIface)(nil).NewDeleteUcsManagerParams), ucsmanagerid) } @@ -256,7 +262,7 @@ func (m *MockUCSServiceIface) NewListUcsBladesParams(ucsmanagerid string) *ListU } // NewListUcsBladesParams indicates an expected call of NewListUcsBladesParams. -func (mr *MockUCSServiceIfaceMockRecorder) NewListUcsBladesParams(ucsmanagerid interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) NewListUcsBladesParams(ucsmanagerid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListUcsBladesParams", reflect.TypeOf((*MockUCSServiceIface)(nil).NewListUcsBladesParams), ucsmanagerid) } @@ -284,7 +290,7 @@ func (m *MockUCSServiceIface) NewListUcsProfilesParams(ucsmanagerid string) *Lis } // NewListUcsProfilesParams indicates an expected call of NewListUcsProfilesParams. -func (mr *MockUCSServiceIfaceMockRecorder) NewListUcsProfilesParams(ucsmanagerid interface{}) *gomock.Call { +func (mr *MockUCSServiceIfaceMockRecorder) NewListUcsProfilesParams(ucsmanagerid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListUcsProfilesParams", reflect.TypeOf((*MockUCSServiceIface)(nil).NewListUcsProfilesParams), ucsmanagerid) } diff --git a/cloudstack/UsageService_mock.go b/cloudstack/UsageService_mock.go index 8b171573..ba390443 100644 --- a/cloudstack/UsageService_mock.go +++ b/cloudstack/UsageService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/UsageService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/UsageService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/UsageService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockUsageServiceIface is a mock of UsageServiceIface interface. type MockUsageServiceIface struct { ctrl *gomock.Controller recorder *MockUsageServiceIfaceMockRecorder + isgomock struct{} } // MockUsageServiceIfaceMockRecorder is the mock recorder for MockUsageServiceIface. @@ -62,7 +68,7 @@ func (m *MockUsageServiceIface) AddTrafficMonitor(p *AddTrafficMonitorParams) (* } // AddTrafficMonitor indicates an expected call of AddTrafficMonitor. -func (mr *MockUsageServiceIfaceMockRecorder) AddTrafficMonitor(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) AddTrafficMonitor(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddTrafficMonitor", reflect.TypeOf((*MockUsageServiceIface)(nil).AddTrafficMonitor), p) } @@ -77,7 +83,7 @@ func (m *MockUsageServiceIface) AddTrafficType(p *AddTrafficTypeParams) (*AddTra } // AddTrafficType indicates an expected call of AddTrafficType. -func (mr *MockUsageServiceIfaceMockRecorder) AddTrafficType(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) AddTrafficType(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddTrafficType", reflect.TypeOf((*MockUsageServiceIface)(nil).AddTrafficType), p) } @@ -92,7 +98,7 @@ func (m *MockUsageServiceIface) DeleteTrafficMonitor(p *DeleteTrafficMonitorPara } // DeleteTrafficMonitor indicates an expected call of DeleteTrafficMonitor. -func (mr *MockUsageServiceIfaceMockRecorder) DeleteTrafficMonitor(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) DeleteTrafficMonitor(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficMonitor", reflect.TypeOf((*MockUsageServiceIface)(nil).DeleteTrafficMonitor), p) } @@ -107,7 +113,7 @@ func (m *MockUsageServiceIface) DeleteTrafficType(p *DeleteTrafficTypeParams) (* } // DeleteTrafficType indicates an expected call of DeleteTrafficType. -func (mr *MockUsageServiceIfaceMockRecorder) DeleteTrafficType(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) DeleteTrafficType(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficType", reflect.TypeOf((*MockUsageServiceIface)(nil).DeleteTrafficType), p) } @@ -122,7 +128,7 @@ func (m *MockUsageServiceIface) GenerateUsageRecords(p *GenerateUsageRecordsPara } // GenerateUsageRecords indicates an expected call of GenerateUsageRecords. -func (mr *MockUsageServiceIfaceMockRecorder) GenerateUsageRecords(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) GenerateUsageRecords(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateUsageRecords", reflect.TypeOf((*MockUsageServiceIface)(nil).GenerateUsageRecords), p) } @@ -130,7 +136,7 @@ func (mr *MockUsageServiceIfaceMockRecorder) GenerateUsageRecords(p interface{}) // GetTrafficTypeID mocks base method. func (m *MockUsageServiceIface) GetTrafficTypeID(keyword, physicalnetworkid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, physicalnetworkid} + varargs := []any{keyword, physicalnetworkid} for _, a := range opts { varargs = append(varargs, a) } @@ -142,9 +148,9 @@ func (m *MockUsageServiceIface) GetTrafficTypeID(keyword, physicalnetworkid stri } // GetTrafficTypeID indicates an expected call of GetTrafficTypeID. -func (mr *MockUsageServiceIfaceMockRecorder) GetTrafficTypeID(keyword, physicalnetworkid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) GetTrafficTypeID(keyword, physicalnetworkid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, physicalnetworkid}, opts...) + varargs := append([]any{keyword, physicalnetworkid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficTypeID", reflect.TypeOf((*MockUsageServiceIface)(nil).GetTrafficTypeID), varargs...) } @@ -158,7 +164,7 @@ func (m *MockUsageServiceIface) ListTrafficMonitors(p *ListTrafficMonitorsParams } // ListTrafficMonitors indicates an expected call of ListTrafficMonitors. -func (mr *MockUsageServiceIfaceMockRecorder) ListTrafficMonitors(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) ListTrafficMonitors(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficMonitors", reflect.TypeOf((*MockUsageServiceIface)(nil).ListTrafficMonitors), p) } @@ -173,7 +179,7 @@ func (m *MockUsageServiceIface) ListTrafficTypeImplementors(p *ListTrafficTypeIm } // ListTrafficTypeImplementors indicates an expected call of ListTrafficTypeImplementors. -func (mr *MockUsageServiceIfaceMockRecorder) ListTrafficTypeImplementors(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) ListTrafficTypeImplementors(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficTypeImplementors", reflect.TypeOf((*MockUsageServiceIface)(nil).ListTrafficTypeImplementors), p) } @@ -188,7 +194,7 @@ func (m *MockUsageServiceIface) ListTrafficTypes(p *ListTrafficTypesParams) (*Li } // ListTrafficTypes indicates an expected call of ListTrafficTypes. -func (mr *MockUsageServiceIfaceMockRecorder) ListTrafficTypes(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) ListTrafficTypes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficTypes", reflect.TypeOf((*MockUsageServiceIface)(nil).ListTrafficTypes), p) } @@ -203,7 +209,7 @@ func (m *MockUsageServiceIface) ListUsageRecords(p *ListUsageRecordsParams) (*Li } // ListUsageRecords indicates an expected call of ListUsageRecords. -func (mr *MockUsageServiceIfaceMockRecorder) ListUsageRecords(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) ListUsageRecords(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsageRecords", reflect.TypeOf((*MockUsageServiceIface)(nil).ListUsageRecords), p) } @@ -218,7 +224,7 @@ func (m *MockUsageServiceIface) ListUsageServerMetrics(p *ListUsageServerMetrics } // ListUsageServerMetrics indicates an expected call of ListUsageServerMetrics. -func (mr *MockUsageServiceIfaceMockRecorder) ListUsageServerMetrics(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) ListUsageServerMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsageServerMetrics", reflect.TypeOf((*MockUsageServiceIface)(nil).ListUsageServerMetrics), p) } @@ -233,7 +239,7 @@ func (m *MockUsageServiceIface) ListUsageTypes(p *ListUsageTypesParams) (*ListUs } // ListUsageTypes indicates an expected call of ListUsageTypes. -func (mr *MockUsageServiceIfaceMockRecorder) ListUsageTypes(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) ListUsageTypes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsageTypes", reflect.TypeOf((*MockUsageServiceIface)(nil).ListUsageTypes), p) } @@ -247,7 +253,7 @@ func (m *MockUsageServiceIface) NewAddTrafficMonitorParams(url, zoneid string) * } // NewAddTrafficMonitorParams indicates an expected call of NewAddTrafficMonitorParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewAddTrafficMonitorParams(url, zoneid interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewAddTrafficMonitorParams(url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddTrafficMonitorParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewAddTrafficMonitorParams), url, zoneid) } @@ -261,7 +267,7 @@ func (m *MockUsageServiceIface) NewAddTrafficTypeParams(physicalnetworkid, traff } // NewAddTrafficTypeParams indicates an expected call of NewAddTrafficTypeParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewAddTrafficTypeParams(physicalnetworkid, traffictype interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewAddTrafficTypeParams(physicalnetworkid, traffictype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddTrafficTypeParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewAddTrafficTypeParams), physicalnetworkid, traffictype) } @@ -275,7 +281,7 @@ func (m *MockUsageServiceIface) NewDeleteTrafficMonitorParams(id string) *Delete } // NewDeleteTrafficMonitorParams indicates an expected call of NewDeleteTrafficMonitorParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewDeleteTrafficMonitorParams(id interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewDeleteTrafficMonitorParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteTrafficMonitorParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewDeleteTrafficMonitorParams), id) } @@ -289,7 +295,7 @@ func (m *MockUsageServiceIface) NewDeleteTrafficTypeParams(id string) *DeleteTra } // NewDeleteTrafficTypeParams indicates an expected call of NewDeleteTrafficTypeParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewDeleteTrafficTypeParams(id interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewDeleteTrafficTypeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteTrafficTypeParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewDeleteTrafficTypeParams), id) } @@ -317,7 +323,7 @@ func (m *MockUsageServiceIface) NewListTrafficMonitorsParams(zoneid string) *Lis } // NewListTrafficMonitorsParams indicates an expected call of NewListTrafficMonitorsParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewListTrafficMonitorsParams(zoneid interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewListTrafficMonitorsParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListTrafficMonitorsParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewListTrafficMonitorsParams), zoneid) } @@ -345,7 +351,7 @@ func (m *MockUsageServiceIface) NewListTrafficTypesParams(physicalnetworkid stri } // NewListTrafficTypesParams indicates an expected call of NewListTrafficTypesParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewListTrafficTypesParams(physicalnetworkid interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewListTrafficTypesParams(physicalnetworkid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListTrafficTypesParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewListTrafficTypesParams), physicalnetworkid) } @@ -359,7 +365,7 @@ func (m *MockUsageServiceIface) NewListUsageRecordsParams(enddate, startdate str } // NewListUsageRecordsParams indicates an expected call of NewListUsageRecordsParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewListUsageRecordsParams(enddate, startdate interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewListUsageRecordsParams(enddate, startdate any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListUsageRecordsParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewListUsageRecordsParams), enddate, startdate) } @@ -401,7 +407,7 @@ func (m *MockUsageServiceIface) NewRemoveRawUsageRecordsParams(interval int) *Re } // NewRemoveRawUsageRecordsParams indicates an expected call of NewRemoveRawUsageRecordsParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewRemoveRawUsageRecordsParams(interval interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewRemoveRawUsageRecordsParams(interval any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveRawUsageRecordsParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewRemoveRawUsageRecordsParams), interval) } @@ -415,7 +421,7 @@ func (m *MockUsageServiceIface) NewUpdateTrafficTypeParams(id string) *UpdateTra } // NewUpdateTrafficTypeParams indicates an expected call of NewUpdateTrafficTypeParams. -func (mr *MockUsageServiceIfaceMockRecorder) NewUpdateTrafficTypeParams(id interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) NewUpdateTrafficTypeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateTrafficTypeParams", reflect.TypeOf((*MockUsageServiceIface)(nil).NewUpdateTrafficTypeParams), id) } @@ -430,7 +436,7 @@ func (m *MockUsageServiceIface) RemoveRawUsageRecords(p *RemoveRawUsageRecordsPa } // RemoveRawUsageRecords indicates an expected call of RemoveRawUsageRecords. -func (mr *MockUsageServiceIfaceMockRecorder) RemoveRawUsageRecords(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) RemoveRawUsageRecords(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveRawUsageRecords", reflect.TypeOf((*MockUsageServiceIface)(nil).RemoveRawUsageRecords), p) } @@ -445,7 +451,7 @@ func (m *MockUsageServiceIface) UpdateTrafficType(p *UpdateTrafficTypeParams) (* } // UpdateTrafficType indicates an expected call of UpdateTrafficType. -func (mr *MockUsageServiceIfaceMockRecorder) UpdateTrafficType(p interface{}) *gomock.Call { +func (mr *MockUsageServiceIfaceMockRecorder) UpdateTrafficType(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficType", reflect.TypeOf((*MockUsageServiceIface)(nil).UpdateTrafficType), p) } diff --git a/cloudstack/UserService.go b/cloudstack/UserService.go index afaa6e3b..495fdfca 100644 --- a/cloudstack/UserService.go +++ b/cloudstack/UserService.go @@ -42,6 +42,8 @@ type UserServiceIface interface { NewGetUserKeysParams(id string) *GetUserKeysParams GetVirtualMachineUserData(p *GetVirtualMachineUserDataParams) (*GetVirtualMachineUserDataResponse, error) NewGetVirtualMachineUserDataParams(virtualmachineid string) *GetVirtualMachineUserDataParams + ListUserTwoFactorAuthenticatorProviders(p *ListUserTwoFactorAuthenticatorProvidersParams) (*ListUserTwoFactorAuthenticatorProvidersResponse, error) + NewListUserTwoFactorAuthenticatorProvidersParams() *ListUserTwoFactorAuthenticatorProvidersParams ListUsers(p *ListUsersParams) (*ListUsersResponse, error) NewListUsersParams() *ListUsersParams GetUserByID(id string, opts ...OptionFunc) (*User, int, error) @@ -64,6 +66,10 @@ type UserServiceIface interface { NewMoveUserParams(id string) *MoveUserParams SetupUserTwoFactorAuthentication(p *SetupUserTwoFactorAuthenticationParams) (*SetupUserTwoFactorAuthenticationResponse, error) NewSetupUserTwoFactorAuthenticationParams() *SetupUserTwoFactorAuthenticationParams + ValidateUserTwoFactorAuthenticationCode(p *ValidateUserTwoFactorAuthenticationCodeParams) (*ValidateUserTwoFactorAuthenticationCodeResponse, error) + NewValidateUserTwoFactorAuthenticationCodeParams(codefor2fa string) *ValidateUserTwoFactorAuthenticationCodeParams + VerifyOAuthCodeAndGetUser(p *VerifyOAuthCodeAndGetUserParams) (*VerifyOAuthCodeAndGetUserResponse, error) + NewVerifyOAuthCodeAndGetUserParams(provider string) *VerifyOAuthCodeAndGetUserParams } type CreateUserParams struct { @@ -883,6 +889,77 @@ type GetVirtualMachineUserDataResponse struct { Virtualmachineid string `json:"virtualmachineid"` } +type ListUserTwoFactorAuthenticatorProvidersParams struct { + p map[string]interface{} +} + +func (p *ListUserTwoFactorAuthenticatorProvidersParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + return u +} + +func (p *ListUserTwoFactorAuthenticatorProvidersParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListUserTwoFactorAuthenticatorProvidersParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListUserTwoFactorAuthenticatorProvidersParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +// You should always use this function to get a new ListUserTwoFactorAuthenticatorProvidersParams instance, +// as then you are sure you have configured all required params +func (s *UserService) NewListUserTwoFactorAuthenticatorProvidersParams() *ListUserTwoFactorAuthenticatorProvidersParams { + p := &ListUserTwoFactorAuthenticatorProvidersParams{} + p.p = make(map[string]interface{}) + return p +} + +// Lists user two factor authenticator providers +func (s *UserService) ListUserTwoFactorAuthenticatorProviders(p *ListUserTwoFactorAuthenticatorProvidersParams) (*ListUserTwoFactorAuthenticatorProvidersResponse, error) { + resp, err := s.cs.newRequest("listUserTwoFactorAuthenticatorProviders", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListUserTwoFactorAuthenticatorProvidersResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListUserTwoFactorAuthenticatorProvidersResponse struct { + Count int `json:"count"` + UserTwoFactorAuthenticatorProviders []*UserTwoFactorAuthenticatorProvider `json:"usertwofactorauthenticatorprovider"` +} + +type UserTwoFactorAuthenticatorProvider struct { + Description string `json:"description"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` +} + type ListUsersParams struct { p map[string]interface{} } @@ -2145,12 +2222,15 @@ type UserData struct { Accountid string `json:"accountid"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Hasannotations bool `json:"hasannotations"` Id string `json:"id"` JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` Name string `json:"name"` Params string `json:"params"` + Project string `json:"project"` + Projectid string `json:"projectid"` Userdata string `json:"userdata"` } @@ -2645,7 +2725,7 @@ func (s *UserService) NewMoveUserParams(id string) *MoveUserParams { return p } -// Moves a user to another account +// Moves a user to another account in the same domain. func (s *UserService) MoveUser(p *MoveUserParams) (*MoveUserResponse, error) { resp, err := s.cs.newRequest("moveUser", p.toURLValues()) if err != nil { @@ -2813,3 +2893,268 @@ type SetupUserTwoFactorAuthenticationResponse struct { Secretcode string `json:"secretcode"` Username string `json:"username"` } + +type ValidateUserTwoFactorAuthenticationCodeParams struct { + p map[string]interface{} +} + +func (p *ValidateUserTwoFactorAuthenticationCodeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["codefor2fa"]; found { + u.Set("codefor2fa", v.(string)) + } + return u +} + +func (p *ValidateUserTwoFactorAuthenticationCodeParams) SetCodefor2fa(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["codefor2fa"] = v +} + +func (p *ValidateUserTwoFactorAuthenticationCodeParams) ResetCodefor2fa() { + if p.p != nil && p.p["codefor2fa"] != nil { + delete(p.p, "codefor2fa") + } +} + +func (p *ValidateUserTwoFactorAuthenticationCodeParams) GetCodefor2fa() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["codefor2fa"].(string) + return value, ok +} + +// You should always use this function to get a new ValidateUserTwoFactorAuthenticationCodeParams instance, +// as then you are sure you have configured all required params +func (s *UserService) NewValidateUserTwoFactorAuthenticationCodeParams(codefor2fa string) *ValidateUserTwoFactorAuthenticationCodeParams { + p := &ValidateUserTwoFactorAuthenticationCodeParams{} + p.p = make(map[string]interface{}) + p.p["codefor2fa"] = codefor2fa + return p +} + +// Checks the 2FA code for the user. +func (s *UserService) ValidateUserTwoFactorAuthenticationCode(p *ValidateUserTwoFactorAuthenticationCodeParams) (*ValidateUserTwoFactorAuthenticationCodeResponse, error) { + resp, err := s.cs.newPostRequest("validateUserTwoFactorAuthenticationCode", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ValidateUserTwoFactorAuthenticationCodeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ValidateUserTwoFactorAuthenticationCodeResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *ValidateUserTwoFactorAuthenticationCodeResponse) 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 ValidateUserTwoFactorAuthenticationCodeResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type VerifyOAuthCodeAndGetUserParams struct { + p map[string]interface{} +} + +func (p *VerifyOAuthCodeAndGetUserParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["provider"]; found { + u.Set("provider", v.(string)) + } + if v, found := p.p["secretcode"]; found { + u.Set("secretcode", v.(string)) + } + return u +} + +func (p *VerifyOAuthCodeAndGetUserParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *VerifyOAuthCodeAndGetUserParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *VerifyOAuthCodeAndGetUserParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *VerifyOAuthCodeAndGetUserParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *VerifyOAuthCodeAndGetUserParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *VerifyOAuthCodeAndGetUserParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *VerifyOAuthCodeAndGetUserParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *VerifyOAuthCodeAndGetUserParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *VerifyOAuthCodeAndGetUserParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *VerifyOAuthCodeAndGetUserParams) SetProvider(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["provider"] = v +} + +func (p *VerifyOAuthCodeAndGetUserParams) ResetProvider() { + if p.p != nil && p.p["provider"] != nil { + delete(p.p, "provider") + } +} + +func (p *VerifyOAuthCodeAndGetUserParams) GetProvider() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["provider"].(string) + return value, ok +} + +func (p *VerifyOAuthCodeAndGetUserParams) SetSecretcode(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["secretcode"] = v +} + +func (p *VerifyOAuthCodeAndGetUserParams) ResetSecretcode() { + if p.p != nil && p.p["secretcode"] != nil { + delete(p.p, "secretcode") + } +} + +func (p *VerifyOAuthCodeAndGetUserParams) GetSecretcode() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["secretcode"].(string) + return value, ok +} + +// You should always use this function to get a new VerifyOAuthCodeAndGetUserParams instance, +// as then you are sure you have configured all required params +func (s *UserService) NewVerifyOAuthCodeAndGetUserParams(provider string) *VerifyOAuthCodeAndGetUserParams { + p := &VerifyOAuthCodeAndGetUserParams{} + p.p = make(map[string]interface{}) + p.p["provider"] = provider + return p +} + +// Verify the OAuth Code and fetch the corresponding user from provider +func (s *UserService) VerifyOAuthCodeAndGetUser(p *VerifyOAuthCodeAndGetUserParams) (*VerifyOAuthCodeAndGetUserResponse, error) { + resp, err := s.cs.newRequest("verifyOAuthCodeAndGetUser", p.toURLValues()) + if err != nil { + return nil, err + } + + var r VerifyOAuthCodeAndGetUserResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type VerifyOAuthCodeAndGetUserResponse struct { + Clientid string `json:"clientid"` + Description string `json:"description"` + Enabled bool `json:"enabled"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Provider string `json:"provider"` + Redirecturi string `json:"redirecturi"` + Secretkey string `json:"secretkey"` +} diff --git a/cloudstack/UserService_mock.go b/cloudstack/UserService_mock.go index 6d65e2cc..e0670067 100644 --- a/cloudstack/UserService_mock.go +++ b/cloudstack/UserService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/UserService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/UserService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/UserService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockUserServiceIface is a mock of UserServiceIface interface. type MockUserServiceIface struct { ctrl *gomock.Controller recorder *MockUserServiceIfaceMockRecorder + isgomock struct{} } // MockUserServiceIfaceMockRecorder is the mock recorder for MockUserServiceIface. @@ -62,7 +68,7 @@ func (m *MockUserServiceIface) CreateUser(p *CreateUserParams) (*CreateUserRespo } // CreateUser indicates an expected call of CreateUser. -func (mr *MockUserServiceIfaceMockRecorder) CreateUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) CreateUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUser", reflect.TypeOf((*MockUserServiceIface)(nil).CreateUser), p) } @@ -77,7 +83,7 @@ func (m *MockUserServiceIface) DeleteUser(p *DeleteUserParams) (*DeleteUserRespo } // DeleteUser indicates an expected call of DeleteUser. -func (mr *MockUserServiceIfaceMockRecorder) DeleteUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) DeleteUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUser", reflect.TypeOf((*MockUserServiceIface)(nil).DeleteUser), p) } @@ -92,7 +98,7 @@ func (m *MockUserServiceIface) DeleteUserData(p *DeleteUserDataParams) (*DeleteU } // DeleteUserData indicates an expected call of DeleteUserData. -func (mr *MockUserServiceIfaceMockRecorder) DeleteUserData(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) DeleteUserData(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUserData", reflect.TypeOf((*MockUserServiceIface)(nil).DeleteUserData), p) } @@ -107,7 +113,7 @@ func (m *MockUserServiceIface) DisableUser(p *DisableUserParams) (*DisableUserRe } // DisableUser indicates an expected call of DisableUser. -func (mr *MockUserServiceIfaceMockRecorder) DisableUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) DisableUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableUser", reflect.TypeOf((*MockUserServiceIface)(nil).DisableUser), p) } @@ -122,7 +128,7 @@ func (m *MockUserServiceIface) EnableUser(p *EnableUserParams) (*EnableUserRespo } // EnableUser indicates an expected call of EnableUser. -func (mr *MockUserServiceIfaceMockRecorder) EnableUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) EnableUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableUser", reflect.TypeOf((*MockUserServiceIface)(nil).EnableUser), p) } @@ -137,7 +143,7 @@ func (m *MockUserServiceIface) GetUser(p *GetUserParams) (*GetUserResponse, erro } // GetUser indicates an expected call of GetUser. -func (mr *MockUserServiceIfaceMockRecorder) GetUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUser", reflect.TypeOf((*MockUserServiceIface)(nil).GetUser), p) } @@ -145,7 +151,7 @@ func (mr *MockUserServiceIfaceMockRecorder) GetUser(p interface{}) *gomock.Call // GetUserByID mocks base method. func (m *MockUserServiceIface) GetUserByID(id string, opts ...OptionFunc) (*User, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -157,16 +163,16 @@ func (m *MockUserServiceIface) GetUserByID(id string, opts ...OptionFunc) (*User } // GetUserByID indicates an expected call of GetUserByID. -func (mr *MockUserServiceIfaceMockRecorder) GetUserByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetUserByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByID", reflect.TypeOf((*MockUserServiceIface)(nil).GetUserByID), varargs...) } // GetUserDataByID mocks base method. func (m *MockUserServiceIface) GetUserDataByID(id string, opts ...OptionFunc) (*UserData, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -178,16 +184,16 @@ func (m *MockUserServiceIface) GetUserDataByID(id string, opts ...OptionFunc) (* } // GetUserDataByID indicates an expected call of GetUserDataByID. -func (mr *MockUserServiceIfaceMockRecorder) GetUserDataByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetUserDataByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserDataByID", reflect.TypeOf((*MockUserServiceIface)(nil).GetUserDataByID), varargs...) } // GetUserDataByName mocks base method. func (m *MockUserServiceIface) GetUserDataByName(name string, opts ...OptionFunc) (*UserData, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -199,16 +205,16 @@ func (m *MockUserServiceIface) GetUserDataByName(name string, opts ...OptionFunc } // GetUserDataByName indicates an expected call of GetUserDataByName. -func (mr *MockUserServiceIfaceMockRecorder) GetUserDataByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetUserDataByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserDataByName", reflect.TypeOf((*MockUserServiceIface)(nil).GetUserDataByName), varargs...) } // GetUserDataID mocks base method. func (m *MockUserServiceIface) GetUserDataID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -220,9 +226,9 @@ func (m *MockUserServiceIface) GetUserDataID(name string, opts ...OptionFunc) (s } // GetUserDataID indicates an expected call of GetUserDataID. -func (mr *MockUserServiceIfaceMockRecorder) GetUserDataID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetUserDataID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserDataID", reflect.TypeOf((*MockUserServiceIface)(nil).GetUserDataID), varargs...) } @@ -236,7 +242,7 @@ func (m *MockUserServiceIface) GetUserKeys(p *GetUserKeysParams) (*GetUserKeysRe } // GetUserKeys indicates an expected call of GetUserKeys. -func (mr *MockUserServiceIfaceMockRecorder) GetUserKeys(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetUserKeys(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserKeys", reflect.TypeOf((*MockUserServiceIface)(nil).GetUserKeys), p) } @@ -251,7 +257,7 @@ func (m *MockUserServiceIface) GetVirtualMachineUserData(p *GetVirtualMachineUse } // GetVirtualMachineUserData indicates an expected call of GetVirtualMachineUserData. -func (mr *MockUserServiceIfaceMockRecorder) GetVirtualMachineUserData(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) GetVirtualMachineUserData(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachineUserData", reflect.TypeOf((*MockUserServiceIface)(nil).GetVirtualMachineUserData), p) } @@ -266,11 +272,26 @@ func (m *MockUserServiceIface) ListUserData(p *ListUserDataParams) (*ListUserDat } // ListUserData indicates an expected call of ListUserData. -func (mr *MockUserServiceIfaceMockRecorder) ListUserData(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) ListUserData(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserData", reflect.TypeOf((*MockUserServiceIface)(nil).ListUserData), p) } +// ListUserTwoFactorAuthenticatorProviders mocks base method. +func (m *MockUserServiceIface) ListUserTwoFactorAuthenticatorProviders(p *ListUserTwoFactorAuthenticatorProvidersParams) (*ListUserTwoFactorAuthenticatorProvidersResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListUserTwoFactorAuthenticatorProviders", p) + ret0, _ := ret[0].(*ListUserTwoFactorAuthenticatorProvidersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListUserTwoFactorAuthenticatorProviders indicates an expected call of ListUserTwoFactorAuthenticatorProviders. +func (mr *MockUserServiceIfaceMockRecorder) ListUserTwoFactorAuthenticatorProviders(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserTwoFactorAuthenticatorProviders", reflect.TypeOf((*MockUserServiceIface)(nil).ListUserTwoFactorAuthenticatorProviders), p) +} + // ListUsers mocks base method. func (m *MockUserServiceIface) ListUsers(p *ListUsersParams) (*ListUsersResponse, error) { m.ctrl.T.Helper() @@ -281,7 +302,7 @@ func (m *MockUserServiceIface) ListUsers(p *ListUsersParams) (*ListUsersResponse } // ListUsers indicates an expected call of ListUsers. -func (mr *MockUserServiceIfaceMockRecorder) ListUsers(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) ListUsers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsers", reflect.TypeOf((*MockUserServiceIface)(nil).ListUsers), p) } @@ -296,7 +317,7 @@ func (m *MockUserServiceIface) LockUser(p *LockUserParams) (*LockUserResponse, e } // LockUser indicates an expected call of LockUser. -func (mr *MockUserServiceIfaceMockRecorder) LockUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) LockUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LockUser", reflect.TypeOf((*MockUserServiceIface)(nil).LockUser), p) } @@ -311,7 +332,7 @@ func (m *MockUserServiceIface) MoveUser(p *MoveUserParams) (*MoveUserResponse, e } // MoveUser indicates an expected call of MoveUser. -func (mr *MockUserServiceIfaceMockRecorder) MoveUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) MoveUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MoveUser", reflect.TypeOf((*MockUserServiceIface)(nil).MoveUser), p) } @@ -325,7 +346,7 @@ func (m *MockUserServiceIface) NewCreateUserParams(account, email, firstname, la } // NewCreateUserParams indicates an expected call of NewCreateUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewCreateUserParams(account, email, firstname, lastname, password, username interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewCreateUserParams(account, email, firstname, lastname, password, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewCreateUserParams), account, email, firstname, lastname, password, username) } @@ -339,7 +360,7 @@ func (m *MockUserServiceIface) NewDeleteUserDataParams(id string) *DeleteUserDat } // NewDeleteUserDataParams indicates an expected call of NewDeleteUserDataParams. -func (mr *MockUserServiceIfaceMockRecorder) NewDeleteUserDataParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewDeleteUserDataParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteUserDataParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewDeleteUserDataParams), id) } @@ -353,7 +374,7 @@ func (m *MockUserServiceIface) NewDeleteUserParams(id string) *DeleteUserParams } // NewDeleteUserParams indicates an expected call of NewDeleteUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewDeleteUserParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewDeleteUserParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewDeleteUserParams), id) } @@ -367,7 +388,7 @@ func (m *MockUserServiceIface) NewDisableUserParams(id string) *DisableUserParam } // NewDisableUserParams indicates an expected call of NewDisableUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewDisableUserParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewDisableUserParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewDisableUserParams), id) } @@ -381,7 +402,7 @@ func (m *MockUserServiceIface) NewEnableUserParams(id string) *EnableUserParams } // NewEnableUserParams indicates an expected call of NewEnableUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewEnableUserParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewEnableUserParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewEnableUserParams), id) } @@ -395,7 +416,7 @@ func (m *MockUserServiceIface) NewGetUserKeysParams(id string) *GetUserKeysParam } // NewGetUserKeysParams indicates an expected call of NewGetUserKeysParams. -func (mr *MockUserServiceIfaceMockRecorder) NewGetUserKeysParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewGetUserKeysParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetUserKeysParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewGetUserKeysParams), id) } @@ -409,7 +430,7 @@ func (m *MockUserServiceIface) NewGetUserParams(userapikey string) *GetUserParam } // NewGetUserParams indicates an expected call of NewGetUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewGetUserParams(userapikey interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewGetUserParams(userapikey any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewGetUserParams), userapikey) } @@ -423,7 +444,7 @@ func (m *MockUserServiceIface) NewGetVirtualMachineUserDataParams(virtualmachine } // NewGetVirtualMachineUserDataParams indicates an expected call of NewGetVirtualMachineUserDataParams. -func (mr *MockUserServiceIfaceMockRecorder) NewGetVirtualMachineUserDataParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewGetVirtualMachineUserDataParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetVirtualMachineUserDataParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewGetVirtualMachineUserDataParams), virtualmachineid) } @@ -442,6 +463,20 @@ func (mr *MockUserServiceIfaceMockRecorder) NewListUserDataParams() *gomock.Call return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListUserDataParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewListUserDataParams)) } +// NewListUserTwoFactorAuthenticatorProvidersParams mocks base method. +func (m *MockUserServiceIface) NewListUserTwoFactorAuthenticatorProvidersParams() *ListUserTwoFactorAuthenticatorProvidersParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListUserTwoFactorAuthenticatorProvidersParams") + ret0, _ := ret[0].(*ListUserTwoFactorAuthenticatorProvidersParams) + return ret0 +} + +// NewListUserTwoFactorAuthenticatorProvidersParams indicates an expected call of NewListUserTwoFactorAuthenticatorProvidersParams. +func (mr *MockUserServiceIfaceMockRecorder) NewListUserTwoFactorAuthenticatorProvidersParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListUserTwoFactorAuthenticatorProvidersParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewListUserTwoFactorAuthenticatorProvidersParams)) +} + // NewListUsersParams mocks base method. func (m *MockUserServiceIface) NewListUsersParams() *ListUsersParams { m.ctrl.T.Helper() @@ -465,7 +500,7 @@ func (m *MockUserServiceIface) NewLockUserParams(id string) *LockUserParams { } // NewLockUserParams indicates an expected call of NewLockUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewLockUserParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewLockUserParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewLockUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewLockUserParams), id) } @@ -479,7 +514,7 @@ func (m *MockUserServiceIface) NewMoveUserParams(id string) *MoveUserParams { } // NewMoveUserParams indicates an expected call of NewMoveUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewMoveUserParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewMoveUserParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMoveUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewMoveUserParams), id) } @@ -493,7 +528,7 @@ func (m *MockUserServiceIface) NewRegisterUserDataParams(name, userdata string) } // NewRegisterUserDataParams indicates an expected call of NewRegisterUserDataParams. -func (mr *MockUserServiceIfaceMockRecorder) NewRegisterUserDataParams(name, userdata interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewRegisterUserDataParams(name, userdata any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterUserDataParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewRegisterUserDataParams), name, userdata) } @@ -507,7 +542,7 @@ func (m *MockUserServiceIface) NewRegisterUserKeysParams(id string) *RegisterUse } // NewRegisterUserKeysParams indicates an expected call of NewRegisterUserKeysParams. -func (mr *MockUserServiceIfaceMockRecorder) NewRegisterUserKeysParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewRegisterUserKeysParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterUserKeysParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewRegisterUserKeysParams), id) } @@ -535,11 +570,39 @@ func (m *MockUserServiceIface) NewUpdateUserParams(id string) *UpdateUserParams } // NewUpdateUserParams indicates an expected call of NewUpdateUserParams. -func (mr *MockUserServiceIfaceMockRecorder) NewUpdateUserParams(id interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) NewUpdateUserParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewUpdateUserParams), id) } +// NewValidateUserTwoFactorAuthenticationCodeParams mocks base method. +func (m *MockUserServiceIface) NewValidateUserTwoFactorAuthenticationCodeParams(codefor2fa string) *ValidateUserTwoFactorAuthenticationCodeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewValidateUserTwoFactorAuthenticationCodeParams", codefor2fa) + ret0, _ := ret[0].(*ValidateUserTwoFactorAuthenticationCodeParams) + return ret0 +} + +// NewValidateUserTwoFactorAuthenticationCodeParams indicates an expected call of NewValidateUserTwoFactorAuthenticationCodeParams. +func (mr *MockUserServiceIfaceMockRecorder) NewValidateUserTwoFactorAuthenticationCodeParams(codefor2fa any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewValidateUserTwoFactorAuthenticationCodeParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewValidateUserTwoFactorAuthenticationCodeParams), codefor2fa) +} + +// NewVerifyOAuthCodeAndGetUserParams mocks base method. +func (m *MockUserServiceIface) NewVerifyOAuthCodeAndGetUserParams(provider string) *VerifyOAuthCodeAndGetUserParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewVerifyOAuthCodeAndGetUserParams", provider) + ret0, _ := ret[0].(*VerifyOAuthCodeAndGetUserParams) + return ret0 +} + +// NewVerifyOAuthCodeAndGetUserParams indicates an expected call of NewVerifyOAuthCodeAndGetUserParams. +func (mr *MockUserServiceIfaceMockRecorder) NewVerifyOAuthCodeAndGetUserParams(provider any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewVerifyOAuthCodeAndGetUserParams", reflect.TypeOf((*MockUserServiceIface)(nil).NewVerifyOAuthCodeAndGetUserParams), provider) +} + // RegisterUserData mocks base method. func (m *MockUserServiceIface) RegisterUserData(p *RegisterUserDataParams) (*RegisterUserDataResponse, error) { m.ctrl.T.Helper() @@ -550,7 +613,7 @@ func (m *MockUserServiceIface) RegisterUserData(p *RegisterUserDataParams) (*Reg } // RegisterUserData indicates an expected call of RegisterUserData. -func (mr *MockUserServiceIfaceMockRecorder) RegisterUserData(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) RegisterUserData(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterUserData", reflect.TypeOf((*MockUserServiceIface)(nil).RegisterUserData), p) } @@ -565,7 +628,7 @@ func (m *MockUserServiceIface) RegisterUserKeys(p *RegisterUserKeysParams) (*Reg } // RegisterUserKeys indicates an expected call of RegisterUserKeys. -func (mr *MockUserServiceIfaceMockRecorder) RegisterUserKeys(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) RegisterUserKeys(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterUserKeys", reflect.TypeOf((*MockUserServiceIface)(nil).RegisterUserKeys), p) } @@ -580,7 +643,7 @@ func (m *MockUserServiceIface) SetupUserTwoFactorAuthentication(p *SetupUserTwoF } // SetupUserTwoFactorAuthentication indicates an expected call of SetupUserTwoFactorAuthentication. -func (mr *MockUserServiceIfaceMockRecorder) SetupUserTwoFactorAuthentication(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) SetupUserTwoFactorAuthentication(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetupUserTwoFactorAuthentication", reflect.TypeOf((*MockUserServiceIface)(nil).SetupUserTwoFactorAuthentication), p) } @@ -595,7 +658,37 @@ func (m *MockUserServiceIface) UpdateUser(p *UpdateUserParams) (*UpdateUserRespo } // UpdateUser indicates an expected call of UpdateUser. -func (mr *MockUserServiceIfaceMockRecorder) UpdateUser(p interface{}) *gomock.Call { +func (mr *MockUserServiceIfaceMockRecorder) UpdateUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUser", reflect.TypeOf((*MockUserServiceIface)(nil).UpdateUser), p) } + +// ValidateUserTwoFactorAuthenticationCode mocks base method. +func (m *MockUserServiceIface) ValidateUserTwoFactorAuthenticationCode(p *ValidateUserTwoFactorAuthenticationCodeParams) (*ValidateUserTwoFactorAuthenticationCodeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ValidateUserTwoFactorAuthenticationCode", p) + ret0, _ := ret[0].(*ValidateUserTwoFactorAuthenticationCodeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ValidateUserTwoFactorAuthenticationCode indicates an expected call of ValidateUserTwoFactorAuthenticationCode. +func (mr *MockUserServiceIfaceMockRecorder) ValidateUserTwoFactorAuthenticationCode(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateUserTwoFactorAuthenticationCode", reflect.TypeOf((*MockUserServiceIface)(nil).ValidateUserTwoFactorAuthenticationCode), p) +} + +// VerifyOAuthCodeAndGetUser mocks base method. +func (m *MockUserServiceIface) VerifyOAuthCodeAndGetUser(p *VerifyOAuthCodeAndGetUserParams) (*VerifyOAuthCodeAndGetUserResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "VerifyOAuthCodeAndGetUser", p) + ret0, _ := ret[0].(*VerifyOAuthCodeAndGetUserResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// VerifyOAuthCodeAndGetUser indicates an expected call of VerifyOAuthCodeAndGetUser. +func (mr *MockUserServiceIfaceMockRecorder) VerifyOAuthCodeAndGetUser(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyOAuthCodeAndGetUser", reflect.TypeOf((*MockUserServiceIface)(nil).VerifyOAuthCodeAndGetUser), p) +} diff --git a/cloudstack/VLANService_mock.go b/cloudstack/VLANService_mock.go index 1e4b6880..50bcc22a 100644 --- a/cloudstack/VLANService_mock.go +++ b/cloudstack/VLANService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/VLANService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VLANService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VLANService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockVLANServiceIface is a mock of VLANServiceIface interface. type MockVLANServiceIface struct { ctrl *gomock.Controller recorder *MockVLANServiceIfaceMockRecorder + isgomock struct{} } // MockVLANServiceIfaceMockRecorder is the mock recorder for MockVLANServiceIface. @@ -62,7 +68,7 @@ func (m *MockVLANServiceIface) CreateVlanIpRange(p *CreateVlanIpRangeParams) (*C } // CreateVlanIpRange indicates an expected call of CreateVlanIpRange. -func (mr *MockVLANServiceIfaceMockRecorder) CreateVlanIpRange(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) CreateVlanIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVlanIpRange", reflect.TypeOf((*MockVLANServiceIface)(nil).CreateVlanIpRange), p) } @@ -77,7 +83,7 @@ func (m *MockVLANServiceIface) DedicateGuestVlanRange(p *DedicateGuestVlanRangeP } // DedicateGuestVlanRange indicates an expected call of DedicateGuestVlanRange. -func (mr *MockVLANServiceIfaceMockRecorder) DedicateGuestVlanRange(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) DedicateGuestVlanRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicateGuestVlanRange", reflect.TypeOf((*MockVLANServiceIface)(nil).DedicateGuestVlanRange), p) } @@ -92,7 +98,7 @@ func (m *MockVLANServiceIface) DeleteVlanIpRange(p *DeleteVlanIpRangeParams) (*D } // DeleteVlanIpRange indicates an expected call of DeleteVlanIpRange. -func (mr *MockVLANServiceIfaceMockRecorder) DeleteVlanIpRange(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) DeleteVlanIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVlanIpRange", reflect.TypeOf((*MockVLANServiceIface)(nil).DeleteVlanIpRange), p) } @@ -100,7 +106,7 @@ func (mr *MockVLANServiceIfaceMockRecorder) DeleteVlanIpRange(p interface{}) *go // GetDedicatedGuestVlanRangeByID mocks base method. func (m *MockVLANServiceIface) GetDedicatedGuestVlanRangeByID(id string, opts ...OptionFunc) (*DedicatedGuestVlanRange, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -112,16 +118,16 @@ func (m *MockVLANServiceIface) GetDedicatedGuestVlanRangeByID(id string, opts .. } // GetDedicatedGuestVlanRangeByID indicates an expected call of GetDedicatedGuestVlanRangeByID. -func (mr *MockVLANServiceIfaceMockRecorder) GetDedicatedGuestVlanRangeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) GetDedicatedGuestVlanRangeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDedicatedGuestVlanRangeByID", reflect.TypeOf((*MockVLANServiceIface)(nil).GetDedicatedGuestVlanRangeByID), varargs...) } // GetVlanIpRangeByID mocks base method. func (m *MockVLANServiceIface) GetVlanIpRangeByID(id string, opts ...OptionFunc) (*VlanIpRange, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -133,9 +139,9 @@ func (m *MockVLANServiceIface) GetVlanIpRangeByID(id string, opts ...OptionFunc) } // GetVlanIpRangeByID indicates an expected call of GetVlanIpRangeByID. -func (mr *MockVLANServiceIfaceMockRecorder) GetVlanIpRangeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) GetVlanIpRangeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVlanIpRangeByID", reflect.TypeOf((*MockVLANServiceIface)(nil).GetVlanIpRangeByID), varargs...) } @@ -149,7 +155,7 @@ func (m *MockVLANServiceIface) ListDedicatedGuestVlanRanges(p *ListDedicatedGues } // ListDedicatedGuestVlanRanges indicates an expected call of ListDedicatedGuestVlanRanges. -func (mr *MockVLANServiceIfaceMockRecorder) ListDedicatedGuestVlanRanges(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) ListDedicatedGuestVlanRanges(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDedicatedGuestVlanRanges", reflect.TypeOf((*MockVLANServiceIface)(nil).ListDedicatedGuestVlanRanges), p) } @@ -164,7 +170,7 @@ func (m *MockVLANServiceIface) ListGuestVlans(p *ListGuestVlansParams) (*ListGue } // ListGuestVlans indicates an expected call of ListGuestVlans. -func (mr *MockVLANServiceIfaceMockRecorder) ListGuestVlans(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) ListGuestVlans(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGuestVlans", reflect.TypeOf((*MockVLANServiceIface)(nil).ListGuestVlans), p) } @@ -179,7 +185,7 @@ func (m *MockVLANServiceIface) ListVlanIpRanges(p *ListVlanIpRangesParams) (*Lis } // ListVlanIpRanges indicates an expected call of ListVlanIpRanges. -func (mr *MockVLANServiceIfaceMockRecorder) ListVlanIpRanges(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) ListVlanIpRanges(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVlanIpRanges", reflect.TypeOf((*MockVLANServiceIface)(nil).ListVlanIpRanges), p) } @@ -207,7 +213,7 @@ func (m *MockVLANServiceIface) NewDedicateGuestVlanRangeParams(physicalnetworkid } // NewDedicateGuestVlanRangeParams indicates an expected call of NewDedicateGuestVlanRangeParams. -func (mr *MockVLANServiceIfaceMockRecorder) NewDedicateGuestVlanRangeParams(physicalnetworkid, vlanrange interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) NewDedicateGuestVlanRangeParams(physicalnetworkid, vlanrange any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicateGuestVlanRangeParams", reflect.TypeOf((*MockVLANServiceIface)(nil).NewDedicateGuestVlanRangeParams), physicalnetworkid, vlanrange) } @@ -221,7 +227,7 @@ func (m *MockVLANServiceIface) NewDeleteVlanIpRangeParams(id string) *DeleteVlan } // NewDeleteVlanIpRangeParams indicates an expected call of NewDeleteVlanIpRangeParams. -func (mr *MockVLANServiceIfaceMockRecorder) NewDeleteVlanIpRangeParams(id interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) NewDeleteVlanIpRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVlanIpRangeParams", reflect.TypeOf((*MockVLANServiceIface)(nil).NewDeleteVlanIpRangeParams), id) } @@ -277,7 +283,7 @@ func (m *MockVLANServiceIface) NewReleaseDedicatedGuestVlanRangeParams(id string } // NewReleaseDedicatedGuestVlanRangeParams indicates an expected call of NewReleaseDedicatedGuestVlanRangeParams. -func (mr *MockVLANServiceIfaceMockRecorder) NewReleaseDedicatedGuestVlanRangeParams(id interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) NewReleaseDedicatedGuestVlanRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseDedicatedGuestVlanRangeParams", reflect.TypeOf((*MockVLANServiceIface)(nil).NewReleaseDedicatedGuestVlanRangeParams), id) } @@ -291,7 +297,7 @@ func (m *MockVLANServiceIface) NewUpdateVlanIpRangeParams(id string) *UpdateVlan } // NewUpdateVlanIpRangeParams indicates an expected call of NewUpdateVlanIpRangeParams. -func (mr *MockVLANServiceIfaceMockRecorder) NewUpdateVlanIpRangeParams(id interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) NewUpdateVlanIpRangeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVlanIpRangeParams", reflect.TypeOf((*MockVLANServiceIface)(nil).NewUpdateVlanIpRangeParams), id) } @@ -306,7 +312,7 @@ func (m *MockVLANServiceIface) ReleaseDedicatedGuestVlanRange(p *ReleaseDedicate } // ReleaseDedicatedGuestVlanRange indicates an expected call of ReleaseDedicatedGuestVlanRange. -func (mr *MockVLANServiceIfaceMockRecorder) ReleaseDedicatedGuestVlanRange(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) ReleaseDedicatedGuestVlanRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseDedicatedGuestVlanRange", reflect.TypeOf((*MockVLANServiceIface)(nil).ReleaseDedicatedGuestVlanRange), p) } @@ -321,7 +327,7 @@ func (m *MockVLANServiceIface) UpdateVlanIpRange(p *UpdateVlanIpRangeParams) (*U } // UpdateVlanIpRange indicates an expected call of UpdateVlanIpRange. -func (mr *MockVLANServiceIfaceMockRecorder) UpdateVlanIpRange(p interface{}) *gomock.Call { +func (mr *MockVLANServiceIfaceMockRecorder) UpdateVlanIpRange(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVlanIpRange", reflect.TypeOf((*MockVLANServiceIface)(nil).UpdateVlanIpRange), p) } diff --git a/cloudstack/VMGroupService_mock.go b/cloudstack/VMGroupService_mock.go index b039662e..97d09088 100644 --- a/cloudstack/VMGroupService_mock.go +++ b/cloudstack/VMGroupService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/VMGroupService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VMGroupService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VMGroupService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockVMGroupServiceIface is a mock of VMGroupServiceIface interface. type MockVMGroupServiceIface struct { ctrl *gomock.Controller recorder *MockVMGroupServiceIfaceMockRecorder + isgomock struct{} } // MockVMGroupServiceIfaceMockRecorder is the mock recorder for MockVMGroupServiceIface. @@ -62,7 +68,7 @@ func (m *MockVMGroupServiceIface) CreateInstanceGroup(p *CreateInstanceGroupPara } // CreateInstanceGroup indicates an expected call of CreateInstanceGroup. -func (mr *MockVMGroupServiceIfaceMockRecorder) CreateInstanceGroup(p interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) CreateInstanceGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateInstanceGroup", reflect.TypeOf((*MockVMGroupServiceIface)(nil).CreateInstanceGroup), p) } @@ -77,7 +83,7 @@ func (m *MockVMGroupServiceIface) DeleteInstanceGroup(p *DeleteInstanceGroupPara } // DeleteInstanceGroup indicates an expected call of DeleteInstanceGroup. -func (mr *MockVMGroupServiceIfaceMockRecorder) DeleteInstanceGroup(p interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) DeleteInstanceGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteInstanceGroup", reflect.TypeOf((*MockVMGroupServiceIface)(nil).DeleteInstanceGroup), p) } @@ -85,7 +91,7 @@ func (mr *MockVMGroupServiceIfaceMockRecorder) DeleteInstanceGroup(p interface{} // GetInstanceGroupByID mocks base method. func (m *MockVMGroupServiceIface) GetInstanceGroupByID(id string, opts ...OptionFunc) (*InstanceGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -97,16 +103,16 @@ func (m *MockVMGroupServiceIface) GetInstanceGroupByID(id string, opts ...Option } // GetInstanceGroupByID indicates an expected call of GetInstanceGroupByID. -func (mr *MockVMGroupServiceIfaceMockRecorder) GetInstanceGroupByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) GetInstanceGroupByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInstanceGroupByID", reflect.TypeOf((*MockVMGroupServiceIface)(nil).GetInstanceGroupByID), varargs...) } // GetInstanceGroupByName mocks base method. func (m *MockVMGroupServiceIface) GetInstanceGroupByName(name string, opts ...OptionFunc) (*InstanceGroup, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -118,16 +124,16 @@ func (m *MockVMGroupServiceIface) GetInstanceGroupByName(name string, opts ...Op } // GetInstanceGroupByName indicates an expected call of GetInstanceGroupByName. -func (mr *MockVMGroupServiceIfaceMockRecorder) GetInstanceGroupByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) GetInstanceGroupByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInstanceGroupByName", reflect.TypeOf((*MockVMGroupServiceIface)(nil).GetInstanceGroupByName), varargs...) } // GetInstanceGroupID mocks base method. func (m *MockVMGroupServiceIface) GetInstanceGroupID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -139,9 +145,9 @@ func (m *MockVMGroupServiceIface) GetInstanceGroupID(name string, opts ...Option } // GetInstanceGroupID indicates an expected call of GetInstanceGroupID. -func (mr *MockVMGroupServiceIfaceMockRecorder) GetInstanceGroupID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) GetInstanceGroupID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInstanceGroupID", reflect.TypeOf((*MockVMGroupServiceIface)(nil).GetInstanceGroupID), varargs...) } @@ -155,7 +161,7 @@ func (m *MockVMGroupServiceIface) ListInstanceGroups(p *ListInstanceGroupsParams } // ListInstanceGroups indicates an expected call of ListInstanceGroups. -func (mr *MockVMGroupServiceIfaceMockRecorder) ListInstanceGroups(p interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) ListInstanceGroups(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListInstanceGroups", reflect.TypeOf((*MockVMGroupServiceIface)(nil).ListInstanceGroups), p) } @@ -169,7 +175,7 @@ func (m *MockVMGroupServiceIface) NewCreateInstanceGroupParams(name string) *Cre } // NewCreateInstanceGroupParams indicates an expected call of NewCreateInstanceGroupParams. -func (mr *MockVMGroupServiceIfaceMockRecorder) NewCreateInstanceGroupParams(name interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) NewCreateInstanceGroupParams(name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateInstanceGroupParams", reflect.TypeOf((*MockVMGroupServiceIface)(nil).NewCreateInstanceGroupParams), name) } @@ -183,7 +189,7 @@ func (m *MockVMGroupServiceIface) NewDeleteInstanceGroupParams(id string) *Delet } // NewDeleteInstanceGroupParams indicates an expected call of NewDeleteInstanceGroupParams. -func (mr *MockVMGroupServiceIfaceMockRecorder) NewDeleteInstanceGroupParams(id interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) NewDeleteInstanceGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteInstanceGroupParams", reflect.TypeOf((*MockVMGroupServiceIface)(nil).NewDeleteInstanceGroupParams), id) } @@ -211,7 +217,7 @@ func (m *MockVMGroupServiceIface) NewUpdateInstanceGroupParams(id string) *Updat } // NewUpdateInstanceGroupParams indicates an expected call of NewUpdateInstanceGroupParams. -func (mr *MockVMGroupServiceIfaceMockRecorder) NewUpdateInstanceGroupParams(id interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) NewUpdateInstanceGroupParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateInstanceGroupParams", reflect.TypeOf((*MockVMGroupServiceIface)(nil).NewUpdateInstanceGroupParams), id) } @@ -226,7 +232,7 @@ func (m *MockVMGroupServiceIface) UpdateInstanceGroup(p *UpdateInstanceGroupPara } // UpdateInstanceGroup indicates an expected call of UpdateInstanceGroup. -func (mr *MockVMGroupServiceIfaceMockRecorder) UpdateInstanceGroup(p interface{}) *gomock.Call { +func (mr *MockVMGroupServiceIfaceMockRecorder) UpdateInstanceGroup(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateInstanceGroup", reflect.TypeOf((*MockVMGroupServiceIface)(nil).UpdateInstanceGroup), p) } diff --git a/cloudstack/VPCService.go b/cloudstack/VPCService.go index 7af00933..a25b490e 100644 --- a/cloudstack/VPCService.go +++ b/cloudstack/VPCService.go @@ -60,6 +60,8 @@ type VPCServiceIface interface { GetVPCID(name string, opts ...OptionFunc) (string, int, error) GetVPCByName(name string, opts ...OptionFunc) (*VPC, int, error) GetVPCByID(id string, opts ...OptionFunc) (*VPC, int, error) + MigrateVPC(p *MigrateVPCParams) (*MigrateVPCResponse, error) + NewMigrateVPCParams(vpcid string, vpcofferingid string) *MigrateVPCParams RestartVPC(p *RestartVPCParams) (*RestartVPCResponse, error) NewRestartVPCParams(id string) *RestartVPCParams UpdateVPC(p *UpdateVPCParams) (*UpdateVPCResponse, error) @@ -3901,6 +3903,229 @@ type VPCServiceInternalCapability struct { Value string `json:"value"` } +type MigrateVPCParams struct { + p map[string]interface{} +} + +func (p *MigrateVPCParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["resume"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("resume", vv) + } + if v, found := p.p["tiernetworkofferings"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tiernetworkofferings[%d].key", i), k) + u.Set(fmt.Sprintf("tiernetworkofferings[%d].value", i), m[k]) + } + } + if v, found := p.p["vpcid"]; found { + u.Set("vpcid", v.(string)) + } + if v, found := p.p["vpcofferingid"]; found { + u.Set("vpcofferingid", v.(string)) + } + return u +} + +func (p *MigrateVPCParams) SetResume(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["resume"] = v +} + +func (p *MigrateVPCParams) ResetResume() { + if p.p != nil && p.p["resume"] != nil { + delete(p.p, "resume") + } +} + +func (p *MigrateVPCParams) GetResume() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["resume"].(bool) + return value, ok +} + +func (p *MigrateVPCParams) SetTiernetworkofferings(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["tiernetworkofferings"] = v +} + +func (p *MigrateVPCParams) ResetTiernetworkofferings() { + if p.p != nil && p.p["tiernetworkofferings"] != nil { + delete(p.p, "tiernetworkofferings") + } +} + +func (p *MigrateVPCParams) GetTiernetworkofferings() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tiernetworkofferings"].(map[string]string) + return value, ok +} + +func (p *MigrateVPCParams) SetVpcid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vpcid"] = v +} + +func (p *MigrateVPCParams) ResetVpcid() { + if p.p != nil && p.p["vpcid"] != nil { + delete(p.p, "vpcid") + } +} + +func (p *MigrateVPCParams) GetVpcid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vpcid"].(string) + return value, ok +} + +func (p *MigrateVPCParams) SetVpcofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vpcofferingid"] = v +} + +func (p *MigrateVPCParams) ResetVpcofferingid() { + if p.p != nil && p.p["vpcofferingid"] != nil { + delete(p.p, "vpcofferingid") + } +} + +func (p *MigrateVPCParams) GetVpcofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vpcofferingid"].(string) + return value, ok +} + +// You should always use this function to get a new MigrateVPCParams instance, +// as then you are sure you have configured all required params +func (s *VPCService) NewMigrateVPCParams(vpcid string, vpcofferingid string) *MigrateVPCParams { + p := &MigrateVPCParams{} + p.p = make(map[string]interface{}) + p.p["vpcid"] = vpcid + p.p["vpcofferingid"] = vpcofferingid + return p +} + +// moves a vpc to another physical network +func (s *VPCService) MigrateVPC(p *MigrateVPCParams) (*MigrateVPCResponse, error) { + resp, err := s.cs.newRequest("migrateVPC", p.toURLValues()) + if err != nil { + return nil, err + } + + var r MigrateVPCResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type MigrateVPCResponse struct { + Account string `json:"account"` + Asnumber int64 `json:"asnumber"` + Asnumberid string `json:"asnumberid"` + Bgppeers []interface{} `json:"bgppeers"` + Cidr string `json:"cidr"` + Created string `json:"created"` + Displaytext string `json:"displaytext"` + Distributedvpcrouter bool `json:"distributedvpcrouter"` + Dns1 string `json:"dns1"` + Dns2 string `json:"dns2"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Fordisplay bool `json:"fordisplay"` + Hasannotations bool `json:"hasannotations"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Ip4routes []interface{} `json:"ip4routes"` + Ip4routing string `json:"ip4routing"` + Ip6dns1 string `json:"ip6dns1"` + Ip6dns2 string `json:"ip6dns2"` + Ip6routes []interface{} `json:"ip6routes"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Network []*Network `json:"network"` + Networkdomain string `json:"networkdomain"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Publicmtu int `json:"publicmtu"` + Redundantvpcrouter bool `json:"redundantvpcrouter"` + Regionlevelvpc bool `json:"regionlevelvpc"` + Restartrequired bool `json:"restartrequired"` + Service []MigrateVPCResponseService `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 MigrateVPCResponseService struct { + Capability []MigrateVPCResponseServiceCapability `json:"capability"` + Name string `json:"name"` + Provider []MigrateVPCResponseServiceProvider `json:"provider"` +} + +type MigrateVPCResponseServiceProvider 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 MigrateVPCResponseServiceCapability struct { + Canchooseservicecapability bool `json:"canchooseservicecapability"` + Name string `json:"name"` + Value string `json:"value"` +} + type RestartVPCParams struct { p map[string]interface{} } diff --git a/cloudstack/VPCService_mock.go b/cloudstack/VPCService_mock.go index 567d26d1..57f898ec 100644 --- a/cloudstack/VPCService_mock.go +++ b/cloudstack/VPCService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/VPCService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VPCService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VPCService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockVPCServiceIface is a mock of VPCServiceIface interface. type MockVPCServiceIface struct { ctrl *gomock.Controller recorder *MockVPCServiceIfaceMockRecorder + isgomock struct{} } // MockVPCServiceIfaceMockRecorder is the mock recorder for MockVPCServiceIface. @@ -62,7 +68,7 @@ func (m *MockVPCServiceIface) CreatePrivateGateway(p *CreatePrivateGatewayParams } // CreatePrivateGateway indicates an expected call of CreatePrivateGateway. -func (mr *MockVPCServiceIfaceMockRecorder) CreatePrivateGateway(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) CreatePrivateGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePrivateGateway", reflect.TypeOf((*MockVPCServiceIface)(nil).CreatePrivateGateway), p) } @@ -77,7 +83,7 @@ func (m *MockVPCServiceIface) CreateStaticRoute(p *CreateStaticRouteParams) (*Cr } // CreateStaticRoute indicates an expected call of CreateStaticRoute. -func (mr *MockVPCServiceIfaceMockRecorder) CreateStaticRoute(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) CreateStaticRoute(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateStaticRoute", reflect.TypeOf((*MockVPCServiceIface)(nil).CreateStaticRoute), p) } @@ -92,7 +98,7 @@ func (m *MockVPCServiceIface) CreateVPC(p *CreateVPCParams) (*CreateVPCResponse, } // CreateVPC indicates an expected call of CreateVPC. -func (mr *MockVPCServiceIfaceMockRecorder) CreateVPC(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) CreateVPC(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVPC", reflect.TypeOf((*MockVPCServiceIface)(nil).CreateVPC), p) } @@ -107,7 +113,7 @@ func (m *MockVPCServiceIface) CreateVPCOffering(p *CreateVPCOfferingParams) (*Cr } // CreateVPCOffering indicates an expected call of CreateVPCOffering. -func (mr *MockVPCServiceIfaceMockRecorder) CreateVPCOffering(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) CreateVPCOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVPCOffering", reflect.TypeOf((*MockVPCServiceIface)(nil).CreateVPCOffering), p) } @@ -122,7 +128,7 @@ func (m *MockVPCServiceIface) DeletePrivateGateway(p *DeletePrivateGatewayParams } // DeletePrivateGateway indicates an expected call of DeletePrivateGateway. -func (mr *MockVPCServiceIfaceMockRecorder) DeletePrivateGateway(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) DeletePrivateGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePrivateGateway", reflect.TypeOf((*MockVPCServiceIface)(nil).DeletePrivateGateway), p) } @@ -137,7 +143,7 @@ func (m *MockVPCServiceIface) DeleteStaticRoute(p *DeleteStaticRouteParams) (*De } // DeleteStaticRoute indicates an expected call of DeleteStaticRoute. -func (mr *MockVPCServiceIfaceMockRecorder) DeleteStaticRoute(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) DeleteStaticRoute(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteStaticRoute", reflect.TypeOf((*MockVPCServiceIface)(nil).DeleteStaticRoute), p) } @@ -152,7 +158,7 @@ func (m *MockVPCServiceIface) DeleteVPC(p *DeleteVPCParams) (*DeleteVPCResponse, } // DeleteVPC indicates an expected call of DeleteVPC. -func (mr *MockVPCServiceIfaceMockRecorder) DeleteVPC(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) DeleteVPC(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVPC", reflect.TypeOf((*MockVPCServiceIface)(nil).DeleteVPC), p) } @@ -167,7 +173,7 @@ func (m *MockVPCServiceIface) DeleteVPCOffering(p *DeleteVPCOfferingParams) (*De } // DeleteVPCOffering indicates an expected call of DeleteVPCOffering. -func (mr *MockVPCServiceIfaceMockRecorder) DeleteVPCOffering(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) DeleteVPCOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVPCOffering", reflect.TypeOf((*MockVPCServiceIface)(nil).DeleteVPCOffering), p) } @@ -175,7 +181,7 @@ func (mr *MockVPCServiceIfaceMockRecorder) DeleteVPCOffering(p interface{}) *gom // GetPrivateGatewayByID mocks base method. func (m *MockVPCServiceIface) GetPrivateGatewayByID(id string, opts ...OptionFunc) (*PrivateGateway, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -187,16 +193,16 @@ func (m *MockVPCServiceIface) GetPrivateGatewayByID(id string, opts ...OptionFun } // GetPrivateGatewayByID indicates an expected call of GetPrivateGatewayByID. -func (mr *MockVPCServiceIfaceMockRecorder) GetPrivateGatewayByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetPrivateGatewayByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrivateGatewayByID", reflect.TypeOf((*MockVPCServiceIface)(nil).GetPrivateGatewayByID), varargs...) } // GetStaticRouteByID mocks base method. func (m *MockVPCServiceIface) GetStaticRouteByID(id string, opts ...OptionFunc) (*StaticRoute, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -208,16 +214,16 @@ func (m *MockVPCServiceIface) GetStaticRouteByID(id string, opts ...OptionFunc) } // GetStaticRouteByID indicates an expected call of GetStaticRouteByID. -func (mr *MockVPCServiceIfaceMockRecorder) GetStaticRouteByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetStaticRouteByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStaticRouteByID", reflect.TypeOf((*MockVPCServiceIface)(nil).GetStaticRouteByID), varargs...) } // GetVPCByID mocks base method. func (m *MockVPCServiceIface) GetVPCByID(id string, opts ...OptionFunc) (*VPC, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -229,16 +235,16 @@ func (m *MockVPCServiceIface) GetVPCByID(id string, opts ...OptionFunc) (*VPC, i } // GetVPCByID indicates an expected call of GetVPCByID. -func (mr *MockVPCServiceIfaceMockRecorder) GetVPCByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetVPCByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVPCByID", reflect.TypeOf((*MockVPCServiceIface)(nil).GetVPCByID), varargs...) } // GetVPCByName mocks base method. func (m *MockVPCServiceIface) GetVPCByName(name string, opts ...OptionFunc) (*VPC, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -250,16 +256,16 @@ func (m *MockVPCServiceIface) GetVPCByName(name string, opts ...OptionFunc) (*VP } // GetVPCByName indicates an expected call of GetVPCByName. -func (mr *MockVPCServiceIfaceMockRecorder) GetVPCByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetVPCByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVPCByName", reflect.TypeOf((*MockVPCServiceIface)(nil).GetVPCByName), varargs...) } // GetVPCID mocks base method. func (m *MockVPCServiceIface) GetVPCID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -271,16 +277,16 @@ func (m *MockVPCServiceIface) GetVPCID(name string, opts ...OptionFunc) (string, } // GetVPCID indicates an expected call of GetVPCID. -func (mr *MockVPCServiceIfaceMockRecorder) GetVPCID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetVPCID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVPCID", reflect.TypeOf((*MockVPCServiceIface)(nil).GetVPCID), varargs...) } // GetVPCOfferingByID mocks base method. func (m *MockVPCServiceIface) GetVPCOfferingByID(id string, opts ...OptionFunc) (*VPCOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -292,16 +298,16 @@ func (m *MockVPCServiceIface) GetVPCOfferingByID(id string, opts ...OptionFunc) } // GetVPCOfferingByID indicates an expected call of GetVPCOfferingByID. -func (mr *MockVPCServiceIfaceMockRecorder) GetVPCOfferingByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetVPCOfferingByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVPCOfferingByID", reflect.TypeOf((*MockVPCServiceIface)(nil).GetVPCOfferingByID), varargs...) } // GetVPCOfferingByName mocks base method. func (m *MockVPCServiceIface) GetVPCOfferingByName(name string, opts ...OptionFunc) (*VPCOffering, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -313,16 +319,16 @@ func (m *MockVPCServiceIface) GetVPCOfferingByName(name string, opts ...OptionFu } // GetVPCOfferingByName indicates an expected call of GetVPCOfferingByName. -func (mr *MockVPCServiceIfaceMockRecorder) GetVPCOfferingByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetVPCOfferingByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVPCOfferingByName", reflect.TypeOf((*MockVPCServiceIface)(nil).GetVPCOfferingByName), varargs...) } // GetVPCOfferingID mocks base method. func (m *MockVPCServiceIface) GetVPCOfferingID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -334,9 +340,9 @@ func (m *MockVPCServiceIface) GetVPCOfferingID(name string, opts ...OptionFunc) } // GetVPCOfferingID indicates an expected call of GetVPCOfferingID. -func (mr *MockVPCServiceIfaceMockRecorder) GetVPCOfferingID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) GetVPCOfferingID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVPCOfferingID", reflect.TypeOf((*MockVPCServiceIface)(nil).GetVPCOfferingID), varargs...) } @@ -350,7 +356,7 @@ func (m *MockVPCServiceIface) ListPrivateGateways(p *ListPrivateGatewaysParams) } // ListPrivateGateways indicates an expected call of ListPrivateGateways. -func (mr *MockVPCServiceIfaceMockRecorder) ListPrivateGateways(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) ListPrivateGateways(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPrivateGateways", reflect.TypeOf((*MockVPCServiceIface)(nil).ListPrivateGateways), p) } @@ -365,7 +371,7 @@ func (m *MockVPCServiceIface) ListStaticRoutes(p *ListStaticRoutesParams) (*List } // ListStaticRoutes indicates an expected call of ListStaticRoutes. -func (mr *MockVPCServiceIfaceMockRecorder) ListStaticRoutes(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) ListStaticRoutes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListStaticRoutes", reflect.TypeOf((*MockVPCServiceIface)(nil).ListStaticRoutes), p) } @@ -380,7 +386,7 @@ func (m *MockVPCServiceIface) ListVPCOfferings(p *ListVPCOfferingsParams) (*List } // ListVPCOfferings indicates an expected call of ListVPCOfferings. -func (mr *MockVPCServiceIfaceMockRecorder) ListVPCOfferings(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) ListVPCOfferings(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVPCOfferings", reflect.TypeOf((*MockVPCServiceIface)(nil).ListVPCOfferings), p) } @@ -395,11 +401,26 @@ func (m *MockVPCServiceIface) ListVPCs(p *ListVPCsParams) (*ListVPCsResponse, er } // ListVPCs indicates an expected call of ListVPCs. -func (mr *MockVPCServiceIfaceMockRecorder) ListVPCs(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) ListVPCs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVPCs", reflect.TypeOf((*MockVPCServiceIface)(nil).ListVPCs), p) } +// MigrateVPC mocks base method. +func (m *MockVPCServiceIface) MigrateVPC(p *MigrateVPCParams) (*MigrateVPCResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MigrateVPC", p) + ret0, _ := ret[0].(*MigrateVPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MigrateVPC indicates an expected call of MigrateVPC. +func (mr *MockVPCServiceIfaceMockRecorder) MigrateVPC(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateVPC", reflect.TypeOf((*MockVPCServiceIface)(nil).MigrateVPC), p) +} + // NewCreatePrivateGatewayParams mocks base method. func (m *MockVPCServiceIface) NewCreatePrivateGatewayParams(gateway, ipaddress, netmask, vpcid string) *CreatePrivateGatewayParams { m.ctrl.T.Helper() @@ -409,7 +430,7 @@ func (m *MockVPCServiceIface) NewCreatePrivateGatewayParams(gateway, ipaddress, } // NewCreatePrivateGatewayParams indicates an expected call of NewCreatePrivateGatewayParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewCreatePrivateGatewayParams(gateway, ipaddress, netmask, vpcid interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewCreatePrivateGatewayParams(gateway, ipaddress, netmask, vpcid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreatePrivateGatewayParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewCreatePrivateGatewayParams), gateway, ipaddress, netmask, vpcid) } @@ -423,7 +444,7 @@ func (m *MockVPCServiceIface) NewCreateStaticRouteParams(cidr, gatewayid string) } // NewCreateStaticRouteParams indicates an expected call of NewCreateStaticRouteParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewCreateStaticRouteParams(cidr, gatewayid interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewCreateStaticRouteParams(cidr, gatewayid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateStaticRouteParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewCreateStaticRouteParams), cidr, gatewayid) } @@ -437,7 +458,7 @@ func (m *MockVPCServiceIface) NewCreateVPCOfferingParams(displaytext, name strin } // NewCreateVPCOfferingParams indicates an expected call of NewCreateVPCOfferingParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewCreateVPCOfferingParams(displaytext, name interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewCreateVPCOfferingParams(displaytext, name any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVPCOfferingParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewCreateVPCOfferingParams), displaytext, name) } @@ -451,7 +472,7 @@ func (m *MockVPCServiceIface) NewCreateVPCParams(displaytext, name, vpcofferingi } // NewCreateVPCParams indicates an expected call of NewCreateVPCParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewCreateVPCParams(displaytext, name, vpcofferingid, zoneid interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewCreateVPCParams(displaytext, name, vpcofferingid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVPCParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewCreateVPCParams), displaytext, name, vpcofferingid, zoneid) } @@ -465,7 +486,7 @@ func (m *MockVPCServiceIface) NewDeletePrivateGatewayParams(id string) *DeletePr } // NewDeletePrivateGatewayParams indicates an expected call of NewDeletePrivateGatewayParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewDeletePrivateGatewayParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewDeletePrivateGatewayParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeletePrivateGatewayParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewDeletePrivateGatewayParams), id) } @@ -479,7 +500,7 @@ func (m *MockVPCServiceIface) NewDeleteStaticRouteParams(id string) *DeleteStati } // NewDeleteStaticRouteParams indicates an expected call of NewDeleteStaticRouteParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewDeleteStaticRouteParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewDeleteStaticRouteParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteStaticRouteParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewDeleteStaticRouteParams), id) } @@ -493,7 +514,7 @@ func (m *MockVPCServiceIface) NewDeleteVPCOfferingParams(id string) *DeleteVPCOf } // NewDeleteVPCOfferingParams indicates an expected call of NewDeleteVPCOfferingParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewDeleteVPCOfferingParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewDeleteVPCOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVPCOfferingParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewDeleteVPCOfferingParams), id) } @@ -507,7 +528,7 @@ func (m *MockVPCServiceIface) NewDeleteVPCParams(id string) *DeleteVPCParams { } // NewDeleteVPCParams indicates an expected call of NewDeleteVPCParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewDeleteVPCParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewDeleteVPCParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVPCParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewDeleteVPCParams), id) } @@ -568,6 +589,20 @@ func (mr *MockVPCServiceIfaceMockRecorder) NewListVPCsParams() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVPCsParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewListVPCsParams)) } +// NewMigrateVPCParams mocks base method. +func (m *MockVPCServiceIface) NewMigrateVPCParams(vpcid, vpcofferingid string) *MigrateVPCParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewMigrateVPCParams", vpcid, vpcofferingid) + ret0, _ := ret[0].(*MigrateVPCParams) + return ret0 +} + +// NewMigrateVPCParams indicates an expected call of NewMigrateVPCParams. +func (mr *MockVPCServiceIfaceMockRecorder) NewMigrateVPCParams(vpcid, vpcofferingid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateVPCParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewMigrateVPCParams), vpcid, vpcofferingid) +} + // NewRestartVPCParams mocks base method. func (m *MockVPCServiceIface) NewRestartVPCParams(id string) *RestartVPCParams { m.ctrl.T.Helper() @@ -577,7 +612,7 @@ func (m *MockVPCServiceIface) NewRestartVPCParams(id string) *RestartVPCParams { } // NewRestartVPCParams indicates an expected call of NewRestartVPCParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewRestartVPCParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewRestartVPCParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRestartVPCParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewRestartVPCParams), id) } @@ -591,7 +626,7 @@ func (m *MockVPCServiceIface) NewUpdateVPCOfferingParams(id string) *UpdateVPCOf } // NewUpdateVPCOfferingParams indicates an expected call of NewUpdateVPCOfferingParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewUpdateVPCOfferingParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewUpdateVPCOfferingParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVPCOfferingParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewUpdateVPCOfferingParams), id) } @@ -605,7 +640,7 @@ func (m *MockVPCServiceIface) NewUpdateVPCParams(id string) *UpdateVPCParams { } // NewUpdateVPCParams indicates an expected call of NewUpdateVPCParams. -func (mr *MockVPCServiceIfaceMockRecorder) NewUpdateVPCParams(id interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) NewUpdateVPCParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVPCParams", reflect.TypeOf((*MockVPCServiceIface)(nil).NewUpdateVPCParams), id) } @@ -620,7 +655,7 @@ func (m *MockVPCServiceIface) RestartVPC(p *RestartVPCParams) (*RestartVPCRespon } // RestartVPC indicates an expected call of RestartVPC. -func (mr *MockVPCServiceIfaceMockRecorder) RestartVPC(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) RestartVPC(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestartVPC", reflect.TypeOf((*MockVPCServiceIface)(nil).RestartVPC), p) } @@ -635,7 +670,7 @@ func (m *MockVPCServiceIface) UpdateVPC(p *UpdateVPCParams) (*UpdateVPCResponse, } // UpdateVPC indicates an expected call of UpdateVPC. -func (mr *MockVPCServiceIfaceMockRecorder) UpdateVPC(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) UpdateVPC(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVPC", reflect.TypeOf((*MockVPCServiceIface)(nil).UpdateVPC), p) } @@ -650,7 +685,7 @@ func (m *MockVPCServiceIface) UpdateVPCOffering(p *UpdateVPCOfferingParams) (*Up } // UpdateVPCOffering indicates an expected call of UpdateVPCOffering. -func (mr *MockVPCServiceIfaceMockRecorder) UpdateVPCOffering(p interface{}) *gomock.Call { +func (mr *MockVPCServiceIfaceMockRecorder) UpdateVPCOffering(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVPCOffering", reflect.TypeOf((*MockVPCServiceIface)(nil).UpdateVPCOffering), p) } diff --git a/cloudstack/VPNService_mock.go b/cloudstack/VPNService_mock.go index 2a7b1b14..22a1a77d 100644 --- a/cloudstack/VPNService_mock.go +++ b/cloudstack/VPNService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/VPNService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VPNService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VPNService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockVPNServiceIface is a mock of VPNServiceIface interface. type MockVPNServiceIface struct { ctrl *gomock.Controller recorder *MockVPNServiceIfaceMockRecorder + isgomock struct{} } // MockVPNServiceIfaceMockRecorder is the mock recorder for MockVPNServiceIface. @@ -62,7 +68,7 @@ func (m *MockVPNServiceIface) AddVpnUser(p *AddVpnUserParams) (*AddVpnUserRespon } // AddVpnUser indicates an expected call of AddVpnUser. -func (mr *MockVPNServiceIfaceMockRecorder) AddVpnUser(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) AddVpnUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVpnUser", reflect.TypeOf((*MockVPNServiceIface)(nil).AddVpnUser), p) } @@ -77,7 +83,7 @@ func (m *MockVPNServiceIface) CreateRemoteAccessVpn(p *CreateRemoteAccessVpnPara } // CreateRemoteAccessVpn indicates an expected call of CreateRemoteAccessVpn. -func (mr *MockVPNServiceIfaceMockRecorder) CreateRemoteAccessVpn(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) CreateRemoteAccessVpn(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRemoteAccessVpn", reflect.TypeOf((*MockVPNServiceIface)(nil).CreateRemoteAccessVpn), p) } @@ -92,7 +98,7 @@ func (m *MockVPNServiceIface) CreateVpnConnection(p *CreateVpnConnectionParams) } // CreateVpnConnection indicates an expected call of CreateVpnConnection. -func (mr *MockVPNServiceIfaceMockRecorder) CreateVpnConnection(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) CreateVpnConnection(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVpnConnection", reflect.TypeOf((*MockVPNServiceIface)(nil).CreateVpnConnection), p) } @@ -107,7 +113,7 @@ func (m *MockVPNServiceIface) CreateVpnCustomerGateway(p *CreateVpnCustomerGatew } // CreateVpnCustomerGateway indicates an expected call of CreateVpnCustomerGateway. -func (mr *MockVPNServiceIfaceMockRecorder) CreateVpnCustomerGateway(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) CreateVpnCustomerGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVpnCustomerGateway", reflect.TypeOf((*MockVPNServiceIface)(nil).CreateVpnCustomerGateway), p) } @@ -122,7 +128,7 @@ func (m *MockVPNServiceIface) CreateVpnGateway(p *CreateVpnGatewayParams) (*Crea } // CreateVpnGateway indicates an expected call of CreateVpnGateway. -func (mr *MockVPNServiceIfaceMockRecorder) CreateVpnGateway(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) CreateVpnGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVpnGateway", reflect.TypeOf((*MockVPNServiceIface)(nil).CreateVpnGateway), p) } @@ -137,7 +143,7 @@ func (m *MockVPNServiceIface) DeleteRemoteAccessVpn(p *DeleteRemoteAccessVpnPara } // DeleteRemoteAccessVpn indicates an expected call of DeleteRemoteAccessVpn. -func (mr *MockVPNServiceIfaceMockRecorder) DeleteRemoteAccessVpn(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) DeleteRemoteAccessVpn(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRemoteAccessVpn", reflect.TypeOf((*MockVPNServiceIface)(nil).DeleteRemoteAccessVpn), p) } @@ -152,7 +158,7 @@ func (m *MockVPNServiceIface) DeleteVpnConnection(p *DeleteVpnConnectionParams) } // DeleteVpnConnection indicates an expected call of DeleteVpnConnection. -func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnConnection(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnConnection(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVpnConnection", reflect.TypeOf((*MockVPNServiceIface)(nil).DeleteVpnConnection), p) } @@ -167,7 +173,7 @@ func (m *MockVPNServiceIface) DeleteVpnCustomerGateway(p *DeleteVpnCustomerGatew } // DeleteVpnCustomerGateway indicates an expected call of DeleteVpnCustomerGateway. -func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnCustomerGateway(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnCustomerGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVpnCustomerGateway", reflect.TypeOf((*MockVPNServiceIface)(nil).DeleteVpnCustomerGateway), p) } @@ -182,7 +188,7 @@ func (m *MockVPNServiceIface) DeleteVpnGateway(p *DeleteVpnGatewayParams) (*Dele } // DeleteVpnGateway indicates an expected call of DeleteVpnGateway. -func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnGateway(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVpnGateway", reflect.TypeOf((*MockVPNServiceIface)(nil).DeleteVpnGateway), p) } @@ -190,7 +196,7 @@ func (mr *MockVPNServiceIfaceMockRecorder) DeleteVpnGateway(p interface{}) *gomo // GetRemoteAccessVpnByID mocks base method. func (m *MockVPNServiceIface) GetRemoteAccessVpnByID(id string, opts ...OptionFunc) (*RemoteAccessVpn, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -202,16 +208,16 @@ func (m *MockVPNServiceIface) GetRemoteAccessVpnByID(id string, opts ...OptionFu } // GetRemoteAccessVpnByID indicates an expected call of GetRemoteAccessVpnByID. -func (mr *MockVPNServiceIfaceMockRecorder) GetRemoteAccessVpnByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetRemoteAccessVpnByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRemoteAccessVpnByID", reflect.TypeOf((*MockVPNServiceIface)(nil).GetRemoteAccessVpnByID), varargs...) } // GetVpnConnectionByID mocks base method. func (m *MockVPNServiceIface) GetVpnConnectionByID(id string, opts ...OptionFunc) (*VpnConnection, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -223,16 +229,16 @@ func (m *MockVPNServiceIface) GetVpnConnectionByID(id string, opts ...OptionFunc } // GetVpnConnectionByID indicates an expected call of GetVpnConnectionByID. -func (mr *MockVPNServiceIfaceMockRecorder) GetVpnConnectionByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetVpnConnectionByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVpnConnectionByID", reflect.TypeOf((*MockVPNServiceIface)(nil).GetVpnConnectionByID), varargs...) } // GetVpnCustomerGatewayByID mocks base method. func (m *MockVPNServiceIface) GetVpnCustomerGatewayByID(id string, opts ...OptionFunc) (*VpnCustomerGateway, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -244,16 +250,16 @@ func (m *MockVPNServiceIface) GetVpnCustomerGatewayByID(id string, opts ...Optio } // GetVpnCustomerGatewayByID indicates an expected call of GetVpnCustomerGatewayByID. -func (mr *MockVPNServiceIfaceMockRecorder) GetVpnCustomerGatewayByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetVpnCustomerGatewayByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVpnCustomerGatewayByID", reflect.TypeOf((*MockVPNServiceIface)(nil).GetVpnCustomerGatewayByID), varargs...) } // GetVpnCustomerGatewayByName mocks base method. func (m *MockVPNServiceIface) GetVpnCustomerGatewayByName(name string, opts ...OptionFunc) (*VpnCustomerGateway, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -265,16 +271,16 @@ func (m *MockVPNServiceIface) GetVpnCustomerGatewayByName(name string, opts ...O } // GetVpnCustomerGatewayByName indicates an expected call of GetVpnCustomerGatewayByName. -func (mr *MockVPNServiceIfaceMockRecorder) GetVpnCustomerGatewayByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetVpnCustomerGatewayByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVpnCustomerGatewayByName", reflect.TypeOf((*MockVPNServiceIface)(nil).GetVpnCustomerGatewayByName), varargs...) } // GetVpnCustomerGatewayID mocks base method. func (m *MockVPNServiceIface) GetVpnCustomerGatewayID(keyword string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword} + varargs := []any{keyword} for _, a := range opts { varargs = append(varargs, a) } @@ -286,16 +292,16 @@ func (m *MockVPNServiceIface) GetVpnCustomerGatewayID(keyword string, opts ...Op } // GetVpnCustomerGatewayID indicates an expected call of GetVpnCustomerGatewayID. -func (mr *MockVPNServiceIfaceMockRecorder) GetVpnCustomerGatewayID(keyword interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetVpnCustomerGatewayID(keyword any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword}, opts...) + varargs := append([]any{keyword}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVpnCustomerGatewayID", reflect.TypeOf((*MockVPNServiceIface)(nil).GetVpnCustomerGatewayID), varargs...) } // GetVpnGatewayByID mocks base method. func (m *MockVPNServiceIface) GetVpnGatewayByID(id string, opts ...OptionFunc) (*VpnGateway, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -307,16 +313,16 @@ func (m *MockVPNServiceIface) GetVpnGatewayByID(id string, opts ...OptionFunc) ( } // GetVpnGatewayByID indicates an expected call of GetVpnGatewayByID. -func (mr *MockVPNServiceIfaceMockRecorder) GetVpnGatewayByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetVpnGatewayByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVpnGatewayByID", reflect.TypeOf((*MockVPNServiceIface)(nil).GetVpnGatewayByID), varargs...) } // GetVpnUserByID mocks base method. func (m *MockVPNServiceIface) GetVpnUserByID(id string, opts ...OptionFunc) (*VpnUser, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -328,9 +334,9 @@ func (m *MockVPNServiceIface) GetVpnUserByID(id string, opts ...OptionFunc) (*Vp } // GetVpnUserByID indicates an expected call of GetVpnUserByID. -func (mr *MockVPNServiceIfaceMockRecorder) GetVpnUserByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) GetVpnUserByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVpnUserByID", reflect.TypeOf((*MockVPNServiceIface)(nil).GetVpnUserByID), varargs...) } @@ -344,7 +350,7 @@ func (m *MockVPNServiceIface) ListRemoteAccessVpns(p *ListRemoteAccessVpnsParams } // ListRemoteAccessVpns indicates an expected call of ListRemoteAccessVpns. -func (mr *MockVPNServiceIfaceMockRecorder) ListRemoteAccessVpns(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) ListRemoteAccessVpns(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRemoteAccessVpns", reflect.TypeOf((*MockVPNServiceIface)(nil).ListRemoteAccessVpns), p) } @@ -359,7 +365,7 @@ func (m *MockVPNServiceIface) ListVpnConnections(p *ListVpnConnectionsParams) (* } // ListVpnConnections indicates an expected call of ListVpnConnections. -func (mr *MockVPNServiceIfaceMockRecorder) ListVpnConnections(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) ListVpnConnections(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVpnConnections", reflect.TypeOf((*MockVPNServiceIface)(nil).ListVpnConnections), p) } @@ -374,7 +380,7 @@ func (m *MockVPNServiceIface) ListVpnCustomerGateways(p *ListVpnCustomerGateways } // ListVpnCustomerGateways indicates an expected call of ListVpnCustomerGateways. -func (mr *MockVPNServiceIfaceMockRecorder) ListVpnCustomerGateways(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) ListVpnCustomerGateways(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVpnCustomerGateways", reflect.TypeOf((*MockVPNServiceIface)(nil).ListVpnCustomerGateways), p) } @@ -389,7 +395,7 @@ func (m *MockVPNServiceIface) ListVpnGateways(p *ListVpnGatewaysParams) (*ListVp } // ListVpnGateways indicates an expected call of ListVpnGateways. -func (mr *MockVPNServiceIfaceMockRecorder) ListVpnGateways(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) ListVpnGateways(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVpnGateways", reflect.TypeOf((*MockVPNServiceIface)(nil).ListVpnGateways), p) } @@ -404,7 +410,7 @@ func (m *MockVPNServiceIface) ListVpnUsers(p *ListVpnUsersParams) (*ListVpnUsers } // ListVpnUsers indicates an expected call of ListVpnUsers. -func (mr *MockVPNServiceIfaceMockRecorder) ListVpnUsers(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) ListVpnUsers(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVpnUsers", reflect.TypeOf((*MockVPNServiceIface)(nil).ListVpnUsers), p) } @@ -418,7 +424,7 @@ func (m *MockVPNServiceIface) NewAddVpnUserParams(password, username string) *Ad } // NewAddVpnUserParams indicates an expected call of NewAddVpnUserParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewAddVpnUserParams(password, username interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewAddVpnUserParams(password, username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddVpnUserParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewAddVpnUserParams), password, username) } @@ -432,7 +438,7 @@ func (m *MockVPNServiceIface) NewCreateRemoteAccessVpnParams(publicipid string) } // NewCreateRemoteAccessVpnParams indicates an expected call of NewCreateRemoteAccessVpnParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewCreateRemoteAccessVpnParams(publicipid interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewCreateRemoteAccessVpnParams(publicipid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateRemoteAccessVpnParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewCreateRemoteAccessVpnParams), publicipid) } @@ -446,7 +452,7 @@ func (m *MockVPNServiceIface) NewCreateVpnConnectionParams(s2scustomergatewayid, } // NewCreateVpnConnectionParams indicates an expected call of NewCreateVpnConnectionParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewCreateVpnConnectionParams(s2scustomergatewayid, s2svpngatewayid interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewCreateVpnConnectionParams(s2scustomergatewayid, s2svpngatewayid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVpnConnectionParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewCreateVpnConnectionParams), s2scustomergatewayid, s2svpngatewayid) } @@ -460,7 +466,7 @@ func (m *MockVPNServiceIface) NewCreateVpnCustomerGatewayParams(cidrlist, esppol } // NewCreateVpnCustomerGatewayParams indicates an expected call of NewCreateVpnCustomerGatewayParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewCreateVpnCustomerGatewayParams(cidrlist, esppolicy, gateway, ikepolicy, ipsecpsk interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewCreateVpnCustomerGatewayParams(cidrlist, esppolicy, gateway, ikepolicy, ipsecpsk any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVpnCustomerGatewayParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewCreateVpnCustomerGatewayParams), cidrlist, esppolicy, gateway, ikepolicy, ipsecpsk) } @@ -474,7 +480,7 @@ func (m *MockVPNServiceIface) NewCreateVpnGatewayParams(vpcid string) *CreateVpn } // NewCreateVpnGatewayParams indicates an expected call of NewCreateVpnGatewayParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewCreateVpnGatewayParams(vpcid interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewCreateVpnGatewayParams(vpcid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVpnGatewayParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewCreateVpnGatewayParams), vpcid) } @@ -488,7 +494,7 @@ func (m *MockVPNServiceIface) NewDeleteRemoteAccessVpnParams(publicipid string) } // NewDeleteRemoteAccessVpnParams indicates an expected call of NewDeleteRemoteAccessVpnParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteRemoteAccessVpnParams(publicipid interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteRemoteAccessVpnParams(publicipid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteRemoteAccessVpnParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewDeleteRemoteAccessVpnParams), publicipid) } @@ -502,7 +508,7 @@ func (m *MockVPNServiceIface) NewDeleteVpnConnectionParams(id string) *DeleteVpn } // NewDeleteVpnConnectionParams indicates an expected call of NewDeleteVpnConnectionParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteVpnConnectionParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteVpnConnectionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVpnConnectionParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewDeleteVpnConnectionParams), id) } @@ -516,7 +522,7 @@ func (m *MockVPNServiceIface) NewDeleteVpnCustomerGatewayParams(id string) *Dele } // NewDeleteVpnCustomerGatewayParams indicates an expected call of NewDeleteVpnCustomerGatewayParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteVpnCustomerGatewayParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteVpnCustomerGatewayParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVpnCustomerGatewayParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewDeleteVpnCustomerGatewayParams), id) } @@ -530,7 +536,7 @@ func (m *MockVPNServiceIface) NewDeleteVpnGatewayParams(id string) *DeleteVpnGat } // NewDeleteVpnGatewayParams indicates an expected call of NewDeleteVpnGatewayParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteVpnGatewayParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewDeleteVpnGatewayParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVpnGatewayParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewDeleteVpnGatewayParams), id) } @@ -614,7 +620,7 @@ func (m *MockVPNServiceIface) NewRemoveVpnUserParams(username string) *RemoveVpn } // NewRemoveVpnUserParams indicates an expected call of NewRemoveVpnUserParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewRemoveVpnUserParams(username interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewRemoveVpnUserParams(username any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveVpnUserParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewRemoveVpnUserParams), username) } @@ -628,7 +634,7 @@ func (m *MockVPNServiceIface) NewResetVpnConnectionParams(id string) *ResetVpnCo } // NewResetVpnConnectionParams indicates an expected call of NewResetVpnConnectionParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewResetVpnConnectionParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewResetVpnConnectionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResetVpnConnectionParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewResetVpnConnectionParams), id) } @@ -642,7 +648,7 @@ func (m *MockVPNServiceIface) NewUpdateRemoteAccessVpnParams(id string) *UpdateR } // NewUpdateRemoteAccessVpnParams indicates an expected call of NewUpdateRemoteAccessVpnParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateRemoteAccessVpnParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateRemoteAccessVpnParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateRemoteAccessVpnParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewUpdateRemoteAccessVpnParams), id) } @@ -656,7 +662,7 @@ func (m *MockVPNServiceIface) NewUpdateVpnConnectionParams(id string) *UpdateVpn } // NewUpdateVpnConnectionParams indicates an expected call of NewUpdateVpnConnectionParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateVpnConnectionParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateVpnConnectionParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVpnConnectionParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewUpdateVpnConnectionParams), id) } @@ -670,7 +676,7 @@ func (m *MockVPNServiceIface) NewUpdateVpnCustomerGatewayParams(cidrlist, esppol } // NewUpdateVpnCustomerGatewayParams indicates an expected call of NewUpdateVpnCustomerGatewayParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateVpnCustomerGatewayParams(cidrlist, esppolicy, gateway, id, ikepolicy, ipsecpsk interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateVpnCustomerGatewayParams(cidrlist, esppolicy, gateway, id, ikepolicy, ipsecpsk any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVpnCustomerGatewayParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewUpdateVpnCustomerGatewayParams), cidrlist, esppolicy, gateway, id, ikepolicy, ipsecpsk) } @@ -684,7 +690,7 @@ func (m *MockVPNServiceIface) NewUpdateVpnGatewayParams(id string) *UpdateVpnGat } // NewUpdateVpnGatewayParams indicates an expected call of NewUpdateVpnGatewayParams. -func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateVpnGatewayParams(id interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) NewUpdateVpnGatewayParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVpnGatewayParams", reflect.TypeOf((*MockVPNServiceIface)(nil).NewUpdateVpnGatewayParams), id) } @@ -699,7 +705,7 @@ func (m *MockVPNServiceIface) RemoveVpnUser(p *RemoveVpnUserParams) (*RemoveVpnU } // RemoveVpnUser indicates an expected call of RemoveVpnUser. -func (mr *MockVPNServiceIfaceMockRecorder) RemoveVpnUser(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) RemoveVpnUser(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVpnUser", reflect.TypeOf((*MockVPNServiceIface)(nil).RemoveVpnUser), p) } @@ -714,7 +720,7 @@ func (m *MockVPNServiceIface) ResetVpnConnection(p *ResetVpnConnectionParams) (* } // ResetVpnConnection indicates an expected call of ResetVpnConnection. -func (mr *MockVPNServiceIfaceMockRecorder) ResetVpnConnection(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) ResetVpnConnection(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetVpnConnection", reflect.TypeOf((*MockVPNServiceIface)(nil).ResetVpnConnection), p) } @@ -729,7 +735,7 @@ func (m *MockVPNServiceIface) UpdateRemoteAccessVpn(p *UpdateRemoteAccessVpnPara } // UpdateRemoteAccessVpn indicates an expected call of UpdateRemoteAccessVpn. -func (mr *MockVPNServiceIfaceMockRecorder) UpdateRemoteAccessVpn(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) UpdateRemoteAccessVpn(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRemoteAccessVpn", reflect.TypeOf((*MockVPNServiceIface)(nil).UpdateRemoteAccessVpn), p) } @@ -744,7 +750,7 @@ func (m *MockVPNServiceIface) UpdateVpnConnection(p *UpdateVpnConnectionParams) } // UpdateVpnConnection indicates an expected call of UpdateVpnConnection. -func (mr *MockVPNServiceIfaceMockRecorder) UpdateVpnConnection(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) UpdateVpnConnection(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVpnConnection", reflect.TypeOf((*MockVPNServiceIface)(nil).UpdateVpnConnection), p) } @@ -759,7 +765,7 @@ func (m *MockVPNServiceIface) UpdateVpnCustomerGateway(p *UpdateVpnCustomerGatew } // UpdateVpnCustomerGateway indicates an expected call of UpdateVpnCustomerGateway. -func (mr *MockVPNServiceIfaceMockRecorder) UpdateVpnCustomerGateway(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) UpdateVpnCustomerGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVpnCustomerGateway", reflect.TypeOf((*MockVPNServiceIface)(nil).UpdateVpnCustomerGateway), p) } @@ -774,7 +780,7 @@ func (m *MockVPNServiceIface) UpdateVpnGateway(p *UpdateVpnGatewayParams) (*Upda } // UpdateVpnGateway indicates an expected call of UpdateVpnGateway. -func (mr *MockVPNServiceIfaceMockRecorder) UpdateVpnGateway(p interface{}) *gomock.Call { +func (mr *MockVPNServiceIfaceMockRecorder) UpdateVpnGateway(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVpnGateway", reflect.TypeOf((*MockVPNServiceIface)(nil).UpdateVpnGateway), p) } diff --git a/cloudstack/VirtualMachineService.go b/cloudstack/VirtualMachineService.go index 4d395bff..22949eca 100644 --- a/cloudstack/VirtualMachineService.go +++ b/cloudstack/VirtualMachineService.go @@ -54,6 +54,8 @@ type VirtualMachineServiceIface interface { GetVirtualMachinesMetricID(name string, opts ...OptionFunc) (string, int, error) GetVirtualMachinesMetricByName(name string, opts ...OptionFunc) (*VirtualMachinesMetric, int, error) GetVirtualMachinesMetricByID(id string, opts ...OptionFunc) (*VirtualMachinesMetric, int, error) + ListVmsForImport(p *ListVmsForImportParams) (*ListVmsForImportResponse, error) + NewListVmsForImportParams(host string, hypervisor string, zoneid string) *ListVmsForImportParams MigrateVirtualMachine(p *MigrateVirtualMachineParams) (*MigrateVirtualMachineResponse, error) NewMigrateVirtualMachineParams(virtualmachineid string) *MigrateVirtualMachineParams MigrateVirtualMachineWithVolume(p *MigrateVirtualMachineWithVolumeParams) (*MigrateVirtualMachineWithVolumeResponse, error) @@ -66,6 +68,8 @@ type VirtualMachineServiceIface interface { NewRemoveNicFromVirtualMachineParams(nicid string, virtualmachineid string) *RemoveNicFromVirtualMachineParams ResetPasswordForVirtualMachine(p *ResetPasswordForVirtualMachineParams) (*ResetPasswordForVirtualMachineResponse, error) NewResetPasswordForVirtualMachineParams(id string) *ResetPasswordForVirtualMachineParams + ResetUserDataForVirtualMachine(p *ResetUserDataForVirtualMachineParams) (*ResetUserDataForVirtualMachineResponse, error) + NewResetUserDataForVirtualMachineParams(id string) *ResetUserDataForVirtualMachineParams RestoreVirtualMachine(p *RestoreVirtualMachineParams) (*RestoreVirtualMachineResponse, error) NewRestoreVirtualMachineParams(virtualmachineid string) *RestoreVirtualMachineParams ScaleVirtualMachine(p *ScaleVirtualMachineParams) (*ScaleVirtualMachineResponse, error) @@ -5791,6 +5795,276 @@ func (r *VirtualMachinesMetric) UnmarshalJSON(b []byte) error { return json.Unmarshal(b, (*alias)(r)) } +type ListVmsForImportParams struct { + p map[string]interface{} +} + +func (p *ListVmsForImportParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["host"]; found { + u.Set("host", v.(string)) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["password"]; found { + u.Set("password", v.(string)) + } + if v, found := p.p["username"]; found { + u.Set("username", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListVmsForImportParams) SetHost(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["host"] = v +} + +func (p *ListVmsForImportParams) ResetHost() { + if p.p != nil && p.p["host"] != nil { + delete(p.p, "host") + } +} + +func (p *ListVmsForImportParams) GetHost() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["host"].(string) + return value, ok +} + +func (p *ListVmsForImportParams) SetHypervisor(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hypervisor"] = v +} + +func (p *ListVmsForImportParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") + } +} + +func (p *ListVmsForImportParams) GetHypervisor() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hypervisor"].(string) + return value, ok +} + +func (p *ListVmsForImportParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListVmsForImportParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListVmsForImportParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListVmsForImportParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListVmsForImportParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListVmsForImportParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListVmsForImportParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListVmsForImportParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListVmsForImportParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListVmsForImportParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *ListVmsForImportParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *ListVmsForImportParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +func (p *ListVmsForImportParams) SetUsername(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["username"] = v +} + +func (p *ListVmsForImportParams) ResetUsername() { + if p.p != nil && p.p["username"] != nil { + delete(p.p, "username") + } +} + +func (p *ListVmsForImportParams) GetUsername() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["username"].(string) + return value, ok +} + +func (p *ListVmsForImportParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListVmsForImportParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListVmsForImportParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListVmsForImportParams instance, +// as then you are sure you have configured all required params +func (s *VirtualMachineService) NewListVmsForImportParams(host string, hypervisor string, zoneid string) *ListVmsForImportParams { + p := &ListVmsForImportParams{} + p.p = make(map[string]interface{}) + p.p["host"] = host + p.p["hypervisor"] = hypervisor + p.p["zoneid"] = zoneid + return p +} + +// Lists virtual machines on a unmanaged host +func (s *VirtualMachineService) ListVmsForImport(p *ListVmsForImportParams) (*ListVmsForImportResponse, error) { + resp, err := s.cs.newRequest("listVmsForImport", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListVmsForImportResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListVmsForImportResponse struct { + Count int `json:"count"` + VmsForImport []*VmsForImport `json:"vmsforimport"` +} + +type VmsForImport struct { + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Cpucorepersocket int `json:"cpucorepersocket"` + Cpunumber int `json:"cpunumber"` + Cpuspeed int `json:"cpuspeed"` + Disk []VmsForImportDisk `json:"disk"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Memory int `json:"memory"` + Name string `json:"name"` + Nic []Nic `json:"nic"` + Osdisplayname string `json:"osdisplayname"` + Osid string `json:"osid"` + Powerstate string `json:"powerstate"` +} + +type VmsForImportDisk struct { + Capacity int64 `json:"capacity"` + Controller string `json:"controller"` + Controllerunit int `json:"controllerunit"` + Datastorehost string `json:"datastorehost"` + Datastorename string `json:"datastorename"` + Datastorepath string `json:"datastorepath"` + Datastoretype string `json:"datastoretype"` + Id string `json:"id"` + Imagepath string `json:"imagepath"` + Label string `json:"label"` + Position int `json:"position"` +} + type MigrateVirtualMachineParams struct { p map[string]interface{} } @@ -7179,24 +7453,296 @@ type RemoveNicFromVirtualMachineResponse struct { Zonename string `json:"zonename"` } -type RemoveNicFromVirtualMachineResponseSecuritygroup struct { - Account string `json:"account"` - Description string `json:"description"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainpath string `json:"domainpath"` - Egressrule []RemoveNicFromVirtualMachineResponseSecuritygroupRule `json:"egressrule"` - Id string `json:"id"` - Ingressrule []RemoveNicFromVirtualMachineResponseSecuritygroupRule `json:"ingressrule"` - Name string `json:"name"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Tags []Tags `json:"tags"` - Virtualmachinecount int `json:"virtualmachinecount"` - Virtualmachineids []interface{} `json:"virtualmachineids"` +type RemoveNicFromVirtualMachineResponseSecuritygroup struct { + Account string `json:"account"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressrule []RemoveNicFromVirtualMachineResponseSecuritygroupRule `json:"egressrule"` + Id string `json:"id"` + Ingressrule []RemoveNicFromVirtualMachineResponseSecuritygroupRule `json:"ingressrule"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Tags []Tags `json:"tags"` + Virtualmachinecount int `json:"virtualmachinecount"` + Virtualmachineids []interface{} `json:"virtualmachineids"` +} + +type RemoveNicFromVirtualMachineResponseSecuritygroupRule struct { + Account string `json:"account"` + Cidr string `json:"cidr"` + Endport int `json:"endport"` + Icmpcode int `json:"icmpcode"` + Icmptype int `json:"icmptype"` + Protocol string `json:"protocol"` + Ruleid string `json:"ruleid"` + Securitygroupname string `json:"securitygroupname"` + Startport int `json:"startport"` + Tags []Tags `json:"tags"` +} + +type RemoveNicFromVirtualMachineResponseAffinitygroup struct { + Account string `json:"account"` + Dedicatedresources []string `json:"dedicatedresources"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Type string `json:"type"` + VirtualmachineIds []string `json:"virtualmachineIds"` +} + +func (r *RemoveNicFromVirtualMachineResponse) 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 RemoveNicFromVirtualMachineResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ResetPasswordForVirtualMachineParams struct { + p map[string]interface{} +} + +func (p *ResetPasswordForVirtualMachineParams) 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["password"]; found { + u.Set("password", v.(string)) + } + return u +} + +func (p *ResetPasswordForVirtualMachineParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ResetPasswordForVirtualMachineParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ResetPasswordForVirtualMachineParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ResetPasswordForVirtualMachineParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *ResetPasswordForVirtualMachineParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *ResetPasswordForVirtualMachineParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +// You should always use this function to get a new ResetPasswordForVirtualMachineParams instance, +// as then you are sure you have configured all required params +func (s *VirtualMachineService) NewResetPasswordForVirtualMachineParams(id string) *ResetPasswordForVirtualMachineParams { + p := &ResetPasswordForVirtualMachineParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Resets the password for virtual machine. The virtual machine must be in a "Stopped" state and the template must already support this feature for this command to take effect. [async] +func (s *VirtualMachineService) ResetPasswordForVirtualMachine(p *ResetPasswordForVirtualMachineParams) (*ResetPasswordForVirtualMachineResponse, error) { + resp, err := s.cs.newRequest("resetPasswordForVirtualMachine", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ResetPasswordForVirtualMachineResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ResetPasswordForVirtualMachineResponse struct { + Account string `json:"account"` + Affinitygroup []ResetPasswordForVirtualMachineResponseAffinitygroup `json:"affinitygroup"` + Autoscalevmgroupid string `json:"autoscalevmgroupid"` + Autoscalevmgroupname string `json:"autoscalevmgroupname"` + Backupofferingid string `json:"backupofferingid"` + Backupofferingname string `json:"backupofferingname"` + Bootmode string `json:"bootmode"` + Boottype string `json:"boottype"` + Cpunumber int `json:"cpunumber"` + Cpuspeed int `json:"cpuspeed"` + Cpuused string `json:"cpuused"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Details map[string]string `json:"details"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayname string `json:"displayname"` + Displayvm bool `json:"displayvm"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Forvirtualnetwork bool `json:"forvirtualnetwork"` + Group string `json:"group"` + Groupid string `json:"groupid"` + Guestosid string `json:"guestosid"` + Haenable bool `json:"haenable"` + Hasannotations bool `json:"hasannotations"` + Hostcontrolstate string `json:"hostcontrolstate"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Hypervisor string `json:"hypervisor"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Instancename string `json:"instancename"` + Ipaddress string `json:"ipaddress"` + Isdynamicallyscalable bool `json:"isdynamicallyscalable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Keypairs string `json:"keypairs"` + Lastupdated string `json:"lastupdated"` + Memory int `json:"memory"` + Memoryintfreekbs int64 `json:"memoryintfreekbs"` + Memorykbs int64 `json:"memorykbs"` + Memorytargetkbs int64 `json:"memorytargetkbs"` + Name string `json:"name"` + Networkkbsread int64 `json:"networkkbsread"` + Networkkbswrite int64 `json:"networkkbswrite"` + Nic []Nic `json:"nic"` + Osdisplayname string `json:"osdisplayname"` + 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"` + 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"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Templatedisplaytext string `json:"templatedisplaytext"` + Templateformat string `json:"templateformat"` + Templateid string `json:"templateid"` + Templatename string `json:"templatename"` + Templatetype string `json:"templatetype"` + Userdata string `json:"userdata"` + Userdatadetails string `json:"userdatadetails"` + Userdataid string `json:"userdataid"` + Userdataname string `json:"userdataname"` + Userdatapolicy string `json:"userdatapolicy"` + Userid string `json:"userid"` + Username string `json:"username"` + Vgpu string `json:"vgpu"` + Vmtype string `json:"vmtype"` + Vnfdetails map[string]string `json:"vnfdetails"` + Vnfnics []string `json:"vnfnics"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ResetPasswordForVirtualMachineResponseSecuritygroup struct { + Account string `json:"account"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressrule []ResetPasswordForVirtualMachineResponseSecuritygroupRule `json:"egressrule"` + Id string `json:"id"` + Ingressrule []ResetPasswordForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Tags []Tags `json:"tags"` + Virtualmachinecount int `json:"virtualmachinecount"` + Virtualmachineids []interface{} `json:"virtualmachineids"` } -type RemoveNicFromVirtualMachineResponseSecuritygroupRule struct { +type ResetPasswordForVirtualMachineResponseSecuritygroupRule struct { Account string `json:"account"` Cidr string `json:"cidr"` Endport int `json:"endport"` @@ -7209,7 +7755,7 @@ type RemoveNicFromVirtualMachineResponseSecuritygroupRule struct { Tags []Tags `json:"tags"` } -type RemoveNicFromVirtualMachineResponseAffinitygroup struct { +type ResetPasswordForVirtualMachineResponseAffinitygroup struct { Account string `json:"account"` Dedicatedresources []string `json:"dedicatedresources"` Description string `json:"description"` @@ -7224,7 +7770,7 @@ type RemoveNicFromVirtualMachineResponseAffinitygroup struct { VirtualmachineIds []string `json:"virtualmachineIds"` } -func (r *RemoveNicFromVirtualMachineResponse) UnmarshalJSON(b []byte) error { +func (r *ResetPasswordForVirtualMachineResponse) UnmarshalJSON(b []byte) error { var m map[string]interface{} err := json.Unmarshal(b, &m) if err != nil { @@ -7247,42 +7793,103 @@ func (r *RemoveNicFromVirtualMachineResponse) UnmarshalJSON(b []byte) error { } } - type alias RemoveNicFromVirtualMachineResponse + type alias ResetPasswordForVirtualMachineResponse return json.Unmarshal(b, (*alias)(r)) } -type ResetPasswordForVirtualMachineParams struct { +type ResetUserDataForVirtualMachineParams struct { p map[string]interface{} } -func (p *ResetPasswordForVirtualMachineParams) toURLValues() url.Values { +func (p *ResetUserDataForVirtualMachineParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } if v, found := p.p["id"]; found { u.Set("id", v.(string)) } - if v, found := p.p["password"]; found { - u.Set("password", v.(string)) + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["userdata"]; found { + u.Set("userdata", v.(string)) + } + if v, found := p.p["userdatadetails"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("userdatadetails[%d].key", i), k) + u.Set(fmt.Sprintf("userdatadetails[%d].value", i), m[k]) + } + } + if v, found := p.p["userdataid"]; found { + u.Set("userdataid", v.(string)) } return u } -func (p *ResetPasswordForVirtualMachineParams) SetId(v string) { +func (p *ResetUserDataForVirtualMachineParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ResetUserDataForVirtualMachineParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ResetUserDataForVirtualMachineParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ResetUserDataForVirtualMachineParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ResetUserDataForVirtualMachineParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ResetUserDataForVirtualMachineParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ResetUserDataForVirtualMachineParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *ResetPasswordForVirtualMachineParams) ResetId() { +func (p *ResetUserDataForVirtualMachineParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *ResetPasswordForVirtualMachineParams) GetId() (string, bool) { +func (p *ResetUserDataForVirtualMachineParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -7290,74 +7897,117 @@ func (p *ResetPasswordForVirtualMachineParams) GetId() (string, bool) { return value, ok } -func (p *ResetPasswordForVirtualMachineParams) SetPassword(v string) { +func (p *ResetUserDataForVirtualMachineParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["password"] = v + p.p["projectid"] = v } -func (p *ResetPasswordForVirtualMachineParams) ResetPassword() { - if p.p != nil && p.p["password"] != nil { - delete(p.p, "password") +func (p *ResetUserDataForVirtualMachineParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ResetPasswordForVirtualMachineParams) GetPassword() (string, bool) { +func (p *ResetUserDataForVirtualMachineParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["password"].(string) + value, ok := p.p["projectid"].(string) return value, ok } -// You should always use this function to get a new ResetPasswordForVirtualMachineParams instance, +func (p *ResetUserDataForVirtualMachineParams) SetUserdata(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdata"] = v +} + +func (p *ResetUserDataForVirtualMachineParams) ResetUserdata() { + if p.p != nil && p.p["userdata"] != nil { + delete(p.p, "userdata") + } +} + +func (p *ResetUserDataForVirtualMachineParams) GetUserdata() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdata"].(string) + return value, ok +} + +func (p *ResetUserDataForVirtualMachineParams) SetUserdatadetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdatadetails"] = v +} + +func (p *ResetUserDataForVirtualMachineParams) ResetUserdatadetails() { + if p.p != nil && p.p["userdatadetails"] != nil { + delete(p.p, "userdatadetails") + } +} + +func (p *ResetUserDataForVirtualMachineParams) GetUserdatadetails() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdatadetails"].(map[string]string) + return value, ok +} + +func (p *ResetUserDataForVirtualMachineParams) SetUserdataid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdataid"] = v +} + +func (p *ResetUserDataForVirtualMachineParams) ResetUserdataid() { + if p.p != nil && p.p["userdataid"] != nil { + delete(p.p, "userdataid") + } +} + +func (p *ResetUserDataForVirtualMachineParams) GetUserdataid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdataid"].(string) + return value, ok +} + +// You should always use this function to get a new ResetUserDataForVirtualMachineParams instance, // as then you are sure you have configured all required params -func (s *VirtualMachineService) NewResetPasswordForVirtualMachineParams(id string) *ResetPasswordForVirtualMachineParams { - p := &ResetPasswordForVirtualMachineParams{} +func (s *VirtualMachineService) NewResetUserDataForVirtualMachineParams(id string) *ResetUserDataForVirtualMachineParams { + p := &ResetUserDataForVirtualMachineParams{} p.p = make(map[string]interface{}) p.p["id"] = id return p } -// Resets the password for virtual machine. The virtual machine must be in a "Stopped" state and the template must already support this feature for this command to take effect. [async] -func (s *VirtualMachineService) ResetPasswordForVirtualMachine(p *ResetPasswordForVirtualMachineParams) (*ResetPasswordForVirtualMachineResponse, error) { - resp, err := s.cs.newRequest("resetPasswordForVirtualMachine", p.toURLValues()) +// Resets the UserData for virtual machine. The virtual machine must be in a "Stopped" state. +func (s *VirtualMachineService) ResetUserDataForVirtualMachine(p *ResetUserDataForVirtualMachineParams) (*ResetUserDataForVirtualMachineResponse, error) { + resp, err := s.cs.newRequest("resetUserDataForVirtualMachine", p.toURLValues()) if err != nil { return nil, err } - var r ResetPasswordForVirtualMachineResponse + var r ResetUserDataForVirtualMachineResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } - - b, err = getRawValue(b) - if err != nil { - return nil, err - } - - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } - } - return &r, nil } -type ResetPasswordForVirtualMachineResponse struct { +type ResetUserDataForVirtualMachineResponse struct { Account string `json:"account"` - Affinitygroup []ResetPasswordForVirtualMachineResponseAffinitygroup `json:"affinitygroup"` + Affinitygroup []ResetUserDataForVirtualMachineResponseAffinitygroup `json:"affinitygroup"` Autoscalevmgroupid string `json:"autoscalevmgroupid"` Autoscalevmgroupname string `json:"autoscalevmgroupname"` Backupofferingid string `json:"backupofferingid"` @@ -7424,7 +8074,7 @@ type ResetPasswordForVirtualMachineResponse struct { Receivedbytes int64 `json:"receivedbytes"` Rootdeviceid int64 `json:"rootdeviceid"` Rootdevicetype string `json:"rootdevicetype"` - Securitygroup []ResetPasswordForVirtualMachineResponseSecuritygroup `json:"securitygroup"` + Securitygroup []ResetUserDataForVirtualMachineResponseSecuritygroup `json:"securitygroup"` Sentbytes int64 `json:"sentbytes"` Serviceofferingid string `json:"serviceofferingid"` Serviceofferingname string `json:"serviceofferingname"` @@ -7451,15 +8101,15 @@ type ResetPasswordForVirtualMachineResponse struct { Zonename string `json:"zonename"` } -type ResetPasswordForVirtualMachineResponseSecuritygroup struct { +type ResetUserDataForVirtualMachineResponseSecuritygroup struct { Account string `json:"account"` Description string `json:"description"` Domain string `json:"domain"` Domainid string `json:"domainid"` Domainpath string `json:"domainpath"` - Egressrule []ResetPasswordForVirtualMachineResponseSecuritygroupRule `json:"egressrule"` + Egressrule []ResetUserDataForVirtualMachineResponseSecuritygroupRule `json:"egressrule"` Id string `json:"id"` - Ingressrule []ResetPasswordForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"` + Ingressrule []ResetUserDataForVirtualMachineResponseSecuritygroupRule `json:"ingressrule"` Name string `json:"name"` Project string `json:"project"` Projectid string `json:"projectid"` @@ -7468,7 +8118,7 @@ type ResetPasswordForVirtualMachineResponseSecuritygroup struct { Virtualmachineids []interface{} `json:"virtualmachineids"` } -type ResetPasswordForVirtualMachineResponseSecuritygroupRule struct { +type ResetUserDataForVirtualMachineResponseSecuritygroupRule struct { Account string `json:"account"` Cidr string `json:"cidr"` Endport int `json:"endport"` @@ -7481,7 +8131,7 @@ type ResetPasswordForVirtualMachineResponseSecuritygroupRule struct { Tags []Tags `json:"tags"` } -type ResetPasswordForVirtualMachineResponseAffinitygroup struct { +type ResetUserDataForVirtualMachineResponseAffinitygroup struct { Account string `json:"account"` Dedicatedresources []string `json:"dedicatedresources"` Description string `json:"description"` @@ -7496,7 +8146,7 @@ type ResetPasswordForVirtualMachineResponseAffinitygroup struct { VirtualmachineIds []string `json:"virtualmachineIds"` } -func (r *ResetPasswordForVirtualMachineResponse) UnmarshalJSON(b []byte) error { +func (r *ResetUserDataForVirtualMachineResponse) UnmarshalJSON(b []byte) error { var m map[string]interface{} err := json.Unmarshal(b, &m) if err != nil { @@ -7519,7 +8169,7 @@ func (r *ResetPasswordForVirtualMachineResponse) UnmarshalJSON(b []byte) error { } } - type alias ResetPasswordForVirtualMachineResponse + type alias ResetUserDataForVirtualMachineResponse return json.Unmarshal(b, (*alias)(r)) } @@ -10171,6 +10821,10 @@ func (p *ImportVmParams) toURLValues() url.Values { vv := strconv.FormatBool(v.(bool)) u.Set("forced", vv) } + if v, found := p.p["forcemstoimportvmfiles"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("forcemstoimportvmfiles", vv) + } if v, found := p.p["host"]; found { u.Set("host", v.(string)) } @@ -10531,6 +11185,27 @@ func (p *ImportVmParams) GetForced() (bool, bool) { return value, ok } +func (p *ImportVmParams) SetForcemstoimportvmfiles(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forcemstoimportvmfiles"] = v +} + +func (p *ImportVmParams) ResetForcemstoimportvmfiles() { + if p.p != nil && p.p["forcemstoimportvmfiles"] != nil { + delete(p.p, "forcemstoimportvmfiles") + } +} + +func (p *ImportVmParams) GetForcemstoimportvmfiles() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forcemstoimportvmfiles"].(bool) + return value, ok +} + func (p *ImportVmParams) SetHost(v string) { if p.p == nil { p.p = make(map[string]interface{}) @@ -11027,6 +11702,7 @@ type ImportVmResponse struct { Cpuspeed int `json:"cpuspeed"` Cpuused string `json:"cpuused"` Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` Details map[string]string `json:"details"` Diskioread int64 `json:"diskioread"` Diskiowrite int64 `json:"diskiowrite"` @@ -11038,6 +11714,7 @@ type ImportVmResponse struct { Displayvm bool `json:"displayvm"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Forvirtualnetwork bool `json:"forvirtualnetwork"` Group string `json:"group"` Groupid string `json:"groupid"` @@ -11051,6 +11728,7 @@ type ImportVmResponse struct { Icon interface{} `json:"icon"` Id string `json:"id"` Instancename string `json:"instancename"` + Ipaddress string `json:"ipaddress"` Isdynamicallyscalable bool `json:"isdynamicallyscalable"` Isodisplaytext string `json:"isodisplaytext"` Isoid string `json:"isoid"` @@ -11088,6 +11766,7 @@ type ImportVmResponse struct { State string `json:"state"` Tags []Tags `json:"tags"` Templatedisplaytext string `json:"templatedisplaytext"` + Templateformat string `json:"templateformat"` Templateid string `json:"templateid"` Templatename string `json:"templatename"` Templatetype string `json:"templatetype"` @@ -11099,6 +11778,7 @@ type ImportVmResponse struct { Userid string `json:"userid"` Username string `json:"username"` Vgpu string `json:"vgpu"` + Vmtype string `json:"vmtype"` Vnfdetails map[string]string `json:"vnfdetails"` Vnfnics []string `json:"vnfnics"` Zoneid string `json:"zoneid"` @@ -11110,6 +11790,7 @@ type ImportVmResponseSecuritygroup struct { Description string `json:"description"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Egressrule []ImportVmResponseSecuritygroupRule `json:"egressrule"` Id string `json:"id"` Ingressrule []ImportVmResponseSecuritygroupRule `json:"ingressrule"` @@ -11135,16 +11816,18 @@ type ImportVmResponseSecuritygroupRule struct { } type ImportVmResponseAffinitygroup struct { - Account string `json:"account"` - Description string `json:"description"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Id string `json:"id"` - Name string `json:"name"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Type string `json:"type"` - VirtualmachineIds []string `json:"virtualmachineIds"` + Account string `json:"account"` + Dedicatedresources []string `json:"dedicatedresources"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Type string `json:"type"` + VirtualmachineIds []string `json:"virtualmachineIds"` } func (r *ImportVmResponse) UnmarshalJSON(b []byte) error { @@ -11905,6 +12588,7 @@ type ImportUnmanagedInstanceResponse struct { Cpuspeed int `json:"cpuspeed"` Cpuused string `json:"cpuused"` Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` Details map[string]string `json:"details"` Diskioread int64 `json:"diskioread"` Diskiowrite int64 `json:"diskiowrite"` @@ -11916,6 +12600,7 @@ type ImportUnmanagedInstanceResponse struct { Displayvm bool `json:"displayvm"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Forvirtualnetwork bool `json:"forvirtualnetwork"` Group string `json:"group"` Groupid string `json:"groupid"` @@ -11929,6 +12614,7 @@ type ImportUnmanagedInstanceResponse struct { Icon interface{} `json:"icon"` Id string `json:"id"` Instancename string `json:"instancename"` + Ipaddress string `json:"ipaddress"` Isdynamicallyscalable bool `json:"isdynamicallyscalable"` Isodisplaytext string `json:"isodisplaytext"` Isoid string `json:"isoid"` @@ -11966,6 +12652,7 @@ type ImportUnmanagedInstanceResponse struct { State string `json:"state"` Tags []Tags `json:"tags"` Templatedisplaytext string `json:"templatedisplaytext"` + Templateformat string `json:"templateformat"` Templateid string `json:"templateid"` Templatename string `json:"templatename"` Templatetype string `json:"templatetype"` @@ -11977,6 +12664,7 @@ type ImportUnmanagedInstanceResponse struct { Userid string `json:"userid"` Username string `json:"username"` Vgpu string `json:"vgpu"` + Vmtype string `json:"vmtype"` Vnfdetails map[string]string `json:"vnfdetails"` Vnfnics []string `json:"vnfnics"` Zoneid string `json:"zoneid"` @@ -11988,6 +12676,7 @@ type ImportUnmanagedInstanceResponseSecuritygroup struct { Description string `json:"description"` Domain string `json:"domain"` Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` Egressrule []ImportUnmanagedInstanceResponseSecuritygroupRule `json:"egressrule"` Id string `json:"id"` Ingressrule []ImportUnmanagedInstanceResponseSecuritygroupRule `json:"ingressrule"` @@ -12013,16 +12702,18 @@ type ImportUnmanagedInstanceResponseSecuritygroupRule struct { } type ImportUnmanagedInstanceResponseAffinitygroup struct { - Account string `json:"account"` - Description string `json:"description"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Id string `json:"id"` - Name string `json:"name"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Type string `json:"type"` - VirtualmachineIds []string `json:"virtualmachineIds"` + Account string `json:"account"` + Dedicatedresources []string `json:"dedicatedresources"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Type string `json:"type"` + VirtualmachineIds []string `json:"virtualmachineIds"` } func (r *ImportUnmanagedInstanceResponse) UnmarshalJSON(b []byte) error { diff --git a/cloudstack/VirtualMachineService_mock.go b/cloudstack/VirtualMachineService_mock.go index 531df17a..75c6e86c 100644 --- a/cloudstack/VirtualMachineService_mock.go +++ b/cloudstack/VirtualMachineService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/VirtualMachineService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VirtualMachineService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VirtualMachineService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockVirtualMachineServiceIface is a mock of VirtualMachineServiceIface interface. type MockVirtualMachineServiceIface struct { ctrl *gomock.Controller recorder *MockVirtualMachineServiceIfaceMockRecorder + isgomock struct{} } // MockVirtualMachineServiceIfaceMockRecorder is the mock recorder for MockVirtualMachineServiceIface. @@ -62,7 +68,7 @@ func (m *MockVirtualMachineServiceIface) AddNicToVirtualMachine(p *AddNicToVirtu } // AddNicToVirtualMachine indicates an expected call of AddNicToVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) AddNicToVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) AddNicToVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNicToVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).AddNicToVirtualMachine), p) } @@ -77,7 +83,7 @@ func (m *MockVirtualMachineServiceIface) AssignVirtualMachine(p *AssignVirtualMa } // AssignVirtualMachine indicates an expected call of AssignVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) AssignVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) AssignVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).AssignVirtualMachine), p) } @@ -92,7 +98,7 @@ func (m *MockVirtualMachineServiceIface) ChangeServiceForVirtualMachine(p *Chang } // ChangeServiceForVirtualMachine indicates an expected call of ChangeServiceForVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ChangeServiceForVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ChangeServiceForVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeServiceForVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ChangeServiceForVirtualMachine), p) } @@ -107,7 +113,7 @@ func (m *MockVirtualMachineServiceIface) CleanVMReservations(p *CleanVMReservati } // CleanVMReservations indicates an expected call of CleanVMReservations. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) CleanVMReservations(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) CleanVMReservations(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanVMReservations", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).CleanVMReservations), p) } @@ -122,7 +128,7 @@ func (m *MockVirtualMachineServiceIface) CreateVMSchedule(p *CreateVMSchedulePar } // CreateVMSchedule indicates an expected call of CreateVMSchedule. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) CreateVMSchedule(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) CreateVMSchedule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVMSchedule", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).CreateVMSchedule), p) } @@ -137,7 +143,7 @@ func (m *MockVirtualMachineServiceIface) DeleteVMSchedule(p *DeleteVMSchedulePar } // DeleteVMSchedule indicates an expected call of DeleteVMSchedule. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) DeleteVMSchedule(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) DeleteVMSchedule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVMSchedule", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).DeleteVMSchedule), p) } @@ -152,7 +158,7 @@ func (m *MockVirtualMachineServiceIface) DeployVirtualMachine(p *DeployVirtualMa } // DeployVirtualMachine indicates an expected call of DeployVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) DeployVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) DeployVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeployVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).DeployVirtualMachine), p) } @@ -167,7 +173,7 @@ func (m *MockVirtualMachineServiceIface) DestroyVirtualMachine(p *DestroyVirtual } // DestroyVirtualMachine indicates an expected call of DestroyVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) DestroyVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) DestroyVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DestroyVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).DestroyVirtualMachine), p) } @@ -182,7 +188,7 @@ func (m *MockVirtualMachineServiceIface) ExpungeVirtualMachine(p *ExpungeVirtual } // ExpungeVirtualMachine indicates an expected call of ExpungeVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ExpungeVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ExpungeVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpungeVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ExpungeVirtualMachine), p) } @@ -197,7 +203,7 @@ func (m *MockVirtualMachineServiceIface) GetVMPassword(p *GetVMPasswordParams) ( } // GetVMPassword indicates an expected call of GetVMPassword. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVMPassword(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVMPassword(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVMPassword", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVMPassword), p) } @@ -205,7 +211,7 @@ func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVMPassword(p interface{ // GetVMScheduleByID mocks base method. func (m *MockVirtualMachineServiceIface) GetVMScheduleByID(id, virtualmachineid string, opts ...OptionFunc) (*VMSchedule, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id, virtualmachineid} + varargs := []any{id, virtualmachineid} for _, a := range opts { varargs = append(varargs, a) } @@ -217,16 +223,16 @@ func (m *MockVirtualMachineServiceIface) GetVMScheduleByID(id, virtualmachineid } // GetVMScheduleByID indicates an expected call of GetVMScheduleByID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVMScheduleByID(id, virtualmachineid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVMScheduleByID(id, virtualmachineid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id, virtualmachineid}, opts...) + varargs := append([]any{id, virtualmachineid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVMScheduleByID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVMScheduleByID), varargs...) } // GetVirtualMachineByID mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachineByID(id string, opts ...OptionFunc) (*VirtualMachine, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -238,16 +244,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachineByID(id string, opts . } // GetVirtualMachineByID indicates an expected call of GetVirtualMachineByID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachineByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachineByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachineByID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachineByID), varargs...) } // GetVirtualMachineByName mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachineByName(name string, opts ...OptionFunc) (*VirtualMachine, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -259,16 +265,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachineByName(name string, op } // GetVirtualMachineByName indicates an expected call of GetVirtualMachineByName. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachineByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachineByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachineByName", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachineByName), varargs...) } // GetVirtualMachineID mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachineID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -280,16 +286,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachineID(name string, opts . } // GetVirtualMachineID indicates an expected call of GetVirtualMachineID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachineID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachineID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachineID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachineID), varargs...) } // GetVirtualMachinesMetricByID mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachinesMetricByID(id string, opts ...OptionFunc) (*VirtualMachinesMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -301,16 +307,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachinesMetricByID(id string, } // GetVirtualMachinesMetricByID indicates an expected call of GetVirtualMachinesMetricByID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesMetricByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesMetricByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachinesMetricByID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachinesMetricByID), varargs...) } // GetVirtualMachinesMetricByName mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachinesMetricByName(name string, opts ...OptionFunc) (*VirtualMachinesMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -322,16 +328,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachinesMetricByName(name str } // GetVirtualMachinesMetricByName indicates an expected call of GetVirtualMachinesMetricByName. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesMetricByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesMetricByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachinesMetricByName", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachinesMetricByName), varargs...) } // GetVirtualMachinesMetricID mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachinesMetricID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -343,16 +349,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachinesMetricID(name string, } // GetVirtualMachinesMetricID indicates an expected call of GetVirtualMachinesMetricID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesMetricID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesMetricID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachinesMetricID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachinesMetricID), varargs...) } // GetVirtualMachinesUsageHistoryByID mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachinesUsageHistoryByID(id string, opts ...OptionFunc) (*VirtualMachinesUsageHistory, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -364,16 +370,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachinesUsageHistoryByID(id s } // GetVirtualMachinesUsageHistoryByID indicates an expected call of GetVirtualMachinesUsageHistoryByID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesUsageHistoryByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesUsageHistoryByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachinesUsageHistoryByID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachinesUsageHistoryByID), varargs...) } // GetVirtualMachinesUsageHistoryByName mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachinesUsageHistoryByName(name string, opts ...OptionFunc) (*VirtualMachinesUsageHistory, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -385,16 +391,16 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachinesUsageHistoryByName(na } // GetVirtualMachinesUsageHistoryByName indicates an expected call of GetVirtualMachinesUsageHistoryByName. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesUsageHistoryByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesUsageHistoryByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachinesUsageHistoryByName", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachinesUsageHistoryByName), varargs...) } // GetVirtualMachinesUsageHistoryID mocks base method. func (m *MockVirtualMachineServiceIface) GetVirtualMachinesUsageHistoryID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -406,9 +412,9 @@ func (m *MockVirtualMachineServiceIface) GetVirtualMachinesUsageHistoryID(name s } // GetVirtualMachinesUsageHistoryID indicates an expected call of GetVirtualMachinesUsageHistoryID. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesUsageHistoryID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) GetVirtualMachinesUsageHistoryID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualMachinesUsageHistoryID", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).GetVirtualMachinesUsageHistoryID), varargs...) } @@ -422,7 +428,7 @@ func (m *MockVirtualMachineServiceIface) ImportUnmanagedInstance(p *ImportUnmana } // ImportUnmanagedInstance indicates an expected call of ImportUnmanagedInstance. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ImportUnmanagedInstance(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ImportUnmanagedInstance(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImportUnmanagedInstance", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ImportUnmanagedInstance), p) } @@ -437,7 +443,7 @@ func (m *MockVirtualMachineServiceIface) ImportVm(p *ImportVmParams) (*ImportVmR } // ImportVm indicates an expected call of ImportVm. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ImportVm(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ImportVm(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImportVm", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ImportVm), p) } @@ -452,7 +458,7 @@ func (m *MockVirtualMachineServiceIface) ListUnmanagedInstances(p *ListUnmanaged } // ListUnmanagedInstances indicates an expected call of ListUnmanagedInstances. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListUnmanagedInstances(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListUnmanagedInstances(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUnmanagedInstances", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ListUnmanagedInstances), p) } @@ -467,7 +473,7 @@ func (m *MockVirtualMachineServiceIface) ListVMSchedule(p *ListVMScheduleParams) } // ListVMSchedule indicates an expected call of ListVMSchedule. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVMSchedule(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVMSchedule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVMSchedule", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ListVMSchedule), p) } @@ -482,7 +488,7 @@ func (m *MockVirtualMachineServiceIface) ListVirtualMachines(p *ListVirtualMachi } // ListVirtualMachines indicates an expected call of ListVirtualMachines. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVirtualMachines(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVirtualMachines(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualMachines", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ListVirtualMachines), p) } @@ -497,7 +503,7 @@ func (m *MockVirtualMachineServiceIface) ListVirtualMachinesMetrics(p *ListVirtu } // ListVirtualMachinesMetrics indicates an expected call of ListVirtualMachinesMetrics. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVirtualMachinesMetrics(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVirtualMachinesMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualMachinesMetrics", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ListVirtualMachinesMetrics), p) } @@ -512,11 +518,26 @@ func (m *MockVirtualMachineServiceIface) ListVirtualMachinesUsageHistory(p *List } // ListVirtualMachinesUsageHistory indicates an expected call of ListVirtualMachinesUsageHistory. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVirtualMachinesUsageHistory(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVirtualMachinesUsageHistory(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualMachinesUsageHistory", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ListVirtualMachinesUsageHistory), p) } +// ListVmsForImport mocks base method. +func (m *MockVirtualMachineServiceIface) ListVmsForImport(p *ListVmsForImportParams) (*ListVmsForImportResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListVmsForImport", p) + ret0, _ := ret[0].(*ListVmsForImportResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListVmsForImport indicates an expected call of ListVmsForImport. +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ListVmsForImport(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVmsForImport", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ListVmsForImport), p) +} + // MigrateVirtualMachine mocks base method. func (m *MockVirtualMachineServiceIface) MigrateVirtualMachine(p *MigrateVirtualMachineParams) (*MigrateVirtualMachineResponse, error) { m.ctrl.T.Helper() @@ -527,7 +548,7 @@ func (m *MockVirtualMachineServiceIface) MigrateVirtualMachine(p *MigrateVirtual } // MigrateVirtualMachine indicates an expected call of MigrateVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) MigrateVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) MigrateVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).MigrateVirtualMachine), p) } @@ -542,7 +563,7 @@ func (m *MockVirtualMachineServiceIface) MigrateVirtualMachineWithVolume(p *Migr } // MigrateVirtualMachineWithVolume indicates an expected call of MigrateVirtualMachineWithVolume. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) MigrateVirtualMachineWithVolume(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) MigrateVirtualMachineWithVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateVirtualMachineWithVolume", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).MigrateVirtualMachineWithVolume), p) } @@ -556,7 +577,7 @@ func (m *MockVirtualMachineServiceIface) NewAddNicToVirtualMachineParams(network } // NewAddNicToVirtualMachineParams indicates an expected call of NewAddNicToVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewAddNicToVirtualMachineParams(networkid, virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewAddNicToVirtualMachineParams(networkid, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddNicToVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewAddNicToVirtualMachineParams), networkid, virtualmachineid) } @@ -570,7 +591,7 @@ func (m *MockVirtualMachineServiceIface) NewAssignVirtualMachineParams(virtualma } // NewAssignVirtualMachineParams indicates an expected call of NewAssignVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewAssignVirtualMachineParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewAssignVirtualMachineParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAssignVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewAssignVirtualMachineParams), virtualmachineid) } @@ -584,7 +605,7 @@ func (m *MockVirtualMachineServiceIface) NewChangeServiceForVirtualMachineParams } // NewChangeServiceForVirtualMachineParams indicates an expected call of NewChangeServiceForVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewChangeServiceForVirtualMachineParams(id, serviceofferingid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewChangeServiceForVirtualMachineParams(id, serviceofferingid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeServiceForVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewChangeServiceForVirtualMachineParams), id, serviceofferingid) } @@ -612,7 +633,7 @@ func (m *MockVirtualMachineServiceIface) NewCreateVMScheduleParams(action, sched } // NewCreateVMScheduleParams indicates an expected call of NewCreateVMScheduleParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewCreateVMScheduleParams(action, schedule, timezone, virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewCreateVMScheduleParams(action, schedule, timezone, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateVMScheduleParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewCreateVMScheduleParams), action, schedule, timezone, virtualmachineid) } @@ -626,7 +647,7 @@ func (m *MockVirtualMachineServiceIface) NewDeleteVMScheduleParams(virtualmachin } // NewDeleteVMScheduleParams indicates an expected call of NewDeleteVMScheduleParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewDeleteVMScheduleParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewDeleteVMScheduleParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVMScheduleParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewDeleteVMScheduleParams), virtualmachineid) } @@ -640,7 +661,7 @@ func (m *MockVirtualMachineServiceIface) NewDeployVirtualMachineParams(serviceof } // NewDeployVirtualMachineParams indicates an expected call of NewDeployVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewDeployVirtualMachineParams(serviceofferingid, templateid, zoneid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewDeployVirtualMachineParams(serviceofferingid, templateid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeployVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewDeployVirtualMachineParams), serviceofferingid, templateid, zoneid) } @@ -654,7 +675,7 @@ func (m *MockVirtualMachineServiceIface) NewDestroyVirtualMachineParams(id strin } // NewDestroyVirtualMachineParams indicates an expected call of NewDestroyVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewDestroyVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewDestroyVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDestroyVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewDestroyVirtualMachineParams), id) } @@ -668,7 +689,7 @@ func (m *MockVirtualMachineServiceIface) NewExpungeVirtualMachineParams(id strin } // NewExpungeVirtualMachineParams indicates an expected call of NewExpungeVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewExpungeVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewExpungeVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExpungeVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewExpungeVirtualMachineParams), id) } @@ -682,7 +703,7 @@ func (m *MockVirtualMachineServiceIface) NewGetVMPasswordParams(id string) *GetV } // NewGetVMPasswordParams indicates an expected call of NewGetVMPasswordParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewGetVMPasswordParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewGetVMPasswordParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetVMPasswordParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewGetVMPasswordParams), id) } @@ -696,7 +717,7 @@ func (m *MockVirtualMachineServiceIface) NewImportUnmanagedInstanceParams(cluste } // NewImportUnmanagedInstanceParams indicates an expected call of NewImportUnmanagedInstanceParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewImportUnmanagedInstanceParams(clusterid, name, serviceofferingid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewImportUnmanagedInstanceParams(clusterid, name, serviceofferingid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewImportUnmanagedInstanceParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewImportUnmanagedInstanceParams), clusterid, name, serviceofferingid) } @@ -710,7 +731,7 @@ func (m *MockVirtualMachineServiceIface) NewImportVmParams(clusterid, hypervisor } // NewImportVmParams indicates an expected call of NewImportVmParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewImportVmParams(clusterid, hypervisor, importsource, name, serviceofferingid, zoneid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewImportVmParams(clusterid, hypervisor, importsource, name, serviceofferingid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewImportVmParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewImportVmParams), clusterid, hypervisor, importsource, name, serviceofferingid, zoneid) } @@ -724,7 +745,7 @@ func (m *MockVirtualMachineServiceIface) NewListUnmanagedInstancesParams(cluster } // NewListUnmanagedInstancesParams indicates an expected call of NewListUnmanagedInstancesParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewListUnmanagedInstancesParams(clusterid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewListUnmanagedInstancesParams(clusterid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListUnmanagedInstancesParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewListUnmanagedInstancesParams), clusterid) } @@ -738,7 +759,7 @@ func (m *MockVirtualMachineServiceIface) NewListVMScheduleParams(virtualmachinei } // NewListVMScheduleParams indicates an expected call of NewListVMScheduleParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewListVMScheduleParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewListVMScheduleParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVMScheduleParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewListVMScheduleParams), virtualmachineid) } @@ -785,6 +806,20 @@ func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewListVirtualMachinesUsag return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVirtualMachinesUsageHistoryParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewListVirtualMachinesUsageHistoryParams)) } +// NewListVmsForImportParams mocks base method. +func (m *MockVirtualMachineServiceIface) NewListVmsForImportParams(host, hypervisor, zoneid string) *ListVmsForImportParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListVmsForImportParams", host, hypervisor, zoneid) + ret0, _ := ret[0].(*ListVmsForImportParams) + return ret0 +} + +// NewListVmsForImportParams indicates an expected call of NewListVmsForImportParams. +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewListVmsForImportParams(host, hypervisor, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVmsForImportParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewListVmsForImportParams), host, hypervisor, zoneid) +} + // NewMigrateVirtualMachineParams mocks base method. func (m *MockVirtualMachineServiceIface) NewMigrateVirtualMachineParams(virtualmachineid string) *MigrateVirtualMachineParams { m.ctrl.T.Helper() @@ -794,7 +829,7 @@ func (m *MockVirtualMachineServiceIface) NewMigrateVirtualMachineParams(virtualm } // NewMigrateVirtualMachineParams indicates an expected call of NewMigrateVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachineParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachineParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewMigrateVirtualMachineParams), virtualmachineid) } @@ -808,7 +843,7 @@ func (m *MockVirtualMachineServiceIface) NewMigrateVirtualMachineWithVolumeParam } // NewMigrateVirtualMachineWithVolumeParams indicates an expected call of NewMigrateVirtualMachineWithVolumeParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachineWithVolumeParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewMigrateVirtualMachineWithVolumeParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateVirtualMachineWithVolumeParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewMigrateVirtualMachineWithVolumeParams), virtualmachineid) } @@ -822,7 +857,7 @@ func (m *MockVirtualMachineServiceIface) NewRebootVirtualMachineParams(id string } // NewRebootVirtualMachineParams indicates an expected call of NewRebootVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRebootVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRebootVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRebootVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewRebootVirtualMachineParams), id) } @@ -836,7 +871,7 @@ func (m *MockVirtualMachineServiceIface) NewRecoverVirtualMachineParams(id strin } // NewRecoverVirtualMachineParams indicates an expected call of NewRecoverVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRecoverVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRecoverVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRecoverVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewRecoverVirtualMachineParams), id) } @@ -850,7 +885,7 @@ func (m *MockVirtualMachineServiceIface) NewRemoveNicFromVirtualMachineParams(ni } // NewRemoveNicFromVirtualMachineParams indicates an expected call of NewRemoveNicFromVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRemoveNicFromVirtualMachineParams(nicid, virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRemoveNicFromVirtualMachineParams(nicid, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveNicFromVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewRemoveNicFromVirtualMachineParams), nicid, virtualmachineid) } @@ -864,11 +899,25 @@ func (m *MockVirtualMachineServiceIface) NewResetPasswordForVirtualMachineParams } // NewResetPasswordForVirtualMachineParams indicates an expected call of NewResetPasswordForVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewResetPasswordForVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewResetPasswordForVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResetPasswordForVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewResetPasswordForVirtualMachineParams), id) } +// NewResetUserDataForVirtualMachineParams mocks base method. +func (m *MockVirtualMachineServiceIface) NewResetUserDataForVirtualMachineParams(id string) *ResetUserDataForVirtualMachineParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewResetUserDataForVirtualMachineParams", id) + ret0, _ := ret[0].(*ResetUserDataForVirtualMachineParams) + return ret0 +} + +// NewResetUserDataForVirtualMachineParams indicates an expected call of NewResetUserDataForVirtualMachineParams. +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewResetUserDataForVirtualMachineParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResetUserDataForVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewResetUserDataForVirtualMachineParams), id) +} + // NewRestoreVirtualMachineParams mocks base method. func (m *MockVirtualMachineServiceIface) NewRestoreVirtualMachineParams(virtualmachineid string) *RestoreVirtualMachineParams { m.ctrl.T.Helper() @@ -878,7 +927,7 @@ func (m *MockVirtualMachineServiceIface) NewRestoreVirtualMachineParams(virtualm } // NewRestoreVirtualMachineParams indicates an expected call of NewRestoreVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRestoreVirtualMachineParams(virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewRestoreVirtualMachineParams(virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRestoreVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewRestoreVirtualMachineParams), virtualmachineid) } @@ -892,7 +941,7 @@ func (m *MockVirtualMachineServiceIface) NewScaleVirtualMachineParams(id, servic } // NewScaleVirtualMachineParams indicates an expected call of NewScaleVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewScaleVirtualMachineParams(id, serviceofferingid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewScaleVirtualMachineParams(id, serviceofferingid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewScaleVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewScaleVirtualMachineParams), id, serviceofferingid) } @@ -906,7 +955,7 @@ func (m *MockVirtualMachineServiceIface) NewStartVirtualMachineParams(id string) } // NewStartVirtualMachineParams indicates an expected call of NewStartVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewStartVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewStartVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStartVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewStartVirtualMachineParams), id) } @@ -920,7 +969,7 @@ func (m *MockVirtualMachineServiceIface) NewStopVirtualMachineParams(id string) } // NewStopVirtualMachineParams indicates an expected call of NewStopVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewStopVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewStopVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewStopVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewStopVirtualMachineParams), id) } @@ -934,7 +983,7 @@ func (m *MockVirtualMachineServiceIface) NewUnmanageVirtualMachineParams(id stri } // NewUnmanageVirtualMachineParams indicates an expected call of NewUnmanageVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUnmanageVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUnmanageVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUnmanageVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewUnmanageVirtualMachineParams), id) } @@ -948,7 +997,7 @@ func (m *MockVirtualMachineServiceIface) NewUpdateDefaultNicForVirtualMachinePar } // NewUpdateDefaultNicForVirtualMachineParams indicates an expected call of NewUpdateDefaultNicForVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUpdateDefaultNicForVirtualMachineParams(nicid, virtualmachineid interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUpdateDefaultNicForVirtualMachineParams(nicid, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateDefaultNicForVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewUpdateDefaultNicForVirtualMachineParams), nicid, virtualmachineid) } @@ -962,7 +1011,7 @@ func (m *MockVirtualMachineServiceIface) NewUpdateVMScheduleParams(id string) *U } // NewUpdateVMScheduleParams indicates an expected call of NewUpdateVMScheduleParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUpdateVMScheduleParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUpdateVMScheduleParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVMScheduleParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewUpdateVMScheduleParams), id) } @@ -976,7 +1025,7 @@ func (m *MockVirtualMachineServiceIface) NewUpdateVirtualMachineParams(id string } // NewUpdateVirtualMachineParams indicates an expected call of NewUpdateVirtualMachineParams. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUpdateVirtualMachineParams(id interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) NewUpdateVirtualMachineParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVirtualMachineParams", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).NewUpdateVirtualMachineParams), id) } @@ -991,7 +1040,7 @@ func (m *MockVirtualMachineServiceIface) RebootVirtualMachine(p *RebootVirtualMa } // RebootVirtualMachine indicates an expected call of RebootVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) RebootVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) RebootVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).RebootVirtualMachine), p) } @@ -1006,7 +1055,7 @@ func (m *MockVirtualMachineServiceIface) RecoverVirtualMachine(p *RecoverVirtual } // RecoverVirtualMachine indicates an expected call of RecoverVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) RecoverVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) RecoverVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoverVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).RecoverVirtualMachine), p) } @@ -1021,7 +1070,7 @@ func (m *MockVirtualMachineServiceIface) RemoveNicFromVirtualMachine(p *RemoveNi } // RemoveNicFromVirtualMachine indicates an expected call of RemoveNicFromVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) RemoveNicFromVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) RemoveNicFromVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNicFromVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).RemoveNicFromVirtualMachine), p) } @@ -1036,11 +1085,26 @@ func (m *MockVirtualMachineServiceIface) ResetPasswordForVirtualMachine(p *Reset } // ResetPasswordForVirtualMachine indicates an expected call of ResetPasswordForVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ResetPasswordForVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ResetPasswordForVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetPasswordForVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ResetPasswordForVirtualMachine), p) } +// ResetUserDataForVirtualMachine mocks base method. +func (m *MockVirtualMachineServiceIface) ResetUserDataForVirtualMachine(p *ResetUserDataForVirtualMachineParams) (*ResetUserDataForVirtualMachineResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ResetUserDataForVirtualMachine", p) + ret0, _ := ret[0].(*ResetUserDataForVirtualMachineResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ResetUserDataForVirtualMachine indicates an expected call of ResetUserDataForVirtualMachine. +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ResetUserDataForVirtualMachine(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetUserDataForVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ResetUserDataForVirtualMachine), p) +} + // RestoreVirtualMachine mocks base method. func (m *MockVirtualMachineServiceIface) RestoreVirtualMachine(p *RestoreVirtualMachineParams) (*RestoreVirtualMachineResponse, error) { m.ctrl.T.Helper() @@ -1051,7 +1115,7 @@ func (m *MockVirtualMachineServiceIface) RestoreVirtualMachine(p *RestoreVirtual } // RestoreVirtualMachine indicates an expected call of RestoreVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) RestoreVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) RestoreVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).RestoreVirtualMachine), p) } @@ -1066,7 +1130,7 @@ func (m *MockVirtualMachineServiceIface) ScaleVirtualMachine(p *ScaleVirtualMach } // ScaleVirtualMachine indicates an expected call of ScaleVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) ScaleVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) ScaleVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ScaleVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).ScaleVirtualMachine), p) } @@ -1081,7 +1145,7 @@ func (m *MockVirtualMachineServiceIface) StartVirtualMachine(p *StartVirtualMach } // StartVirtualMachine indicates an expected call of StartVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) StartVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) StartVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).StartVirtualMachine), p) } @@ -1096,7 +1160,7 @@ func (m *MockVirtualMachineServiceIface) StopVirtualMachine(p *StopVirtualMachin } // StopVirtualMachine indicates an expected call of StopVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) StopVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) StopVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).StopVirtualMachine), p) } @@ -1111,7 +1175,7 @@ func (m *MockVirtualMachineServiceIface) UnmanageVirtualMachine(p *UnmanageVirtu } // UnmanageVirtualMachine indicates an expected call of UnmanageVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) UnmanageVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) UnmanageVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnmanageVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).UnmanageVirtualMachine), p) } @@ -1126,7 +1190,7 @@ func (m *MockVirtualMachineServiceIface) UpdateDefaultNicForVirtualMachine(p *Up } // UpdateDefaultNicForVirtualMachine indicates an expected call of UpdateDefaultNicForVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) UpdateDefaultNicForVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) UpdateDefaultNicForVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDefaultNicForVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).UpdateDefaultNicForVirtualMachine), p) } @@ -1141,7 +1205,7 @@ func (m *MockVirtualMachineServiceIface) UpdateVMSchedule(p *UpdateVMSchedulePar } // UpdateVMSchedule indicates an expected call of UpdateVMSchedule. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) UpdateVMSchedule(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) UpdateVMSchedule(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVMSchedule", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).UpdateVMSchedule), p) } @@ -1156,7 +1220,7 @@ func (m *MockVirtualMachineServiceIface) UpdateVirtualMachine(p *UpdateVirtualMa } // UpdateVirtualMachine indicates an expected call of UpdateVirtualMachine. -func (mr *MockVirtualMachineServiceIfaceMockRecorder) UpdateVirtualMachine(p interface{}) *gomock.Call { +func (mr *MockVirtualMachineServiceIfaceMockRecorder) UpdateVirtualMachine(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVirtualMachine", reflect.TypeOf((*MockVirtualMachineServiceIface)(nil).UpdateVirtualMachine), p) } diff --git a/cloudstack/VirtualNetworkFunctionsService.go b/cloudstack/VirtualNetworkFunctionsService.go new file mode 100644 index 00000000..2a3b719e --- /dev/null +++ b/cloudstack/VirtualNetworkFunctionsService.go @@ -0,0 +1,5166 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" +) + +type VirtualNetworkFunctionsServiceIface interface { + DeleteVnfTemplate(p *DeleteVnfTemplateParams) (*DeleteVnfTemplateResponse, error) + NewDeleteVnfTemplateParams(id string) *DeleteVnfTemplateParams + DeployVnfAppliance(p *DeployVnfApplianceParams) (*DeployVnfApplianceResponse, error) + NewDeployVnfApplianceParams(serviceofferingid string, templateid string, zoneid string) *DeployVnfApplianceParams + ListVnfAppliances(p *ListVnfAppliancesParams) (*ListVnfAppliancesResponse, error) + NewListVnfAppliancesParams() *ListVnfAppliancesParams + GetVnfApplianceID(name string, opts ...OptionFunc) (string, int, error) + GetVnfApplianceByName(name string, opts ...OptionFunc) (*VnfAppliance, int, error) + GetVnfApplianceByID(id string, opts ...OptionFunc) (*VnfAppliance, int, error) + ListVnfTemplates(p *ListVnfTemplatesParams) (*ListVnfTemplatesResponse, error) + NewListVnfTemplatesParams(templatefilter string) *ListVnfTemplatesParams + GetVnfTemplateID(name string, templatefilter string, opts ...OptionFunc) (string, int, error) + GetVnfTemplateByName(name string, templatefilter string, opts ...OptionFunc) (*VnfTemplate, int, error) + GetVnfTemplateByID(id string, templatefilter string, opts ...OptionFunc) (*VnfTemplate, int, error) + RegisterVnfTemplate(p *RegisterVnfTemplateParams) (*RegisterVnfTemplateResponse, error) + NewRegisterVnfTemplateParams(format string, hypervisor string, name string, url string) *RegisterVnfTemplateParams + UpdateVnfTemplate(p *UpdateVnfTemplateParams) (*UpdateVnfTemplateResponse, error) + NewUpdateVnfTemplateParams(id string) *UpdateVnfTemplateParams +} + +type DeleteVnfTemplateParams struct { + p map[string]interface{} +} + +func (p *DeleteVnfTemplateParams) toURLValues() url.Values { + u := 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)) + } + if v, found := p.p["issystem"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("issystem", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *DeleteVnfTemplateParams) SetForced(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forced"] = v +} + +func (p *DeleteVnfTemplateParams) ResetForced() { + if p.p != nil && p.p["forced"] != nil { + delete(p.p, "forced") + } +} + +func (p *DeleteVnfTemplateParams) GetForced() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forced"].(bool) + return value, ok +} + +func (p *DeleteVnfTemplateParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteVnfTemplateParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteVnfTemplateParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *DeleteVnfTemplateParams) SetIssystem(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["issystem"] = v +} + +func (p *DeleteVnfTemplateParams) ResetIssystem() { + if p.p != nil && p.p["issystem"] != nil { + delete(p.p, "issystem") + } +} + +func (p *DeleteVnfTemplateParams) GetIssystem() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["issystem"].(bool) + return value, ok +} + +func (p *DeleteVnfTemplateParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *DeleteVnfTemplateParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *DeleteVnfTemplateParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteVnfTemplateParams instance, +// as then you are sure you have configured all required params +func (s *VirtualNetworkFunctionsService) NewDeleteVnfTemplateParams(id string) *DeleteVnfTemplateParams { + p := &DeleteVnfTemplateParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes a VNF template from the system. All virtual machines using the deleted template will not be affected. +func (s *VirtualNetworkFunctionsService) DeleteVnfTemplate(p *DeleteVnfTemplateParams) (*DeleteVnfTemplateResponse, error) { + resp, err := s.cs.newRequest("deleteVnfTemplate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteVnfTemplateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteVnfTemplateResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type DeployVnfApplianceParams struct { + p map[string]interface{} +} + +func (p *DeployVnfApplianceParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["affinitygroupids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("affinitygroupids", vv) + } + if v, found := p.p["affinitygroupnames"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("affinitygroupnames", vv) + } + if v, found := p.p["bootintosetup"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("bootintosetup", vv) + } + if v, found := p.p["bootmode"]; found { + u.Set("bootmode", v.(string)) + } + if v, found := p.p["boottype"]; found { + u.Set("boottype", v.(string)) + } + if v, found := p.p["copyimagetags"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("copyimagetags", vv) + } + if v, found := p.p["customid"]; found { + u.Set("customid", v.(string)) + } + if v, found := p.p["datadiskofferinglist"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("datadiskofferinglist[%d].disk", i), k) + u.Set(fmt.Sprintf("datadiskofferinglist[%d].diskOffering", i), m[k]) + } + } + if v, found := p.p["deploymentplanner"]; found { + u.Set("deploymentplanner", v.(string)) + } + 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["dhcpoptionsnetworklist"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].key", i), k) + u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].value", i), m[k]) + } + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["displayname"]; found { + u.Set("displayname", v.(string)) + } + if v, found := p.p["displayvm"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("displayvm", vv) + } + 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)) + } + if v, found := p.p["group"]; found { + u.Set("group", v.(string)) + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } + if v, found := p.p["iodriverpolicy"]; found { + u.Set("iodriverpolicy", v.(string)) + } + if v, found := p.p["iothreadsenabled"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("iothreadsenabled", vv) + } + if v, found := p.p["ip6address"]; found { + u.Set("ip6address", v.(string)) + } + if v, found := p.p["ipaddress"]; found { + u.Set("ipaddress", v.(string)) + } + if v, found := p.p["iptonetworklist"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("iptonetworklist[%d].key", i), k) + u.Set(fmt.Sprintf("iptonetworklist[%d].value", i), m[k]) + } + } + if v, found := p.p["keyboard"]; found { + u.Set("keyboard", v.(string)) + } + if v, found := p.p["keypair"]; found { + u.Set("keypair", v.(string)) + } + if v, found := p.p["keypairs"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("keypairs", vv) + } + if v, found := p.p["macaddress"]; found { + u.Set("macaddress", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["networkids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("networkids", vv) + } + if v, found := p.p["nicmultiqueuenumber"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("nicmultiqueuenumber", vv) + } + if v, found := p.p["nicnetworklist"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("nicnetworklist[%d].nic", i), k) + u.Set(fmt.Sprintf("nicnetworklist[%d].network", i), m[k]) + } + } + if v, found := p.p["nicpackedvirtqueuesenabled"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("nicpackedvirtqueuesenabled", vv) + } + if v, found := p.p["overridediskofferingid"]; found { + u.Set("overridediskofferingid", v.(string)) + } + if v, found := p.p["password"]; found { + u.Set("password", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["properties"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("properties[%d].key", i), k) + u.Set(fmt.Sprintf("properties[%d].value", i), m[k]) + } + } + if v, found := p.p["rootdisksize"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("rootdisksize", vv) + } + if v, found := p.p["securitygroupids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("securitygroupids", vv) + } + if v, found := p.p["securitygroupnames"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("securitygroupnames", vv) + } + if v, found := p.p["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + if v, found := p.p["size"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("size", vv) + } + if v, found := p.p["startvm"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("startvm", vv) + } + if v, found := p.p["templateid"]; found { + u.Set("templateid", v.(string)) + } + if v, found := p.p["userdata"]; found { + u.Set("userdata", v.(string)) + } + if v, found := p.p["userdatadetails"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("userdatadetails[%d].key", i), k) + u.Set(fmt.Sprintf("userdatadetails[%d].value", i), m[k]) + } + } + if v, found := p.p["userdataid"]; found { + u.Set("userdataid", v.(string)) + } + if v, found := p.p["vnfcidrlist"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("vnfcidrlist", vv) + } + if v, found := p.p["vnfconfiguremanagement"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("vnfconfiguremanagement", vv) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *DeployVnfApplianceParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *DeployVnfApplianceParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *DeployVnfApplianceParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetAffinitygroupids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["affinitygroupids"] = v +} + +func (p *DeployVnfApplianceParams) ResetAffinitygroupids() { + if p.p != nil && p.p["affinitygroupids"] != nil { + delete(p.p, "affinitygroupids") + } +} + +func (p *DeployVnfApplianceParams) GetAffinitygroupids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["affinitygroupids"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetAffinitygroupnames(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["affinitygroupnames"] = v +} + +func (p *DeployVnfApplianceParams) ResetAffinitygroupnames() { + if p.p != nil && p.p["affinitygroupnames"] != nil { + delete(p.p, "affinitygroupnames") + } +} + +func (p *DeployVnfApplianceParams) GetAffinitygroupnames() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["affinitygroupnames"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetBootintosetup(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bootintosetup"] = v +} + +func (p *DeployVnfApplianceParams) ResetBootintosetup() { + if p.p != nil && p.p["bootintosetup"] != nil { + delete(p.p, "bootintosetup") + } +} + +func (p *DeployVnfApplianceParams) GetBootintosetup() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bootintosetup"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetBootmode(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bootmode"] = v +} + +func (p *DeployVnfApplianceParams) ResetBootmode() { + if p.p != nil && p.p["bootmode"] != nil { + delete(p.p, "bootmode") + } +} + +func (p *DeployVnfApplianceParams) GetBootmode() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bootmode"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetBoottype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["boottype"] = v +} + +func (p *DeployVnfApplianceParams) ResetBoottype() { + if p.p != nil && p.p["boottype"] != nil { + delete(p.p, "boottype") + } +} + +func (p *DeployVnfApplianceParams) GetBoottype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["boottype"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetCopyimagetags(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["copyimagetags"] = v +} + +func (p *DeployVnfApplianceParams) ResetCopyimagetags() { + if p.p != nil && p.p["copyimagetags"] != nil { + delete(p.p, "copyimagetags") + } +} + +func (p *DeployVnfApplianceParams) GetCopyimagetags() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["copyimagetags"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetCustomid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["customid"] = v +} + +func (p *DeployVnfApplianceParams) ResetCustomid() { + if p.p != nil && p.p["customid"] != nil { + delete(p.p, "customid") + } +} + +func (p *DeployVnfApplianceParams) GetCustomid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["customid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDatadiskofferinglist(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["datadiskofferinglist"] = v +} + +func (p *DeployVnfApplianceParams) ResetDatadiskofferinglist() { + if p.p != nil && p.p["datadiskofferinglist"] != nil { + delete(p.p, "datadiskofferinglist") + } +} + +func (p *DeployVnfApplianceParams) GetDatadiskofferinglist() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["datadiskofferinglist"].(map[string]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDeploymentplanner(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["deploymentplanner"] = v +} + +func (p *DeployVnfApplianceParams) ResetDeploymentplanner() { + if p.p != nil && p.p["deploymentplanner"] != nil { + delete(p.p, "deploymentplanner") + } +} + +func (p *DeployVnfApplianceParams) GetDeploymentplanner() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["deploymentplanner"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *DeployVnfApplianceParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *DeployVnfApplianceParams) 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 *DeployVnfApplianceParams) SetDhcpoptionsnetworklist(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["dhcpoptionsnetworklist"] = v +} + +func (p *DeployVnfApplianceParams) ResetDhcpoptionsnetworklist() { + if p.p != nil && p.p["dhcpoptionsnetworklist"] != nil { + delete(p.p, "dhcpoptionsnetworklist") + } +} + +func (p *DeployVnfApplianceParams) GetDhcpoptionsnetworklist() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["dhcpoptionsnetworklist"].(map[string]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDiskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["diskofferingid"] = v +} + +func (p *DeployVnfApplianceParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") + } +} + +func (p *DeployVnfApplianceParams) GetDiskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["diskofferingid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDisplayname(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displayname"] = v +} + +func (p *DeployVnfApplianceParams) ResetDisplayname() { + if p.p != nil && p.p["displayname"] != nil { + delete(p.p, "displayname") + } +} + +func (p *DeployVnfApplianceParams) GetDisplayname() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displayname"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDisplayvm(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displayvm"] = v +} + +func (p *DeployVnfApplianceParams) ResetDisplayvm() { + if p.p != nil && p.p["displayvm"] != nil { + delete(p.p, "displayvm") + } +} + +func (p *DeployVnfApplianceParams) GetDisplayvm() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displayvm"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *DeployVnfApplianceParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *DeployVnfApplianceParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetDynamicscalingenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["dynamicscalingenabled"] = v +} + +func (p *DeployVnfApplianceParams) ResetDynamicscalingenabled() { + if p.p != nil && p.p["dynamicscalingenabled"] != nil { + delete(p.p, "dynamicscalingenabled") + } +} + +func (p *DeployVnfApplianceParams) GetDynamicscalingenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["dynamicscalingenabled"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetExtraconfig(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["extraconfig"] = v +} + +func (p *DeployVnfApplianceParams) ResetExtraconfig() { + if p.p != nil && p.p["extraconfig"] != nil { + delete(p.p, "extraconfig") + } +} + +func (p *DeployVnfApplianceParams) GetExtraconfig() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["extraconfig"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetGroup(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["group"] = v +} + +func (p *DeployVnfApplianceParams) ResetGroup() { + if p.p != nil && p.p["group"] != nil { + delete(p.p, "group") + } +} + +func (p *DeployVnfApplianceParams) GetGroup() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["group"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostid"] = v +} + +func (p *DeployVnfApplianceParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } +} + +func (p *DeployVnfApplianceParams) GetHostid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetHypervisor(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hypervisor"] = v +} + +func (p *DeployVnfApplianceParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") + } +} + +func (p *DeployVnfApplianceParams) GetHypervisor() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hypervisor"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetIodriverpolicy(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["iodriverpolicy"] = v +} + +func (p *DeployVnfApplianceParams) ResetIodriverpolicy() { + if p.p != nil && p.p["iodriverpolicy"] != nil { + delete(p.p, "iodriverpolicy") + } +} + +func (p *DeployVnfApplianceParams) GetIodriverpolicy() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["iodriverpolicy"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetIothreadsenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["iothreadsenabled"] = v +} + +func (p *DeployVnfApplianceParams) ResetIothreadsenabled() { + if p.p != nil && p.p["iothreadsenabled"] != nil { + delete(p.p, "iothreadsenabled") + } +} + +func (p *DeployVnfApplianceParams) GetIothreadsenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["iothreadsenabled"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetIp6address(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ip6address"] = v +} + +func (p *DeployVnfApplianceParams) ResetIp6address() { + if p.p != nil && p.p["ip6address"] != nil { + delete(p.p, "ip6address") + } +} + +func (p *DeployVnfApplianceParams) GetIp6address() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ip6address"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetIpaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ipaddress"] = v +} + +func (p *DeployVnfApplianceParams) ResetIpaddress() { + if p.p != nil && p.p["ipaddress"] != nil { + delete(p.p, "ipaddress") + } +} + +func (p *DeployVnfApplianceParams) GetIpaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ipaddress"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetIptonetworklist(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["iptonetworklist"] = v +} + +func (p *DeployVnfApplianceParams) ResetIptonetworklist() { + if p.p != nil && p.p["iptonetworklist"] != nil { + delete(p.p, "iptonetworklist") + } +} + +func (p *DeployVnfApplianceParams) GetIptonetworklist() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["iptonetworklist"].(map[string]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetKeyboard(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyboard"] = v +} + +func (p *DeployVnfApplianceParams) ResetKeyboard() { + if p.p != nil && p.p["keyboard"] != nil { + delete(p.p, "keyboard") + } +} + +func (p *DeployVnfApplianceParams) GetKeyboard() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyboard"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetKeypair(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keypair"] = v +} + +func (p *DeployVnfApplianceParams) ResetKeypair() { + if p.p != nil && p.p["keypair"] != nil { + delete(p.p, "keypair") + } +} + +func (p *DeployVnfApplianceParams) GetKeypair() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keypair"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetKeypairs(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keypairs"] = v +} + +func (p *DeployVnfApplianceParams) ResetKeypairs() { + if p.p != nil && p.p["keypairs"] != nil { + delete(p.p, "keypairs") + } +} + +func (p *DeployVnfApplianceParams) GetKeypairs() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keypairs"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetMacaddress(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["macaddress"] = v +} + +func (p *DeployVnfApplianceParams) ResetMacaddress() { + if p.p != nil && p.p["macaddress"] != nil { + delete(p.p, "macaddress") + } +} + +func (p *DeployVnfApplianceParams) GetMacaddress() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["macaddress"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *DeployVnfApplianceParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *DeployVnfApplianceParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetNetworkids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkids"] = v +} + +func (p *DeployVnfApplianceParams) ResetNetworkids() { + if p.p != nil && p.p["networkids"] != nil { + delete(p.p, "networkids") + } +} + +func (p *DeployVnfApplianceParams) GetNetworkids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkids"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetNicmultiqueuenumber(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["nicmultiqueuenumber"] = v +} + +func (p *DeployVnfApplianceParams) ResetNicmultiqueuenumber() { + if p.p != nil && p.p["nicmultiqueuenumber"] != nil { + delete(p.p, "nicmultiqueuenumber") + } +} + +func (p *DeployVnfApplianceParams) GetNicmultiqueuenumber() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["nicmultiqueuenumber"].(int) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetNicnetworklist(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["nicnetworklist"] = v +} + +func (p *DeployVnfApplianceParams) ResetNicnetworklist() { + if p.p != nil && p.p["nicnetworklist"] != nil { + delete(p.p, "nicnetworklist") + } +} + +func (p *DeployVnfApplianceParams) GetNicnetworklist() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["nicnetworklist"].(map[string]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetNicpackedvirtqueuesenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["nicpackedvirtqueuesenabled"] = v +} + +func (p *DeployVnfApplianceParams) ResetNicpackedvirtqueuesenabled() { + if p.p != nil && p.p["nicpackedvirtqueuesenabled"] != nil { + delete(p.p, "nicpackedvirtqueuesenabled") + } +} + +func (p *DeployVnfApplianceParams) GetNicpackedvirtqueuesenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["nicpackedvirtqueuesenabled"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetOverridediskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["overridediskofferingid"] = v +} + +func (p *DeployVnfApplianceParams) ResetOverridediskofferingid() { + if p.p != nil && p.p["overridediskofferingid"] != nil { + delete(p.p, "overridediskofferingid") + } +} + +func (p *DeployVnfApplianceParams) GetOverridediskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["overridediskofferingid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetPassword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["password"] = v +} + +func (p *DeployVnfApplianceParams) ResetPassword() { + if p.p != nil && p.p["password"] != nil { + delete(p.p, "password") + } +} + +func (p *DeployVnfApplianceParams) GetPassword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["password"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *DeployVnfApplianceParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *DeployVnfApplianceParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetProperties(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["properties"] = v +} + +func (p *DeployVnfApplianceParams) ResetProperties() { + if p.p != nil && p.p["properties"] != nil { + delete(p.p, "properties") + } +} + +func (p *DeployVnfApplianceParams) GetProperties() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["properties"].(map[string]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetRootdisksize(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["rootdisksize"] = v +} + +func (p *DeployVnfApplianceParams) ResetRootdisksize() { + if p.p != nil && p.p["rootdisksize"] != nil { + delete(p.p, "rootdisksize") + } +} + +func (p *DeployVnfApplianceParams) GetRootdisksize() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["rootdisksize"].(int64) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetSecuritygroupids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["securitygroupids"] = v +} + +func (p *DeployVnfApplianceParams) ResetSecuritygroupids() { + if p.p != nil && p.p["securitygroupids"] != nil { + delete(p.p, "securitygroupids") + } +} + +func (p *DeployVnfApplianceParams) GetSecuritygroupids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["securitygroupids"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetSecuritygroupnames(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["securitygroupnames"] = v +} + +func (p *DeployVnfApplianceParams) ResetSecuritygroupnames() { + if p.p != nil && p.p["securitygroupnames"] != nil { + delete(p.p, "securitygroupnames") + } +} + +func (p *DeployVnfApplianceParams) GetSecuritygroupnames() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["securitygroupnames"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v +} + +func (p *DeployVnfApplianceParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") + } +} + +func (p *DeployVnfApplianceParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetSize(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["size"] = v +} + +func (p *DeployVnfApplianceParams) ResetSize() { + if p.p != nil && p.p["size"] != nil { + delete(p.p, "size") + } +} + +func (p *DeployVnfApplianceParams) GetSize() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["size"].(int64) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetStartvm(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startvm"] = v +} + +func (p *DeployVnfApplianceParams) ResetStartvm() { + if p.p != nil && p.p["startvm"] != nil { + delete(p.p, "startvm") + } +} + +func (p *DeployVnfApplianceParams) GetStartvm() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startvm"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetTemplateid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templateid"] = v +} + +func (p *DeployVnfApplianceParams) ResetTemplateid() { + if p.p != nil && p.p["templateid"] != nil { + delete(p.p, "templateid") + } +} + +func (p *DeployVnfApplianceParams) GetTemplateid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templateid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetUserdata(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdata"] = v +} + +func (p *DeployVnfApplianceParams) ResetUserdata() { + if p.p != nil && p.p["userdata"] != nil { + delete(p.p, "userdata") + } +} + +func (p *DeployVnfApplianceParams) GetUserdata() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdata"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetUserdatadetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdatadetails"] = v +} + +func (p *DeployVnfApplianceParams) ResetUserdatadetails() { + if p.p != nil && p.p["userdatadetails"] != nil { + delete(p.p, "userdatadetails") + } +} + +func (p *DeployVnfApplianceParams) GetUserdatadetails() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdatadetails"].(map[string]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetUserdataid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdataid"] = v +} + +func (p *DeployVnfApplianceParams) ResetUserdataid() { + if p.p != nil && p.p["userdataid"] != nil { + delete(p.p, "userdataid") + } +} + +func (p *DeployVnfApplianceParams) GetUserdataid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdataid"].(string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetVnfcidrlist(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vnfcidrlist"] = v +} + +func (p *DeployVnfApplianceParams) ResetVnfcidrlist() { + if p.p != nil && p.p["vnfcidrlist"] != nil { + delete(p.p, "vnfcidrlist") + } +} + +func (p *DeployVnfApplianceParams) GetVnfcidrlist() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vnfcidrlist"].([]string) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetVnfconfiguremanagement(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vnfconfiguremanagement"] = v +} + +func (p *DeployVnfApplianceParams) ResetVnfconfiguremanagement() { + if p.p != nil && p.p["vnfconfiguremanagement"] != nil { + delete(p.p, "vnfconfiguremanagement") + } +} + +func (p *DeployVnfApplianceParams) GetVnfconfiguremanagement() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vnfconfiguremanagement"].(bool) + return value, ok +} + +func (p *DeployVnfApplianceParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *DeployVnfApplianceParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *DeployVnfApplianceParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new DeployVnfApplianceParams instance, +// as then you are sure you have configured all required params +func (s *VirtualNetworkFunctionsService) NewDeployVnfApplianceParams(serviceofferingid string, templateid string, zoneid string) *DeployVnfApplianceParams { + p := &DeployVnfApplianceParams{} + p.p = make(map[string]interface{}) + p.p["serviceofferingid"] = serviceofferingid + p.p["templateid"] = templateid + p.p["zoneid"] = zoneid + return p +} + +// Creates and automatically starts a VNF appliance based on a service offering, disk offering, and template. +func (s *VirtualNetworkFunctionsService) DeployVnfAppliance(p *DeployVnfApplianceParams) (*DeployVnfApplianceResponse, error) { + resp, err := s.cs.newRequest("deployVnfAppliance", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeployVnfApplianceResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeployVnfApplianceResponse struct { + Account string `json:"account"` + Affinitygroup []DeployVnfApplianceResponseAffinitygroup `json:"affinitygroup"` + Autoscalevmgroupid string `json:"autoscalevmgroupid"` + Autoscalevmgroupname string `json:"autoscalevmgroupname"` + Backupofferingid string `json:"backupofferingid"` + Backupofferingname string `json:"backupofferingname"` + Bootmode string `json:"bootmode"` + Boottype string `json:"boottype"` + Cpunumber int `json:"cpunumber"` + Cpuspeed int `json:"cpuspeed"` + Cpuused string `json:"cpuused"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Details map[string]string `json:"details"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayname string `json:"displayname"` + Displayvm bool `json:"displayvm"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Forvirtualnetwork bool `json:"forvirtualnetwork"` + Group string `json:"group"` + Groupid string `json:"groupid"` + Guestosid string `json:"guestosid"` + Haenable bool `json:"haenable"` + Hasannotations bool `json:"hasannotations"` + Hostcontrolstate string `json:"hostcontrolstate"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Hypervisor string `json:"hypervisor"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Instancename string `json:"instancename"` + Ipaddress string `json:"ipaddress"` + Isdynamicallyscalable bool `json:"isdynamicallyscalable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Keypairs string `json:"keypairs"` + Lastupdated string `json:"lastupdated"` + Memory int `json:"memory"` + Memoryintfreekbs int64 `json:"memoryintfreekbs"` + Memorykbs int64 `json:"memorykbs"` + Memorytargetkbs int64 `json:"memorytargetkbs"` + Name string `json:"name"` + Networkkbsread int64 `json:"networkkbsread"` + Networkkbswrite int64 `json:"networkkbswrite"` + Nic []Nic `json:"nic"` + Osdisplayname string `json:"osdisplayname"` + 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"` + Readonlydetails string `json:"readonlydetails"` + Receivedbytes int64 `json:"receivedbytes"` + Rootdeviceid int64 `json:"rootdeviceid"` + Rootdevicetype string `json:"rootdevicetype"` + Securitygroup []DeployVnfApplianceResponseSecuritygroup `json:"securitygroup"` + Sentbytes int64 `json:"sentbytes"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Servicestate string `json:"servicestate"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Templatedisplaytext string `json:"templatedisplaytext"` + Templateformat string `json:"templateformat"` + Templateid string `json:"templateid"` + Templatename string `json:"templatename"` + Templatetype string `json:"templatetype"` + Userdata string `json:"userdata"` + Userdatadetails string `json:"userdatadetails"` + Userdataid string `json:"userdataid"` + Userdataname string `json:"userdataname"` + Userdatapolicy string `json:"userdatapolicy"` + Userid string `json:"userid"` + Username string `json:"username"` + Vgpu string `json:"vgpu"` + Vmtype string `json:"vmtype"` + Vnfdetails map[string]string `json:"vnfdetails"` + Vnfnics []string `json:"vnfnics"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type DeployVnfApplianceResponseSecuritygroup struct { + Account string `json:"account"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressrule []DeployVnfApplianceResponseSecuritygroupRule `json:"egressrule"` + Id string `json:"id"` + Ingressrule []DeployVnfApplianceResponseSecuritygroupRule `json:"ingressrule"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Tags []Tags `json:"tags"` + Virtualmachinecount int `json:"virtualmachinecount"` + Virtualmachineids []interface{} `json:"virtualmachineids"` +} + +type DeployVnfApplianceResponseSecuritygroupRule struct { + Account string `json:"account"` + Cidr string `json:"cidr"` + Endport int `json:"endport"` + Icmpcode int `json:"icmpcode"` + Icmptype int `json:"icmptype"` + Protocol string `json:"protocol"` + Ruleid string `json:"ruleid"` + Securitygroupname string `json:"securitygroupname"` + Startport int `json:"startport"` + Tags []Tags `json:"tags"` +} + +type DeployVnfApplianceResponseAffinitygroup struct { + Account string `json:"account"` + Dedicatedresources []string `json:"dedicatedresources"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Type string `json:"type"` + VirtualmachineIds []string `json:"virtualmachineIds"` +} + +func (r *DeployVnfApplianceResponse) 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 DeployVnfApplianceResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ListVnfAppliancesParams struct { + p map[string]interface{} +} + +func (p *ListVnfAppliancesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["accumulate"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("accumulate", vv) + } + if v, found := p.p["affinitygroupid"]; found { + u.Set("affinitygroupid", v.(string)) + } + if v, found := p.p["autoscalevmgroupid"]; found { + u.Set("autoscalevmgroupid", v.(string)) + } + if v, found := p.p["backupofferingid"]; found { + u.Set("backupofferingid", v.(string)) + } + if v, found := p.p["details"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("details", vv) + } + if v, found := p.p["displayvm"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("displayvm", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["forvirtualnetwork"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("forvirtualnetwork", vv) + } + if v, found := p.p["groupid"]; found { + u.Set("groupid", v.(string)) + } + if v, found := p.p["haenable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("haenable", vv) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("ids", vv) + } + if v, found := p.p["isoid"]; found { + u.Set("isoid", v.(string)) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["isvnf"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isvnf", vv) + } + if v, found := p.p["keypair"]; found { + u.Set("keypair", v.(string)) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["networkid"]; found { + u.Set("networkid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["retrieveonlyresourcecount"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("retrieveonlyresourcecount", vv) + } + if v, found := p.p["securitygroupid"]; found { + u.Set("securitygroupid", v.(string)) + } + 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)) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + if v, found := p.p["templateid"]; found { + u.Set("templateid", v.(string)) + } + if v, found := p.p["userdata"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("userdata", vv) + } + if v, found := p.p["userid"]; found { + u.Set("userid", v.(string)) + } + if v, found := p.p["vpcid"]; found { + u.Set("vpcid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListVnfAppliancesParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListVnfAppliancesParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListVnfAppliancesParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetAccumulate(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["accumulate"] = v +} + +func (p *ListVnfAppliancesParams) ResetAccumulate() { + if p.p != nil && p.p["accumulate"] != nil { + delete(p.p, "accumulate") + } +} + +func (p *ListVnfAppliancesParams) GetAccumulate() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["accumulate"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetAffinitygroupid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["affinitygroupid"] = v +} + +func (p *ListVnfAppliancesParams) ResetAffinitygroupid() { + if p.p != nil && p.p["affinitygroupid"] != nil { + delete(p.p, "affinitygroupid") + } +} + +func (p *ListVnfAppliancesParams) GetAffinitygroupid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["affinitygroupid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetAutoscalevmgroupid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["autoscalevmgroupid"] = v +} + +func (p *ListVnfAppliancesParams) ResetAutoscalevmgroupid() { + if p.p != nil && p.p["autoscalevmgroupid"] != nil { + delete(p.p, "autoscalevmgroupid") + } +} + +func (p *ListVnfAppliancesParams) GetAutoscalevmgroupid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["autoscalevmgroupid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetBackupofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["backupofferingid"] = v +} + +func (p *ListVnfAppliancesParams) ResetBackupofferingid() { + if p.p != nil && p.p["backupofferingid"] != nil { + delete(p.p, "backupofferingid") + } +} + +func (p *ListVnfAppliancesParams) GetBackupofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["backupofferingid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetDetails(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *ListVnfAppliancesParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *ListVnfAppliancesParams) GetDetails() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["details"].([]string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetDisplayvm(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displayvm"] = v +} + +func (p *ListVnfAppliancesParams) ResetDisplayvm() { + if p.p != nil && p.p["displayvm"] != nil { + delete(p.p, "displayvm") + } +} + +func (p *ListVnfAppliancesParams) GetDisplayvm() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displayvm"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListVnfAppliancesParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListVnfAppliancesParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetForvirtualnetwork(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["forvirtualnetwork"] = v +} + +func (p *ListVnfAppliancesParams) ResetForvirtualnetwork() { + if p.p != nil && p.p["forvirtualnetwork"] != nil { + delete(p.p, "forvirtualnetwork") + } +} + +func (p *ListVnfAppliancesParams) GetForvirtualnetwork() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["forvirtualnetwork"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetGroupid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["groupid"] = v +} + +func (p *ListVnfAppliancesParams) ResetGroupid() { + if p.p != nil && p.p["groupid"] != nil { + delete(p.p, "groupid") + } +} + +func (p *ListVnfAppliancesParams) GetGroupid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["groupid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetHaenable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["haenable"] = v +} + +func (p *ListVnfAppliancesParams) ResetHaenable() { + if p.p != nil && p.p["haenable"] != nil { + delete(p.p, "haenable") + } +} + +func (p *ListVnfAppliancesParams) GetHaenable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["haenable"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetHypervisor(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hypervisor"] = v +} + +func (p *ListVnfAppliancesParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") + } +} + +func (p *ListVnfAppliancesParams) GetHypervisor() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hypervisor"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListVnfAppliancesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListVnfAppliancesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetIds(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ids"] = v +} + +func (p *ListVnfAppliancesParams) ResetIds() { + if p.p != nil && p.p["ids"] != nil { + delete(p.p, "ids") + } +} + +func (p *ListVnfAppliancesParams) GetIds() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ids"].([]string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetIsoid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isoid"] = v +} + +func (p *ListVnfAppliancesParams) ResetIsoid() { + if p.p != nil && p.p["isoid"] != nil { + delete(p.p, "isoid") + } +} + +func (p *ListVnfAppliancesParams) GetIsoid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isoid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v +} + +func (p *ListVnfAppliancesParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } +} + +func (p *ListVnfAppliancesParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetIsvnf(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isvnf"] = v +} + +func (p *ListVnfAppliancesParams) ResetIsvnf() { + if p.p != nil && p.p["isvnf"] != nil { + delete(p.p, "isvnf") + } +} + +func (p *ListVnfAppliancesParams) GetIsvnf() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isvnf"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetKeypair(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keypair"] = v +} + +func (p *ListVnfAppliancesParams) ResetKeypair() { + if p.p != nil && p.p["keypair"] != nil { + delete(p.p, "keypair") + } +} + +func (p *ListVnfAppliancesParams) GetKeypair() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keypair"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListVnfAppliancesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListVnfAppliancesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listall"] = v +} + +func (p *ListVnfAppliancesParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") + } +} + +func (p *ListVnfAppliancesParams) GetListall() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listall"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListVnfAppliancesParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListVnfAppliancesParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetNetworkid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networkid"] = v +} + +func (p *ListVnfAppliancesParams) ResetNetworkid() { + if p.p != nil && p.p["networkid"] != nil { + delete(p.p, "networkid") + } +} + +func (p *ListVnfAppliancesParams) GetNetworkid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networkid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListVnfAppliancesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListVnfAppliancesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListVnfAppliancesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListVnfAppliancesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *ListVnfAppliancesParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *ListVnfAppliancesParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetRetrieveonlyresourcecount(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["retrieveonlyresourcecount"] = v +} + +func (p *ListVnfAppliancesParams) ResetRetrieveonlyresourcecount() { + if p.p != nil && p.p["retrieveonlyresourcecount"] != nil { + delete(p.p, "retrieveonlyresourcecount") + } +} + +func (p *ListVnfAppliancesParams) GetRetrieveonlyresourcecount() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["retrieveonlyresourcecount"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetSecuritygroupid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["securitygroupid"] = v +} + +func (p *ListVnfAppliancesParams) ResetSecuritygroupid() { + if p.p != nil && p.p["securitygroupid"] != nil { + delete(p.p, "securitygroupid") + } +} + +func (p *ListVnfAppliancesParams) GetSecuritygroupid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["securitygroupid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v +} + +func (p *ListVnfAppliancesParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") + } +} + +func (p *ListVnfAppliancesParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetShowicon(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showicon"] = v +} + +func (p *ListVnfAppliancesParams) ResetShowicon() { + if p.p != nil && p.p["showicon"] != nil { + delete(p.p, "showicon") + } +} + +func (p *ListVnfAppliancesParams) GetShowicon() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showicon"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetState(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["state"] = v +} + +func (p *ListVnfAppliancesParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") + } +} + +func (p *ListVnfAppliancesParams) GetState() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["state"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetTags(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["tags"] = v +} + +func (p *ListVnfAppliancesParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") + } +} + +func (p *ListVnfAppliancesParams) GetTags() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tags"].(map[string]string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetTemplateid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templateid"] = v +} + +func (p *ListVnfAppliancesParams) ResetTemplateid() { + if p.p != nil && p.p["templateid"] != nil { + delete(p.p, "templateid") + } +} + +func (p *ListVnfAppliancesParams) GetTemplateid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templateid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetUserdata(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userdata"] = v +} + +func (p *ListVnfAppliancesParams) ResetUserdata() { + if p.p != nil && p.p["userdata"] != nil { + delete(p.p, "userdata") + } +} + +func (p *ListVnfAppliancesParams) GetUserdata() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userdata"].(bool) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetUserid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["userid"] = v +} + +func (p *ListVnfAppliancesParams) ResetUserid() { + if p.p != nil && p.p["userid"] != nil { + delete(p.p, "userid") + } +} + +func (p *ListVnfAppliancesParams) GetUserid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["userid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetVpcid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vpcid"] = v +} + +func (p *ListVnfAppliancesParams) ResetVpcid() { + if p.p != nil && p.p["vpcid"] != nil { + delete(p.p, "vpcid") + } +} + +func (p *ListVnfAppliancesParams) GetVpcid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vpcid"].(string) + return value, ok +} + +func (p *ListVnfAppliancesParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListVnfAppliancesParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListVnfAppliancesParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListVnfAppliancesParams instance, +// as then you are sure you have configured all required params +func (s *VirtualNetworkFunctionsService) NewListVnfAppliancesParams() *ListVnfAppliancesParams { + p := &ListVnfAppliancesParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VirtualNetworkFunctionsService) GetVnfApplianceID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListVnfAppliancesParams{} + 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.ListVnfAppliances(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.VnfAppliances[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.VnfAppliances { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VirtualNetworkFunctionsService) GetVnfApplianceByName(name string, opts ...OptionFunc) (*VnfAppliance, int, error) { + id, count, err := s.GetVnfApplianceID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetVnfApplianceByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VirtualNetworkFunctionsService) GetVnfApplianceByID(id string, opts ...OptionFunc) (*VnfAppliance, int, error) { + p := &ListVnfAppliancesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListVnfAppliances(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.VnfAppliances[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for VnfAppliance UUID: %s!", id) +} + +// List VNF appliance owned by the account. +func (s *VirtualNetworkFunctionsService) ListVnfAppliances(p *ListVnfAppliancesParams) (*ListVnfAppliancesResponse, error) { + resp, err := s.cs.newRequest("listVnfAppliances", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListVnfAppliancesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListVnfAppliancesResponse struct { + Count int `json:"count"` + VnfAppliances []*VnfAppliance `json:"vnfappliance"` +} + +type VnfAppliance struct { + Account string `json:"account"` + Affinitygroup []VnfApplianceAffinitygroup `json:"affinitygroup"` + Autoscalevmgroupid string `json:"autoscalevmgroupid"` + Autoscalevmgroupname string `json:"autoscalevmgroupname"` + Backupofferingid string `json:"backupofferingid"` + Backupofferingname string `json:"backupofferingname"` + Bootmode string `json:"bootmode"` + Boottype string `json:"boottype"` + Cpunumber int `json:"cpunumber"` + Cpuspeed int `json:"cpuspeed"` + Cpuused string `json:"cpuused"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Details map[string]string `json:"details"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayname string `json:"displayname"` + Displayvm bool `json:"displayvm"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Forvirtualnetwork bool `json:"forvirtualnetwork"` + Group string `json:"group"` + Groupid string `json:"groupid"` + Guestosid string `json:"guestosid"` + Haenable bool `json:"haenable"` + Hasannotations bool `json:"hasannotations"` + Hostcontrolstate string `json:"hostcontrolstate"` + Hostid string `json:"hostid"` + Hostname string `json:"hostname"` + Hypervisor string `json:"hypervisor"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Instancename string `json:"instancename"` + Ipaddress string `json:"ipaddress"` + Isdynamicallyscalable bool `json:"isdynamicallyscalable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Keypairs string `json:"keypairs"` + Lastupdated string `json:"lastupdated"` + Memory int `json:"memory"` + Memoryintfreekbs int64 `json:"memoryintfreekbs"` + Memorykbs int64 `json:"memorykbs"` + Memorytargetkbs int64 `json:"memorytargetkbs"` + Name string `json:"name"` + Networkkbsread int64 `json:"networkkbsread"` + Networkkbswrite int64 `json:"networkkbswrite"` + Nic []Nic `json:"nic"` + Osdisplayname string `json:"osdisplayname"` + 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"` + Readonlydetails string `json:"readonlydetails"` + Receivedbytes int64 `json:"receivedbytes"` + Rootdeviceid int64 `json:"rootdeviceid"` + Rootdevicetype string `json:"rootdevicetype"` + Securitygroup []VnfApplianceSecuritygroup `json:"securitygroup"` + Sentbytes int64 `json:"sentbytes"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Servicestate string `json:"servicestate"` + State string `json:"state"` + Tags []Tags `json:"tags"` + Templatedisplaytext string `json:"templatedisplaytext"` + Templateformat string `json:"templateformat"` + Templateid string `json:"templateid"` + Templatename string `json:"templatename"` + Templatetype string `json:"templatetype"` + Userdata string `json:"userdata"` + Userdatadetails string `json:"userdatadetails"` + Userdataid string `json:"userdataid"` + Userdataname string `json:"userdataname"` + Userdatapolicy string `json:"userdatapolicy"` + Userid string `json:"userid"` + Username string `json:"username"` + Vgpu string `json:"vgpu"` + Vmtype string `json:"vmtype"` + Vnfdetails map[string]string `json:"vnfdetails"` + Vnfnics []string `json:"vnfnics"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type VnfApplianceSecuritygroup struct { + Account string `json:"account"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Egressrule []VnfApplianceSecuritygroupRule `json:"egressrule"` + Id string `json:"id"` + Ingressrule []VnfApplianceSecuritygroupRule `json:"ingressrule"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Tags []Tags `json:"tags"` + Virtualmachinecount int `json:"virtualmachinecount"` + Virtualmachineids []interface{} `json:"virtualmachineids"` +} + +type VnfApplianceSecuritygroupRule struct { + Account string `json:"account"` + Cidr string `json:"cidr"` + Endport int `json:"endport"` + Icmpcode int `json:"icmpcode"` + Icmptype int `json:"icmptype"` + Protocol string `json:"protocol"` + Ruleid string `json:"ruleid"` + Securitygroupname string `json:"securitygroupname"` + Startport int `json:"startport"` + Tags []Tags `json:"tags"` +} + +type VnfApplianceAffinitygroup struct { + Account string `json:"account"` + Dedicatedresources []string `json:"dedicatedresources"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + Name string `json:"name"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Type string `json:"type"` + VirtualmachineIds []string `json:"virtualmachineIds"` +} + +func (r *VnfAppliance) 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 VnfAppliance + return json.Unmarshal(b, (*alias)(r)) +} + +type ListVnfTemplatesParams struct { + p map[string]interface{} +} + +func (p *ListVnfTemplatesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["arch"]; found { + u.Set("arch", v.(string)) + } + if v, found := p.p["details"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("details", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("ids", vv) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["isvnf"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isvnf", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["parenttemplateid"]; found { + u.Set("parenttemplateid", v.(string)) + } + 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) + } + if v, found := p.p["showunique"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("showunique", vv) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + if v, found := p.p["templatefilter"]; found { + u.Set("templatefilter", v.(string)) + } + if v, found := p.p["templatetype"]; found { + u.Set("templatetype", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListVnfTemplatesParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListVnfTemplatesParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListVnfTemplatesParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetArch(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["arch"] = v +} + +func (p *ListVnfTemplatesParams) ResetArch() { + if p.p != nil && p.p["arch"] != nil { + delete(p.p, "arch") + } +} + +func (p *ListVnfTemplatesParams) GetArch() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["arch"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetDetails(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *ListVnfTemplatesParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *ListVnfTemplatesParams) GetDetails() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["details"].([]string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListVnfTemplatesParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListVnfTemplatesParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetHypervisor(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hypervisor"] = v +} + +func (p *ListVnfTemplatesParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") + } +} + +func (p *ListVnfTemplatesParams) GetHypervisor() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hypervisor"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListVnfTemplatesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListVnfTemplatesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetIds(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ids"] = v +} + +func (p *ListVnfTemplatesParams) ResetIds() { + if p.p != nil && p.p["ids"] != nil { + delete(p.p, "ids") + } +} + +func (p *ListVnfTemplatesParams) GetIds() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ids"].([]string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v +} + +func (p *ListVnfTemplatesParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } +} + +func (p *ListVnfTemplatesParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetIsvnf(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isvnf"] = v +} + +func (p *ListVnfTemplatesParams) ResetIsvnf() { + if p.p != nil && p.p["isvnf"] != nil { + delete(p.p, "isvnf") + } +} + +func (p *ListVnfTemplatesParams) GetIsvnf() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isvnf"].(bool) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListVnfTemplatesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListVnfTemplatesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listall"] = v +} + +func (p *ListVnfTemplatesParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") + } +} + +func (p *ListVnfTemplatesParams) GetListall() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listall"].(bool) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListVnfTemplatesParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListVnfTemplatesParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListVnfTemplatesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListVnfTemplatesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListVnfTemplatesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListVnfTemplatesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetParenttemplateid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["parenttemplateid"] = v +} + +func (p *ListVnfTemplatesParams) ResetParenttemplateid() { + if p.p != nil && p.p["parenttemplateid"] != nil { + delete(p.p, "parenttemplateid") + } +} + +func (p *ListVnfTemplatesParams) GetParenttemplateid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["parenttemplateid"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *ListVnfTemplatesParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *ListVnfTemplatesParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetShowicon(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showicon"] = v +} + +func (p *ListVnfTemplatesParams) ResetShowicon() { + if p.p != nil && p.p["showicon"] != nil { + delete(p.p, "showicon") + } +} + +func (p *ListVnfTemplatesParams) GetShowicon() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showicon"].(bool) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetShowremoved(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showremoved"] = v +} + +func (p *ListVnfTemplatesParams) ResetShowremoved() { + if p.p != nil && p.p["showremoved"] != nil { + delete(p.p, "showremoved") + } +} + +func (p *ListVnfTemplatesParams) GetShowremoved() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showremoved"].(bool) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetShowunique(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showunique"] = v +} + +func (p *ListVnfTemplatesParams) ResetShowunique() { + if p.p != nil && p.p["showunique"] != nil { + delete(p.p, "showunique") + } +} + +func (p *ListVnfTemplatesParams) GetShowunique() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showunique"].(bool) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetTags(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["tags"] = v +} + +func (p *ListVnfTemplatesParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") + } +} + +func (p *ListVnfTemplatesParams) GetTags() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tags"].(map[string]string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetTemplatefilter(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templatefilter"] = v +} + +func (p *ListVnfTemplatesParams) ResetTemplatefilter() { + if p.p != nil && p.p["templatefilter"] != nil { + delete(p.p, "templatefilter") + } +} + +func (p *ListVnfTemplatesParams) GetTemplatefilter() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templatefilter"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetTemplatetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templatetype"] = v +} + +func (p *ListVnfTemplatesParams) ResetTemplatetype() { + if p.p != nil && p.p["templatetype"] != nil { + delete(p.p, "templatetype") + } +} + +func (p *ListVnfTemplatesParams) GetTemplatetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templatetype"].(string) + return value, ok +} + +func (p *ListVnfTemplatesParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListVnfTemplatesParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListVnfTemplatesParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListVnfTemplatesParams instance, +// as then you are sure you have configured all required params +func (s *VirtualNetworkFunctionsService) NewListVnfTemplatesParams(templatefilter string) *ListVnfTemplatesParams { + p := &ListVnfTemplatesParams{} + p.p = make(map[string]interface{}) + p.p["templatefilter"] = templatefilter + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VirtualNetworkFunctionsService) GetVnfTemplateID(name string, templatefilter string, opts ...OptionFunc) (string, int, error) { + p := &ListVnfTemplatesParams{} + p.p = make(map[string]interface{}) + + p.p["name"] = name + p.p["templatefilter"] = templatefilter + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return "", -1, err + } + } + + l, err := s.ListVnfTemplates(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.VnfTemplates[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.VnfTemplates { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VirtualNetworkFunctionsService) GetVnfTemplateByName(name string, templatefilter string, opts ...OptionFunc) (*VnfTemplate, int, error) { + id, count, err := s.GetVnfTemplateID(name, templatefilter, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetVnfTemplateByID(id, templatefilter, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VirtualNetworkFunctionsService) GetVnfTemplateByID(id string, templatefilter string, opts ...OptionFunc) (*VnfTemplate, int, error) { + p := &ListVnfTemplatesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + p.p["templatefilter"] = templatefilter + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListVnfTemplates(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.VnfTemplates[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for VnfTemplate UUID: %s!", id) +} + +// List all public, private, and privileged VNF templates. +func (s *VirtualNetworkFunctionsService) ListVnfTemplates(p *ListVnfTemplatesParams) (*ListVnfTemplatesResponse, error) { + resp, err := s.cs.newRequest("listVnfTemplates", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListVnfTemplatesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListVnfTemplatesResponse struct { + Count int `json:"count"` + VnfTemplates []*VnfTemplate `json:"vnftemplate"` +} + +type VnfTemplate struct { + Account string `json:"account"` + Accountid string `json:"accountid"` + Arch string `json:"arch"` + Bits int `json:"bits"` + Bootable bool `json:"bootable"` + Checksum string `json:"checksum"` + Childtemplates []interface{} `json:"childtemplates"` + Created string `json:"created"` + CrossZones bool `json:"crossZones"` + Deployasis bool `json:"deployasis"` + Deployasisdetails map[string]string `json:"deployasisdetails"` + Details map[string]string `json:"details"` + Directdownload bool `json:"directdownload"` + Displaytext string `json:"displaytext"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + 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 interface{} `json:"icon"` + Id string `json:"id"` + Isdynamicallyscalable bool `json:"isdynamicallyscalable"` + Isextractable bool `json:"isextractable"` + Isfeatured bool `json:"isfeatured"` + Ispublic bool `json:"ispublic"` + Isready bool `json:"isready"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Ostypeid string `json:"ostypeid"` + Ostypename string `json:"ostypename"` + Parenttemplateid string `json:"parenttemplateid"` + Passwordenabled bool `json:"passwordenabled"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Removed string `json:"removed"` + Requireshvm bool `json:"requireshvm"` + Size int64 `json:"size"` + Sourcetemplateid string `json:"sourcetemplateid"` + Sshkeyenabled bool `json:"sshkeyenabled"` + Status string `json:"status"` + Tags []Tags `json:"tags"` + Templatetag string `json:"templatetag"` + Templatetype string `json:"templatetype"` + Url string `json:"url"` + Userdataid string `json:"userdataid"` + Userdataname string `json:"userdataname"` + Userdataparams string `json:"userdataparams"` + Userdatapolicy string `json:"userdatapolicy"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +func (r *VnfTemplate) 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 VnfTemplate + return json.Unmarshal(b, (*alias)(r)) +} + +type RegisterVnfTemplateParams struct { + p map[string]interface{} +} + +func (p *RegisterVnfTemplateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["arch"]; found { + u.Set("arch", v.(string)) + } + if v, found := p.p["bits"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("bits", vv) + } + if v, found := p.p["checksum"]; found { + u.Set("checksum", v.(string)) + } + if v, found := p.p["deployasis"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("deployasis", 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["directdownload"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("directdownload", vv) + } + if v, found := p.p["displaytext"]; found { + u.Set("displaytext", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["format"]; found { + u.Set("format", v.(string)) + } + if v, found := p.p["hypervisor"]; found { + u.Set("hypervisor", v.(string)) + } + if v, found := p.p["isdynamicallyscalable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isdynamicallyscalable", vv) + } + if v, found := p.p["isextractable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isextractable", vv) + } + if v, found := p.p["isfeatured"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isfeatured", vv) + } + if v, found := p.p["ispublic"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("ispublic", vv) + } + if v, found := p.p["isrouting"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrouting", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["ostypeid"]; found { + u.Set("ostypeid", v.(string)) + } + if v, found := p.p["passwordenabled"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("passwordenabled", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["requireshvm"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("requireshvm", vv) + } + if v, found := p.p["sshkeyenabled"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("sshkeyenabled", vv) + } + if v, found := p.p["templatetag"]; found { + u.Set("templatetag", v.(string)) + } + if v, found := p.p["templatetype"]; found { + u.Set("templatetype", v.(string)) + } + if v, found := p.p["url"]; found { + u.Set("url", v.(string)) + } + if v, found := p.p["vnfdetails"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("vnfdetails[%d].key", i), k) + u.Set(fmt.Sprintf("vnfdetails[%d].value", i), m[k]) + } + } + if v, found := p.p["vnfnics"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("vnfnics[%d].key", i), k) + u.Set(fmt.Sprintf("vnfnics[%d].value", i), m[k]) + } + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + if v, found := p.p["zoneids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("zoneids", vv) + } + return u +} + +func (p *RegisterVnfTemplateParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *RegisterVnfTemplateParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *RegisterVnfTemplateParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetArch(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["arch"] = v +} + +func (p *RegisterVnfTemplateParams) ResetArch() { + if p.p != nil && p.p["arch"] != nil { + delete(p.p, "arch") + } +} + +func (p *RegisterVnfTemplateParams) GetArch() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["arch"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetBits(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bits"] = v +} + +func (p *RegisterVnfTemplateParams) ResetBits() { + if p.p != nil && p.p["bits"] != nil { + delete(p.p, "bits") + } +} + +func (p *RegisterVnfTemplateParams) GetBits() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bits"].(int) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetChecksum(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["checksum"] = v +} + +func (p *RegisterVnfTemplateParams) ResetChecksum() { + if p.p != nil && p.p["checksum"] != nil { + delete(p.p, "checksum") + } +} + +func (p *RegisterVnfTemplateParams) GetChecksum() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["checksum"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetDeployasis(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["deployasis"] = v +} + +func (p *RegisterVnfTemplateParams) ResetDeployasis() { + if p.p != nil && p.p["deployasis"] != nil { + delete(p.p, "deployasis") + } +} + +func (p *RegisterVnfTemplateParams) GetDeployasis() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["deployasis"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetDetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *RegisterVnfTemplateParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *RegisterVnfTemplateParams) 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 *RegisterVnfTemplateParams) SetDirectdownload(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["directdownload"] = v +} + +func (p *RegisterVnfTemplateParams) ResetDirectdownload() { + if p.p != nil && p.p["directdownload"] != nil { + delete(p.p, "directdownload") + } +} + +func (p *RegisterVnfTemplateParams) GetDirectdownload() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["directdownload"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetDisplaytext(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displaytext"] = v +} + +func (p *RegisterVnfTemplateParams) ResetDisplaytext() { + if p.p != nil && p.p["displaytext"] != nil { + delete(p.p, "displaytext") + } +} + +func (p *RegisterVnfTemplateParams) GetDisplaytext() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displaytext"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *RegisterVnfTemplateParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *RegisterVnfTemplateParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetFormat(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["format"] = v +} + +func (p *RegisterVnfTemplateParams) ResetFormat() { + if p.p != nil && p.p["format"] != nil { + delete(p.p, "format") + } +} + +func (p *RegisterVnfTemplateParams) GetFormat() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["format"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetHypervisor(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hypervisor"] = v +} + +func (p *RegisterVnfTemplateParams) ResetHypervisor() { + if p.p != nil && p.p["hypervisor"] != nil { + delete(p.p, "hypervisor") + } +} + +func (p *RegisterVnfTemplateParams) GetHypervisor() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hypervisor"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetIsdynamicallyscalable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isdynamicallyscalable"] = v +} + +func (p *RegisterVnfTemplateParams) ResetIsdynamicallyscalable() { + if p.p != nil && p.p["isdynamicallyscalable"] != nil { + delete(p.p, "isdynamicallyscalable") + } +} + +func (p *RegisterVnfTemplateParams) GetIsdynamicallyscalable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isdynamicallyscalable"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetIsextractable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isextractable"] = v +} + +func (p *RegisterVnfTemplateParams) ResetIsextractable() { + if p.p != nil && p.p["isextractable"] != nil { + delete(p.p, "isextractable") + } +} + +func (p *RegisterVnfTemplateParams) GetIsextractable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isextractable"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetIsfeatured(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isfeatured"] = v +} + +func (p *RegisterVnfTemplateParams) ResetIsfeatured() { + if p.p != nil && p.p["isfeatured"] != nil { + delete(p.p, "isfeatured") + } +} + +func (p *RegisterVnfTemplateParams) GetIsfeatured() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isfeatured"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetIspublic(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ispublic"] = v +} + +func (p *RegisterVnfTemplateParams) ResetIspublic() { + if p.p != nil && p.p["ispublic"] != nil { + delete(p.p, "ispublic") + } +} + +func (p *RegisterVnfTemplateParams) GetIspublic() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ispublic"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetIsrouting(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrouting"] = v +} + +func (p *RegisterVnfTemplateParams) ResetIsrouting() { + if p.p != nil && p.p["isrouting"] != nil { + delete(p.p, "isrouting") + } +} + +func (p *RegisterVnfTemplateParams) GetIsrouting() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrouting"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *RegisterVnfTemplateParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *RegisterVnfTemplateParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetOstypeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ostypeid"] = v +} + +func (p *RegisterVnfTemplateParams) ResetOstypeid() { + if p.p != nil && p.p["ostypeid"] != nil { + delete(p.p, "ostypeid") + } +} + +func (p *RegisterVnfTemplateParams) GetOstypeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ostypeid"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetPasswordenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["passwordenabled"] = v +} + +func (p *RegisterVnfTemplateParams) ResetPasswordenabled() { + if p.p != nil && p.p["passwordenabled"] != nil { + delete(p.p, "passwordenabled") + } +} + +func (p *RegisterVnfTemplateParams) GetPasswordenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["passwordenabled"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *RegisterVnfTemplateParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *RegisterVnfTemplateParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetRequireshvm(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["requireshvm"] = v +} + +func (p *RegisterVnfTemplateParams) ResetRequireshvm() { + if p.p != nil && p.p["requireshvm"] != nil { + delete(p.p, "requireshvm") + } +} + +func (p *RegisterVnfTemplateParams) GetRequireshvm() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["requireshvm"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetSshkeyenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sshkeyenabled"] = v +} + +func (p *RegisterVnfTemplateParams) ResetSshkeyenabled() { + if p.p != nil && p.p["sshkeyenabled"] != nil { + delete(p.p, "sshkeyenabled") + } +} + +func (p *RegisterVnfTemplateParams) GetSshkeyenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sshkeyenabled"].(bool) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetTemplatetag(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templatetag"] = v +} + +func (p *RegisterVnfTemplateParams) ResetTemplatetag() { + if p.p != nil && p.p["templatetag"] != nil { + delete(p.p, "templatetag") + } +} + +func (p *RegisterVnfTemplateParams) GetTemplatetag() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templatetag"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetTemplatetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templatetype"] = v +} + +func (p *RegisterVnfTemplateParams) ResetTemplatetype() { + if p.p != nil && p.p["templatetype"] != nil { + delete(p.p, "templatetype") + } +} + +func (p *RegisterVnfTemplateParams) GetTemplatetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templatetype"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetUrl(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["url"] = v +} + +func (p *RegisterVnfTemplateParams) ResetUrl() { + if p.p != nil && p.p["url"] != nil { + delete(p.p, "url") + } +} + +func (p *RegisterVnfTemplateParams) GetUrl() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["url"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetVnfdetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vnfdetails"] = v +} + +func (p *RegisterVnfTemplateParams) ResetVnfdetails() { + if p.p != nil && p.p["vnfdetails"] != nil { + delete(p.p, "vnfdetails") + } +} + +func (p *RegisterVnfTemplateParams) GetVnfdetails() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vnfdetails"].(map[string]string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetVnfnics(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vnfnics"] = v +} + +func (p *RegisterVnfTemplateParams) ResetVnfnics() { + if p.p != nil && p.p["vnfnics"] != nil { + delete(p.p, "vnfnics") + } +} + +func (p *RegisterVnfTemplateParams) GetVnfnics() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vnfnics"].(map[string]string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *RegisterVnfTemplateParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *RegisterVnfTemplateParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +func (p *RegisterVnfTemplateParams) SetZoneids(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneids"] = v +} + +func (p *RegisterVnfTemplateParams) ResetZoneids() { + if p.p != nil && p.p["zoneids"] != nil { + delete(p.p, "zoneids") + } +} + +func (p *RegisterVnfTemplateParams) GetZoneids() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneids"].([]string) + return value, ok +} + +// You should always use this function to get a new RegisterVnfTemplateParams instance, +// as then you are sure you have configured all required params +func (s *VirtualNetworkFunctionsService) NewRegisterVnfTemplateParams(format string, hypervisor string, name string, url string) *RegisterVnfTemplateParams { + p := &RegisterVnfTemplateParams{} + p.p = make(map[string]interface{}) + p.p["format"] = format + p.p["hypervisor"] = hypervisor + p.p["name"] = name + p.p["url"] = url + return p +} + +// Registers an existing VNF template into the CloudStack cloud. +func (s *VirtualNetworkFunctionsService) RegisterVnfTemplate(p *RegisterVnfTemplateParams) (*RegisterVnfTemplateResponse, error) { + resp, err := s.cs.newRequest("registerVnfTemplate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RegisterVnfTemplateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type RegisterVnfTemplateResponse struct { + Account string `json:"account"` + Accountid string `json:"accountid"` + Arch string `json:"arch"` + Bits int `json:"bits"` + Bootable bool `json:"bootable"` + Checksum string `json:"checksum"` + Childtemplates []interface{} `json:"childtemplates"` + Created string `json:"created"` + CrossZones bool `json:"crossZones"` + Deployasis bool `json:"deployasis"` + Deployasisdetails map[string]string `json:"deployasisdetails"` + Details map[string]string `json:"details"` + Directdownload bool `json:"directdownload"` + Displaytext string `json:"displaytext"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + 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 interface{} `json:"icon"` + Id string `json:"id"` + Isdynamicallyscalable bool `json:"isdynamicallyscalable"` + Isextractable bool `json:"isextractable"` + Isfeatured bool `json:"isfeatured"` + Ispublic bool `json:"ispublic"` + Isready bool `json:"isready"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Ostypeid string `json:"ostypeid"` + Ostypename string `json:"ostypename"` + Parenttemplateid string `json:"parenttemplateid"` + Passwordenabled bool `json:"passwordenabled"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Removed string `json:"removed"` + Requireshvm bool `json:"requireshvm"` + Size int64 `json:"size"` + Sourcetemplateid string `json:"sourcetemplateid"` + Sshkeyenabled bool `json:"sshkeyenabled"` + Status string `json:"status"` + Tags []Tags `json:"tags"` + Templatetag string `json:"templatetag"` + Templatetype string `json:"templatetype"` + Url string `json:"url"` + Userdataid string `json:"userdataid"` + Userdataname string `json:"userdataname"` + Userdataparams string `json:"userdataparams"` + Userdatapolicy string `json:"userdatapolicy"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +func (r *RegisterVnfTemplateResponse) 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 RegisterVnfTemplateResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type UpdateVnfTemplateParams struct { + p map[string]interface{} +} + +func (p *UpdateVnfTemplateParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["arch"]; found { + u.Set("arch", v.(string)) + } + if v, found := p.p["bootable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("bootable", vv) + } + if v, found := p.p["cleanupdetails"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("cleanupdetails", vv) + } + if v, found := p.p["cleanupvnfdetails"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("cleanupvnfdetails", vv) + } + if v, found := p.p["cleanupvnfnics"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("cleanupvnfnics", 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["displaytext"]; found { + u.Set("displaytext", v.(string)) + } + if v, found := p.p["format"]; found { + u.Set("format", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["isdynamicallyscalable"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isdynamicallyscalable", vv) + } + if v, found := p.p["isrouting"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrouting", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["ostypeid"]; found { + u.Set("ostypeid", v.(string)) + } + if v, found := p.p["passwordenabled"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("passwordenabled", vv) + } + if v, found := p.p["requireshvm"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("requireshvm", vv) + } + if v, found := p.p["sortkey"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("sortkey", vv) + } + if v, found := p.p["sshkeyenabled"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("sshkeyenabled", vv) + } + if v, found := p.p["templatetag"]; found { + u.Set("templatetag", v.(string)) + } + if v, found := p.p["templatetype"]; found { + u.Set("templatetype", v.(string)) + } + if v, found := p.p["vnfdetails"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("vnfdetails[%d].key", i), k) + u.Set(fmt.Sprintf("vnfdetails[%d].value", i), m[k]) + } + } + if v, found := p.p["vnfnics"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("vnfnics[%d].key", i), k) + u.Set(fmt.Sprintf("vnfnics[%d].value", i), m[k]) + } + } + return u +} + +func (p *UpdateVnfTemplateParams) SetArch(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["arch"] = v +} + +func (p *UpdateVnfTemplateParams) ResetArch() { + if p.p != nil && p.p["arch"] != nil { + delete(p.p, "arch") + } +} + +func (p *UpdateVnfTemplateParams) GetArch() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["arch"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetBootable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["bootable"] = v +} + +func (p *UpdateVnfTemplateParams) ResetBootable() { + if p.p != nil && p.p["bootable"] != nil { + delete(p.p, "bootable") + } +} + +func (p *UpdateVnfTemplateParams) GetBootable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["bootable"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetCleanupdetails(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cleanupdetails"] = v +} + +func (p *UpdateVnfTemplateParams) ResetCleanupdetails() { + if p.p != nil && p.p["cleanupdetails"] != nil { + delete(p.p, "cleanupdetails") + } +} + +func (p *UpdateVnfTemplateParams) GetCleanupdetails() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cleanupdetails"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetCleanupvnfdetails(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cleanupvnfdetails"] = v +} + +func (p *UpdateVnfTemplateParams) ResetCleanupvnfdetails() { + if p.p != nil && p.p["cleanupvnfdetails"] != nil { + delete(p.p, "cleanupvnfdetails") + } +} + +func (p *UpdateVnfTemplateParams) GetCleanupvnfdetails() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cleanupvnfdetails"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetCleanupvnfnics(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["cleanupvnfnics"] = v +} + +func (p *UpdateVnfTemplateParams) ResetCleanupvnfnics() { + if p.p != nil && p.p["cleanupvnfnics"] != nil { + delete(p.p, "cleanupvnfnics") + } +} + +func (p *UpdateVnfTemplateParams) GetCleanupvnfnics() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["cleanupvnfnics"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetDetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["details"] = v +} + +func (p *UpdateVnfTemplateParams) ResetDetails() { + if p.p != nil && p.p["details"] != nil { + delete(p.p, "details") + } +} + +func (p *UpdateVnfTemplateParams) 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 *UpdateVnfTemplateParams) SetDisplaytext(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displaytext"] = v +} + +func (p *UpdateVnfTemplateParams) ResetDisplaytext() { + if p.p != nil && p.p["displaytext"] != nil { + delete(p.p, "displaytext") + } +} + +func (p *UpdateVnfTemplateParams) GetDisplaytext() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displaytext"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetFormat(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["format"] = v +} + +func (p *UpdateVnfTemplateParams) ResetFormat() { + if p.p != nil && p.p["format"] != nil { + delete(p.p, "format") + } +} + +func (p *UpdateVnfTemplateParams) GetFormat() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["format"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateVnfTemplateParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateVnfTemplateParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetIsdynamicallyscalable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isdynamicallyscalable"] = v +} + +func (p *UpdateVnfTemplateParams) ResetIsdynamicallyscalable() { + if p.p != nil && p.p["isdynamicallyscalable"] != nil { + delete(p.p, "isdynamicallyscalable") + } +} + +func (p *UpdateVnfTemplateParams) GetIsdynamicallyscalable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isdynamicallyscalable"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetIsrouting(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrouting"] = v +} + +func (p *UpdateVnfTemplateParams) ResetIsrouting() { + if p.p != nil && p.p["isrouting"] != nil { + delete(p.p, "isrouting") + } +} + +func (p *UpdateVnfTemplateParams) GetIsrouting() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrouting"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *UpdateVnfTemplateParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *UpdateVnfTemplateParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetOstypeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ostypeid"] = v +} + +func (p *UpdateVnfTemplateParams) ResetOstypeid() { + if p.p != nil && p.p["ostypeid"] != nil { + delete(p.p, "ostypeid") + } +} + +func (p *UpdateVnfTemplateParams) GetOstypeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ostypeid"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetPasswordenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["passwordenabled"] = v +} + +func (p *UpdateVnfTemplateParams) ResetPasswordenabled() { + if p.p != nil && p.p["passwordenabled"] != nil { + delete(p.p, "passwordenabled") + } +} + +func (p *UpdateVnfTemplateParams) GetPasswordenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["passwordenabled"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetRequireshvm(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["requireshvm"] = v +} + +func (p *UpdateVnfTemplateParams) ResetRequireshvm() { + if p.p != nil && p.p["requireshvm"] != nil { + delete(p.p, "requireshvm") + } +} + +func (p *UpdateVnfTemplateParams) GetRequireshvm() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["requireshvm"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetSortkey(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sortkey"] = v +} + +func (p *UpdateVnfTemplateParams) ResetSortkey() { + if p.p != nil && p.p["sortkey"] != nil { + delete(p.p, "sortkey") + } +} + +func (p *UpdateVnfTemplateParams) GetSortkey() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sortkey"].(int) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetSshkeyenabled(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sshkeyenabled"] = v +} + +func (p *UpdateVnfTemplateParams) ResetSshkeyenabled() { + if p.p != nil && p.p["sshkeyenabled"] != nil { + delete(p.p, "sshkeyenabled") + } +} + +func (p *UpdateVnfTemplateParams) GetSshkeyenabled() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sshkeyenabled"].(bool) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetTemplatetag(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templatetag"] = v +} + +func (p *UpdateVnfTemplateParams) ResetTemplatetag() { + if p.p != nil && p.p["templatetag"] != nil { + delete(p.p, "templatetag") + } +} + +func (p *UpdateVnfTemplateParams) GetTemplatetag() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templatetag"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetTemplatetype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["templatetype"] = v +} + +func (p *UpdateVnfTemplateParams) ResetTemplatetype() { + if p.p != nil && p.p["templatetype"] != nil { + delete(p.p, "templatetype") + } +} + +func (p *UpdateVnfTemplateParams) GetTemplatetype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["templatetype"].(string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetVnfdetails(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vnfdetails"] = v +} + +func (p *UpdateVnfTemplateParams) ResetVnfdetails() { + if p.p != nil && p.p["vnfdetails"] != nil { + delete(p.p, "vnfdetails") + } +} + +func (p *UpdateVnfTemplateParams) GetVnfdetails() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vnfdetails"].(map[string]string) + return value, ok +} + +func (p *UpdateVnfTemplateParams) SetVnfnics(v map[string]string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["vnfnics"] = v +} + +func (p *UpdateVnfTemplateParams) ResetVnfnics() { + if p.p != nil && p.p["vnfnics"] != nil { + delete(p.p, "vnfnics") + } +} + +func (p *UpdateVnfTemplateParams) GetVnfnics() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["vnfnics"].(map[string]string) + return value, ok +} + +// You should always use this function to get a new UpdateVnfTemplateParams instance, +// as then you are sure you have configured all required params +func (s *VirtualNetworkFunctionsService) NewUpdateVnfTemplateParams(id string) *UpdateVnfTemplateParams { + p := &UpdateVnfTemplateParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Updates a template to VNF template or attributes of a VNF template. +func (s *VirtualNetworkFunctionsService) UpdateVnfTemplate(p *UpdateVnfTemplateParams) (*UpdateVnfTemplateResponse, error) { + resp, err := s.cs.newRequest("updateVnfTemplate", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateVnfTemplateResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type UpdateVnfTemplateResponse struct { + Account string `json:"account"` + Accountid string `json:"accountid"` + Arch string `json:"arch"` + Bits int `json:"bits"` + Bootable bool `json:"bootable"` + Checksum string `json:"checksum"` + Childtemplates []interface{} `json:"childtemplates"` + Created string `json:"created"` + CrossZones bool `json:"crossZones"` + Deployasis bool `json:"deployasis"` + Deployasisdetails map[string]string `json:"deployasisdetails"` + Details map[string]string `json:"details"` + Directdownload bool `json:"directdownload"` + Displaytext string `json:"displaytext"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + 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 interface{} `json:"icon"` + Id string `json:"id"` + Isdynamicallyscalable bool `json:"isdynamicallyscalable"` + Isextractable bool `json:"isextractable"` + Isfeatured bool `json:"isfeatured"` + Ispublic bool `json:"ispublic"` + Isready bool `json:"isready"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Ostypeid string `json:"ostypeid"` + Ostypename string `json:"ostypename"` + Parenttemplateid string `json:"parenttemplateid"` + Passwordenabled bool `json:"passwordenabled"` + Physicalsize int64 `json:"physicalsize"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Removed string `json:"removed"` + Requireshvm bool `json:"requireshvm"` + Size int64 `json:"size"` + Sourcetemplateid string `json:"sourcetemplateid"` + Sshkeyenabled bool `json:"sshkeyenabled"` + Status string `json:"status"` + Tags []Tags `json:"tags"` + Templatetag string `json:"templatetag"` + Templatetype string `json:"templatetype"` + Url string `json:"url"` + Userdataid string `json:"userdataid"` + Userdataname string `json:"userdataname"` + Userdataparams string `json:"userdataparams"` + Userdatapolicy string `json:"userdatapolicy"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +func (r *UpdateVnfTemplateResponse) 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 UpdateVnfTemplateResponse + return json.Unmarshal(b, (*alias)(r)) +} diff --git a/cloudstack/VirtualNetworkFunctionsService_mock.go b/cloudstack/VirtualNetworkFunctionsService_mock.go new file mode 100644 index 00000000..fe286d85 --- /dev/null +++ b/cloudstack/VirtualNetworkFunctionsService_mock.go @@ -0,0 +1,359 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/VirtualNetworkFunctionsService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VirtualNetworkFunctionsService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VirtualNetworkFunctionsService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockVirtualNetworkFunctionsServiceIface is a mock of VirtualNetworkFunctionsServiceIface interface. +type MockVirtualNetworkFunctionsServiceIface struct { + ctrl *gomock.Controller + recorder *MockVirtualNetworkFunctionsServiceIfaceMockRecorder + isgomock struct{} +} + +// MockVirtualNetworkFunctionsServiceIfaceMockRecorder is the mock recorder for MockVirtualNetworkFunctionsServiceIface. +type MockVirtualNetworkFunctionsServiceIfaceMockRecorder struct { + mock *MockVirtualNetworkFunctionsServiceIface +} + +// NewMockVirtualNetworkFunctionsServiceIface creates a new mock instance. +func NewMockVirtualNetworkFunctionsServiceIface(ctrl *gomock.Controller) *MockVirtualNetworkFunctionsServiceIface { + mock := &MockVirtualNetworkFunctionsServiceIface{ctrl: ctrl} + mock.recorder = &MockVirtualNetworkFunctionsServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockVirtualNetworkFunctionsServiceIface) EXPECT() *MockVirtualNetworkFunctionsServiceIfaceMockRecorder { + return m.recorder +} + +// DeleteVnfTemplate mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) DeleteVnfTemplate(p *DeleteVnfTemplateParams) (*DeleteVnfTemplateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteVnfTemplate", p) + ret0, _ := ret[0].(*DeleteVnfTemplateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteVnfTemplate indicates an expected call of DeleteVnfTemplate. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) DeleteVnfTemplate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVnfTemplate", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).DeleteVnfTemplate), p) +} + +// DeployVnfAppliance mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) DeployVnfAppliance(p *DeployVnfApplianceParams) (*DeployVnfApplianceResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeployVnfAppliance", p) + ret0, _ := ret[0].(*DeployVnfApplianceResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeployVnfAppliance indicates an expected call of DeployVnfAppliance. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) DeployVnfAppliance(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeployVnfAppliance", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).DeployVnfAppliance), p) +} + +// GetVnfApplianceByID mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) GetVnfApplianceByID(id string, opts ...OptionFunc) (*VnfAppliance, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetVnfApplianceByID", varargs...) + ret0, _ := ret[0].(*VnfAppliance) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetVnfApplianceByID indicates an expected call of GetVnfApplianceByID. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) GetVnfApplianceByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVnfApplianceByID", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).GetVnfApplianceByID), varargs...) +} + +// GetVnfApplianceByName mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) GetVnfApplianceByName(name string, opts ...OptionFunc) (*VnfAppliance, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetVnfApplianceByName", varargs...) + ret0, _ := ret[0].(*VnfAppliance) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetVnfApplianceByName indicates an expected call of GetVnfApplianceByName. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) GetVnfApplianceByName(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVnfApplianceByName", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).GetVnfApplianceByName), varargs...) +} + +// GetVnfApplianceID mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) GetVnfApplianceID(name string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetVnfApplianceID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetVnfApplianceID indicates an expected call of GetVnfApplianceID. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) GetVnfApplianceID(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVnfApplianceID", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).GetVnfApplianceID), varargs...) +} + +// GetVnfTemplateByID mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) GetVnfTemplateByID(id, templatefilter string, opts ...OptionFunc) (*VnfTemplate, int, error) { + m.ctrl.T.Helper() + varargs := []any{id, templatefilter} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetVnfTemplateByID", varargs...) + ret0, _ := ret[0].(*VnfTemplate) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetVnfTemplateByID indicates an expected call of GetVnfTemplateByID. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) GetVnfTemplateByID(id, templatefilter any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id, templatefilter}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVnfTemplateByID", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).GetVnfTemplateByID), varargs...) +} + +// GetVnfTemplateByName mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) GetVnfTemplateByName(name, templatefilter string, opts ...OptionFunc) (*VnfTemplate, int, error) { + m.ctrl.T.Helper() + varargs := []any{name, templatefilter} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetVnfTemplateByName", varargs...) + ret0, _ := ret[0].(*VnfTemplate) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetVnfTemplateByName indicates an expected call of GetVnfTemplateByName. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) GetVnfTemplateByName(name, templatefilter any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name, templatefilter}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVnfTemplateByName", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).GetVnfTemplateByName), varargs...) +} + +// GetVnfTemplateID mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) GetVnfTemplateID(name, templatefilter string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{name, templatefilter} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetVnfTemplateID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetVnfTemplateID indicates an expected call of GetVnfTemplateID. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) GetVnfTemplateID(name, templatefilter any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name, templatefilter}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVnfTemplateID", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).GetVnfTemplateID), varargs...) +} + +// ListVnfAppliances mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) ListVnfAppliances(p *ListVnfAppliancesParams) (*ListVnfAppliancesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListVnfAppliances", p) + ret0, _ := ret[0].(*ListVnfAppliancesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListVnfAppliances indicates an expected call of ListVnfAppliances. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) ListVnfAppliances(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVnfAppliances", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).ListVnfAppliances), p) +} + +// ListVnfTemplates mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) ListVnfTemplates(p *ListVnfTemplatesParams) (*ListVnfTemplatesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListVnfTemplates", p) + ret0, _ := ret[0].(*ListVnfTemplatesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListVnfTemplates indicates an expected call of ListVnfTemplates. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) ListVnfTemplates(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVnfTemplates", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).ListVnfTemplates), p) +} + +// NewDeleteVnfTemplateParams mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) NewDeleteVnfTemplateParams(id string) *DeleteVnfTemplateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteVnfTemplateParams", id) + ret0, _ := ret[0].(*DeleteVnfTemplateParams) + return ret0 +} + +// NewDeleteVnfTemplateParams indicates an expected call of NewDeleteVnfTemplateParams. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) NewDeleteVnfTemplateParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVnfTemplateParams", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).NewDeleteVnfTemplateParams), id) +} + +// NewDeployVnfApplianceParams mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) NewDeployVnfApplianceParams(serviceofferingid, templateid, zoneid string) *DeployVnfApplianceParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeployVnfApplianceParams", serviceofferingid, templateid, zoneid) + ret0, _ := ret[0].(*DeployVnfApplianceParams) + return ret0 +} + +// NewDeployVnfApplianceParams indicates an expected call of NewDeployVnfApplianceParams. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) NewDeployVnfApplianceParams(serviceofferingid, templateid, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeployVnfApplianceParams", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).NewDeployVnfApplianceParams), serviceofferingid, templateid, zoneid) +} + +// NewListVnfAppliancesParams mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) NewListVnfAppliancesParams() *ListVnfAppliancesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListVnfAppliancesParams") + ret0, _ := ret[0].(*ListVnfAppliancesParams) + return ret0 +} + +// NewListVnfAppliancesParams indicates an expected call of NewListVnfAppliancesParams. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) NewListVnfAppliancesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVnfAppliancesParams", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).NewListVnfAppliancesParams)) +} + +// NewListVnfTemplatesParams mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) NewListVnfTemplatesParams(templatefilter string) *ListVnfTemplatesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListVnfTemplatesParams", templatefilter) + ret0, _ := ret[0].(*ListVnfTemplatesParams) + return ret0 +} + +// NewListVnfTemplatesParams indicates an expected call of NewListVnfTemplatesParams. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) NewListVnfTemplatesParams(templatefilter any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVnfTemplatesParams", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).NewListVnfTemplatesParams), templatefilter) +} + +// NewRegisterVnfTemplateParams mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) NewRegisterVnfTemplateParams(format, hypervisor, name, url string) *RegisterVnfTemplateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewRegisterVnfTemplateParams", format, hypervisor, name, url) + ret0, _ := ret[0].(*RegisterVnfTemplateParams) + return ret0 +} + +// NewRegisterVnfTemplateParams indicates an expected call of NewRegisterVnfTemplateParams. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) NewRegisterVnfTemplateParams(format, hypervisor, name, url any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRegisterVnfTemplateParams", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).NewRegisterVnfTemplateParams), format, hypervisor, name, url) +} + +// NewUpdateVnfTemplateParams mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) NewUpdateVnfTemplateParams(id string) *UpdateVnfTemplateParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateVnfTemplateParams", id) + ret0, _ := ret[0].(*UpdateVnfTemplateParams) + return ret0 +} + +// NewUpdateVnfTemplateParams indicates an expected call of NewUpdateVnfTemplateParams. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) NewUpdateVnfTemplateParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVnfTemplateParams", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).NewUpdateVnfTemplateParams), id) +} + +// RegisterVnfTemplate mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) RegisterVnfTemplate(p *RegisterVnfTemplateParams) (*RegisterVnfTemplateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RegisterVnfTemplate", p) + ret0, _ := ret[0].(*RegisterVnfTemplateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RegisterVnfTemplate indicates an expected call of RegisterVnfTemplate. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) RegisterVnfTemplate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterVnfTemplate", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).RegisterVnfTemplate), p) +} + +// UpdateVnfTemplate mocks base method. +func (m *MockVirtualNetworkFunctionsServiceIface) UpdateVnfTemplate(p *UpdateVnfTemplateParams) (*UpdateVnfTemplateResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateVnfTemplate", p) + ret0, _ := ret[0].(*UpdateVnfTemplateResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateVnfTemplate indicates an expected call of UpdateVnfTemplate. +func (mr *MockVirtualNetworkFunctionsServiceIfaceMockRecorder) UpdateVnfTemplate(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVnfTemplate", reflect.TypeOf((*MockVirtualNetworkFunctionsServiceIface)(nil).UpdateVnfTemplate), p) +} diff --git a/cloudstack/VolumeService.go b/cloudstack/VolumeService.go index 45cd2fe4..9c8cc4a0 100644 --- a/cloudstack/VolumeService.go +++ b/cloudstack/VolumeService.go @@ -30,6 +30,10 @@ import ( type VolumeServiceIface interface { AttachVolume(p *AttachVolumeParams) (*AttachVolumeResponse, error) NewAttachVolumeParams(id string, virtualmachineid string) *AttachVolumeParams + ChangeOfferingForVolume(p *ChangeOfferingForVolumeParams) (*ChangeOfferingForVolumeResponse, error) + NewChangeOfferingForVolumeParams(diskofferingid string, id string) *ChangeOfferingForVolumeParams + CheckVolume(p *CheckVolumeParams) (*CheckVolumeResponse, error) + NewCheckVolumeParams(id string) *CheckVolumeParams CreateVolume(p *CreateVolumeParams) (*CreateVolumeResponse, error) NewCreateVolumeParams() *CreateVolumeParams DeleteVolume(p *DeleteVolumeParams) (*DeleteVolumeResponse, error) @@ -42,17 +46,22 @@ type VolumeServiceIface interface { NewExtractVolumeParams(id string, mode string, zoneid string) *ExtractVolumeParams GetPathForVolume(p *GetPathForVolumeParams) (*GetPathForVolumeResponse, error) NewGetPathForVolumeParams(volumeid string) *GetPathForVolumeParams - GetSolidFireVolumeSize(p *GetSolidFireVolumeSizeParams) (*GetSolidFireVolumeSizeResponse, error) - NewGetSolidFireVolumeSizeParams(volumeid string) *GetSolidFireVolumeSizeParams GetUploadParamsForVolume(p *GetUploadParamsForVolumeParams) (*GetUploadParamsForVolumeResponse, error) NewGetUploadParamsForVolumeParams(format string, name string, zoneid string) *GetUploadParamsForVolumeParams GetVolumeiScsiName(p *GetVolumeiScsiNameParams) (*GetVolumeiScsiNameResponse, error) NewGetVolumeiScsiNameParams(volumeid string) *GetVolumeiScsiNameParams + ImportVolume(p *ImportVolumeParams) (*ImportVolumeResponse, error) + NewImportVolumeParams(path string, storageid string) *ImportVolumeParams + ListElastistorVolume(p *ListElastistorVolumeParams) (*ListElastistorVolumeResponse, error) + NewListElastistorVolumeParams(id string) *ListElastistorVolumeParams + GetElastistorVolumeByID(id string, opts ...OptionFunc) (*ElastistorVolume, int, error) ListVolumes(p *ListVolumesParams) (*ListVolumesResponse, error) NewListVolumesParams() *ListVolumesParams GetVolumeID(name string, opts ...OptionFunc) (string, int, error) GetVolumeByName(name string, opts ...OptionFunc) (*Volume, int, error) GetVolumeByID(id string, opts ...OptionFunc) (*Volume, int, error) + ListVolumesForImport(p *ListVolumesForImportParams) (*ListVolumesForImportResponse, error) + NewListVolumesForImportParams(storageid string) *ListVolumesForImportParams ListVolumesMetrics(p *ListVolumesMetricsParams) (*ListVolumesMetricsResponse, error) NewListVolumesMetricsParams() *ListVolumesMetricsParams GetVolumesMetricID(name string, opts ...OptionFunc) (string, int, error) @@ -64,12 +73,12 @@ type VolumeServiceIface interface { NewRecoverVolumeParams(id string) *RecoverVolumeParams ResizeVolume(p *ResizeVolumeParams) (*ResizeVolumeResponse, error) NewResizeVolumeParams(id string) *ResizeVolumeParams + UnmanageVolume(p *UnmanageVolumeParams) (*UnmanageVolumeResponse, error) + NewUnmanageVolumeParams(id string) *UnmanageVolumeParams UpdateVolume(p *UpdateVolumeParams) (*UpdateVolumeResponse, error) NewUpdateVolumeParams() *UpdateVolumeParams UploadVolume(p *UploadVolumeParams) (*UploadVolumeResponse, error) NewUploadVolumeParams(format string, name string, url string, zoneid string) *UploadVolumeParams - ChangeOfferingForVolume(p *ChangeOfferingForVolumeParams) (*ChangeOfferingForVolumeResponse, error) - NewChangeOfferingForVolumeParams(diskofferingid string, id string) *ChangeOfferingForVolumeParams ListVolumesUsageHistory(p *ListVolumesUsageHistoryParams) (*ListVolumesUsageHistoryResponse, error) NewListVolumesUsageHistoryParams() *ListVolumesUsageHistoryParams GetVolumesUsageHistoryID(name string, opts ...OptionFunc) (string, int, error) @@ -285,30 +294,24 @@ type AttachVolumeResponse struct { Zonename string `json:"zonename"` } -type CreateVolumeParams struct { +type ChangeOfferingForVolumeParams struct { p map[string]interface{} } -func (p *CreateVolumeParams) toURLValues() url.Values { +func (p *ChangeOfferingForVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) - } - if v, found := p.p["customid"]; found { - u.Set("customid", v.(string)) + if v, found := p.p["automigrate"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("automigrate", vv) } if v, found := p.p["diskofferingid"]; found { u.Set("diskofferingid", v.(string)) } - if v, found := p.p["displayvolume"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("displayvolume", vv) - } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } if v, found := p.p["maxiops"]; found { vv := strconv.FormatInt(v.(int64), 10) @@ -318,84 +321,52 @@ func (p *CreateVolumeParams) toURLValues() url.Values { vv := strconv.FormatInt(v.(int64), 10) u.Set("miniops", vv) } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) - } - if v, found := p.p["projectid"]; found { - u.Set("projectid", v.(string)) + if v, found := p.p["shrinkok"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("shrinkok", vv) } if v, found := p.p["size"]; found { vv := strconv.FormatInt(v.(int64), 10) u.Set("size", vv) } - if v, found := p.p["snapshotid"]; found { - u.Set("snapshotid", v.(string)) - } - if v, found := p.p["virtualmachineid"]; found { - u.Set("virtualmachineid", v.(string)) - } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) - } return u } -func (p *CreateVolumeParams) SetAccount(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["account"] = v -} - -func (p *CreateVolumeParams) ResetAccount() { - if p.p != nil && p.p["account"] != nil { - delete(p.p, "account") - } -} - -func (p *CreateVolumeParams) GetAccount() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["account"].(string) - return value, ok -} - -func (p *CreateVolumeParams) SetCustomid(v string) { +func (p *ChangeOfferingForVolumeParams) SetAutomigrate(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["customid"] = v + p.p["automigrate"] = v } -func (p *CreateVolumeParams) ResetCustomid() { - if p.p != nil && p.p["customid"] != nil { - delete(p.p, "customid") +func (p *ChangeOfferingForVolumeParams) ResetAutomigrate() { + if p.p != nil && p.p["automigrate"] != nil { + delete(p.p, "automigrate") } } -func (p *CreateVolumeParams) GetCustomid() (string, bool) { +func (p *ChangeOfferingForVolumeParams) GetAutomigrate() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["customid"].(string) + value, ok := p.p["automigrate"].(bool) return value, ok } -func (p *CreateVolumeParams) SetDiskofferingid(v string) { +func (p *ChangeOfferingForVolumeParams) SetDiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["diskofferingid"] = v } -func (p *CreateVolumeParams) ResetDiskofferingid() { +func (p *ChangeOfferingForVolumeParams) ResetDiskofferingid() { if p.p != nil && p.p["diskofferingid"] != nil { delete(p.p, "diskofferingid") } } -func (p *CreateVolumeParams) GetDiskofferingid() (string, bool) { +func (p *ChangeOfferingForVolumeParams) GetDiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -403,62 +374,41 @@ func (p *CreateVolumeParams) GetDiskofferingid() (string, bool) { return value, ok } -func (p *CreateVolumeParams) SetDisplayvolume(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["displayvolume"] = v -} - -func (p *CreateVolumeParams) ResetDisplayvolume() { - if p.p != nil && p.p["displayvolume"] != nil { - delete(p.p, "displayvolume") - } -} - -func (p *CreateVolumeParams) GetDisplayvolume() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["displayvolume"].(bool) - return value, ok -} - -func (p *CreateVolumeParams) SetDomainid(v string) { +func (p *ChangeOfferingForVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["domainid"] = v + p.p["id"] = v } -func (p *CreateVolumeParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") +func (p *ChangeOfferingForVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *CreateVolumeParams) GetDomainid() (string, bool) { +func (p *ChangeOfferingForVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["domainid"].(string) + value, ok := p.p["id"].(string) return value, ok } -func (p *CreateVolumeParams) SetMaxiops(v int64) { +func (p *ChangeOfferingForVolumeParams) SetMaxiops(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["maxiops"] = v } -func (p *CreateVolumeParams) ResetMaxiops() { +func (p *ChangeOfferingForVolumeParams) ResetMaxiops() { if p.p != nil && p.p["maxiops"] != nil { delete(p.p, "maxiops") } } -func (p *CreateVolumeParams) GetMaxiops() (int64, bool) { +func (p *ChangeOfferingForVolumeParams) GetMaxiops() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -466,20 +416,20 @@ func (p *CreateVolumeParams) GetMaxiops() (int64, bool) { return value, ok } -func (p *CreateVolumeParams) SetMiniops(v int64) { +func (p *ChangeOfferingForVolumeParams) SetMiniops(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["miniops"] = v } -func (p *CreateVolumeParams) ResetMiniops() { +func (p *ChangeOfferingForVolumeParams) ResetMiniops() { if p.p != nil && p.p["miniops"] != nil { delete(p.p, "miniops") } } -func (p *CreateVolumeParams) GetMiniops() (int64, bool) { +func (p *ChangeOfferingForVolumeParams) GetMiniops() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -487,62 +437,41 @@ func (p *CreateVolumeParams) GetMiniops() (int64, bool) { return value, ok } -func (p *CreateVolumeParams) SetName(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["name"] = v -} - -func (p *CreateVolumeParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") - } -} - -func (p *CreateVolumeParams) GetName() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["name"].(string) - return value, ok -} - -func (p *CreateVolumeParams) SetProjectid(v string) { +func (p *ChangeOfferingForVolumeParams) SetShrinkok(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["projectid"] = v + p.p["shrinkok"] = v } -func (p *CreateVolumeParams) ResetProjectid() { - if p.p != nil && p.p["projectid"] != nil { - delete(p.p, "projectid") +func (p *ChangeOfferingForVolumeParams) ResetShrinkok() { + if p.p != nil && p.p["shrinkok"] != nil { + delete(p.p, "shrinkok") } } -func (p *CreateVolumeParams) GetProjectid() (string, bool) { +func (p *ChangeOfferingForVolumeParams) GetShrinkok() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["projectid"].(string) + value, ok := p.p["shrinkok"].(bool) return value, ok } -func (p *CreateVolumeParams) SetSize(v int64) { +func (p *ChangeOfferingForVolumeParams) SetSize(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["size"] = v } -func (p *CreateVolumeParams) ResetSize() { +func (p *ChangeOfferingForVolumeParams) ResetSize() { if p.p != nil && p.p["size"] != nil { delete(p.p, "size") } } -func (p *CreateVolumeParams) GetSize() (int64, bool) { +func (p *ChangeOfferingForVolumeParams) GetSize() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -550,85 +479,24 @@ func (p *CreateVolumeParams) GetSize() (int64, bool) { return value, ok } -func (p *CreateVolumeParams) SetSnapshotid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["snapshotid"] = v -} - -func (p *CreateVolumeParams) ResetSnapshotid() { - if p.p != nil && p.p["snapshotid"] != nil { - delete(p.p, "snapshotid") - } -} - -func (p *CreateVolumeParams) GetSnapshotid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["snapshotid"].(string) - return value, ok -} - -func (p *CreateVolumeParams) SetVirtualmachineid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["virtualmachineid"] = v -} - -func (p *CreateVolumeParams) ResetVirtualmachineid() { - if p.p != nil && p.p["virtualmachineid"] != nil { - delete(p.p, "virtualmachineid") - } -} - -func (p *CreateVolumeParams) GetVirtualmachineid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["virtualmachineid"].(string) - return value, ok -} - -func (p *CreateVolumeParams) SetZoneid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["zoneid"] = v -} - -func (p *CreateVolumeParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") - } -} - -func (p *CreateVolumeParams) GetZoneid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["zoneid"].(string) - return value, ok -} - -// You should always use this function to get a new CreateVolumeParams instance, +// You should always use this function to get a new ChangeOfferingForVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewCreateVolumeParams() *CreateVolumeParams { - p := &CreateVolumeParams{} +func (s *VolumeService) NewChangeOfferingForVolumeParams(diskofferingid string, id string) *ChangeOfferingForVolumeParams { + p := &ChangeOfferingForVolumeParams{} p.p = make(map[string]interface{}) + p.p["diskofferingid"] = diskofferingid + p.p["id"] = id return p } -// Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it. -func (s *VolumeService) CreateVolume(p *CreateVolumeParams) (*CreateVolumeResponse, error) { - resp, err := s.cs.newRequest("createVolume", p.toURLValues()) +// Change disk offering of the volume and also an option to auto migrate if required to apply the new disk offering +func (s *VolumeService) ChangeOfferingForVolume(p *ChangeOfferingForVolumeParams) (*ChangeOfferingForVolumeResponse, error) { + resp, err := s.cs.newRequest("changeOfferingForVolume", p.toURLValues()) if err != nil { return nil, err } - var r CreateVolumeResponse + var r ChangeOfferingForVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -656,7 +524,7 @@ func (s *VolumeService) CreateVolume(p *CreateVolumeParams) (*CreateVolumeRespon return &r, nil } -type CreateVolumeResponse struct { +type ChangeOfferingForVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -732,11 +600,11 @@ type CreateVolumeResponse struct { Zonename string `json:"zonename"` } -type DeleteVolumeParams struct { +type CheckVolumeParams struct { p map[string]interface{} } -func (p *DeleteVolumeParams) toURLValues() url.Values { +func (p *CheckVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -744,23 +612,26 @@ func (p *DeleteVolumeParams) toURLValues() url.Values { if v, found := p.p["id"]; found { u.Set("id", v.(string)) } + if v, found := p.p["repair"]; found { + u.Set("repair", v.(string)) + } return u } -func (p *DeleteVolumeParams) SetId(v string) { +func (p *CheckVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *DeleteVolumeParams) ResetId() { +func (p *CheckVolumeParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *DeleteVolumeParams) GetId() (string, bool) { +func (p *CheckVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -768,142 +639,44 @@ func (p *DeleteVolumeParams) GetId() (string, bool) { return value, ok } -// You should always use this function to get a new DeleteVolumeParams instance, -// as then you are sure you have configured all required params -func (s *VolumeService) NewDeleteVolumeParams(id string) *DeleteVolumeParams { - p := &DeleteVolumeParams{} - p.p = make(map[string]interface{}) - p.p["id"] = id - return p -} - -// Deletes a detached disk volume. -func (s *VolumeService) DeleteVolume(p *DeleteVolumeParams) (*DeleteVolumeResponse, error) { - resp, err := s.cs.newRequest("deleteVolume", p.toURLValues()) - if err != nil { - return nil, err - } - - var r DeleteVolumeResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - return &r, nil -} - -type DeleteVolumeResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` -} - -func (r *DeleteVolumeResponse) UnmarshalJSON(b []byte) error { - var m map[string]interface{} - err := json.Unmarshal(b, &m) - if err != nil { - return err - } - - if success, ok := m["success"].(string); ok { - m["success"] = success == "true" - b, err = json.Marshal(m) - if err != nil { - return err - } - } - - 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 DeleteVolumeResponse - return json.Unmarshal(b, (*alias)(r)) -} - -type DestroyVolumeParams struct { - p map[string]interface{} -} - -func (p *DestroyVolumeParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["expunge"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("expunge", vv) - } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) - } - return u -} - -func (p *DestroyVolumeParams) SetExpunge(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["expunge"] = v -} - -func (p *DestroyVolumeParams) ResetExpunge() { - if p.p != nil && p.p["expunge"] != nil { - delete(p.p, "expunge") - } -} - -func (p *DestroyVolumeParams) GetExpunge() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["expunge"].(bool) - return value, ok -} - -func (p *DestroyVolumeParams) SetId(v string) { +func (p *CheckVolumeParams) SetRepair(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["repair"] = v } -func (p *DestroyVolumeParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *CheckVolumeParams) ResetRepair() { + if p.p != nil && p.p["repair"] != nil { + delete(p.p, "repair") } } -func (p *DestroyVolumeParams) GetId() (string, bool) { +func (p *CheckVolumeParams) GetRepair() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["repair"].(string) return value, ok } -// You should always use this function to get a new DestroyVolumeParams instance, +// You should always use this function to get a new CheckVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewDestroyVolumeParams(id string) *DestroyVolumeParams { - p := &DestroyVolumeParams{} +func (s *VolumeService) NewCheckVolumeParams(id string) *CheckVolumeParams { + p := &CheckVolumeParams{} p.p = make(map[string]interface{}) p.p["id"] = id return p } -// Destroys a Volume. -func (s *VolumeService) DestroyVolume(p *DestroyVolumeParams) (*DestroyVolumeResponse, error) { - resp, err := s.cs.newRequest("destroyVolume", p.toURLValues()) +// Check the volume for any errors or leaks and also repairs when repair parameter is passed, this is currently supported for KVM only +func (s *VolumeService) CheckVolume(p *CheckVolumeParams) (*CheckVolumeResponse, error) { + resp, err := s.cs.newRequest("checkVolume", p.toURLValues()) if err != nil { return nil, err } - var r DestroyVolumeResponse + var r CheckVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -931,7 +704,7 @@ func (s *VolumeService) DestroyVolume(p *DestroyVolumeParams) (*DestroyVolumeRes return &r, nil } -type DestroyVolumeResponse struct { +type CheckVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -1007,311 +780,327 @@ type DestroyVolumeResponse struct { Zonename string `json:"zonename"` } -type DetachVolumeParams struct { +type CreateVolumeParams struct { p map[string]interface{} } -func (p *DetachVolumeParams) toURLValues() url.Values { +func (p *CreateVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["deviceid"]; found { + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["customid"]; found { + u.Set("customid", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["displayvolume"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("displayvolume", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["maxiops"]; found { vv := strconv.FormatInt(v.(int64), 10) - u.Set("deviceid", vv) + u.Set("maxiops", vv) } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + if v, found := p.p["miniops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("miniops", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["size"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("size", vv) + } + if v, found := p.p["snapshotid"]; found { + u.Set("snapshotid", v.(string)) } if v, found := p.p["virtualmachineid"]; found { u.Set("virtualmachineid", v.(string)) } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } return u } -func (p *DetachVolumeParams) SetDeviceid(v int64) { +func (p *CreateVolumeParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["deviceid"] = v + p.p["account"] = v } -func (p *DetachVolumeParams) ResetDeviceid() { - if p.p != nil && p.p["deviceid"] != nil { - delete(p.p, "deviceid") +func (p *CreateVolumeParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *DetachVolumeParams) GetDeviceid() (int64, bool) { +func (p *CreateVolumeParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["deviceid"].(int64) + value, ok := p.p["account"].(string) return value, ok } -func (p *DetachVolumeParams) SetId(v string) { +func (p *CreateVolumeParams) SetCustomid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["customid"] = v } -func (p *DetachVolumeParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *CreateVolumeParams) ResetCustomid() { + if p.p != nil && p.p["customid"] != nil { + delete(p.p, "customid") } } -func (p *DetachVolumeParams) GetId() (string, bool) { +func (p *CreateVolumeParams) GetCustomid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["customid"].(string) return value, ok } -func (p *DetachVolumeParams) SetVirtualmachineid(v string) { +func (p *CreateVolumeParams) SetDiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["virtualmachineid"] = v + p.p["diskofferingid"] = v } -func (p *DetachVolumeParams) ResetVirtualmachineid() { - if p.p != nil && p.p["virtualmachineid"] != nil { - delete(p.p, "virtualmachineid") +func (p *CreateVolumeParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") } } -func (p *DetachVolumeParams) GetVirtualmachineid() (string, bool) { +func (p *CreateVolumeParams) GetDiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["virtualmachineid"].(string) + value, ok := p.p["diskofferingid"].(string) return value, ok } -// You should always use this function to get a new DetachVolumeParams instance, -// as then you are sure you have configured all required params -func (s *VolumeService) NewDetachVolumeParams() *DetachVolumeParams { - p := &DetachVolumeParams{} - p.p = make(map[string]interface{}) - return p +func (p *CreateVolumeParams) SetDisplayvolume(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displayvolume"] = v } -// Detaches a disk volume from a virtual machine. -func (s *VolumeService) DetachVolume(p *DetachVolumeParams) (*DetachVolumeResponse, error) { - resp, err := s.cs.newRequest("detachVolume", p.toURLValues()) - if err != nil { - return nil, err +func (p *CreateVolumeParams) ResetDisplayvolume() { + if p.p != nil && p.p["displayvolume"] != nil { + delete(p.p, "displayvolume") } +} - var r DetachVolumeResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err +func (p *CreateVolumeParams) GetDisplayvolume() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } + value, ok := p.p["displayvolume"].(bool) + return value, ok +} - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } - - b, err = getRawValue(b) - if err != nil { - return nil, err - } - - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } +func (p *CreateVolumeParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - - return &r, nil + p.p["domainid"] = v } -type DetachVolumeResponse struct { - Account string `json:"account"` - Attached string `json:"attached"` - Chaininfo string `json:"chaininfo"` - Clusterid string `json:"clusterid"` - Clustername string `json:"clustername"` - Created string `json:"created"` - Deleteprotection bool `json:"deleteprotection"` - Destroyed bool `json:"destroyed"` - Deviceid int64 `json:"deviceid"` - DiskBytesReadRate int64 `json:"diskBytesReadRate"` - DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` - DiskIopsReadRate int64 `json:"diskIopsReadRate"` - DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` - Diskioread int64 `json:"diskioread"` - Diskiowrite int64 `json:"diskiowrite"` - Diskkbsread int64 `json:"diskkbsread"` - Diskkbswrite int64 `json:"diskkbswrite"` - Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` - Diskofferingid string `json:"diskofferingid"` - Diskofferingname string `json:"diskofferingname"` - Displayvolume bool `json:"displayvolume"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainpath string `json:"domainpath"` - Encryptformat string `json:"encryptformat"` - Externaluuid string `json:"externaluuid"` - Hasannotations bool `json:"hasannotations"` - Hypervisor string `json:"hypervisor"` - Id string `json:"id"` - Isextractable bool `json:"isextractable"` - Isodisplaytext string `json:"isodisplaytext"` - Isoid string `json:"isoid"` - Isoname string `json:"isoname"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Maxiops int64 `json:"maxiops"` - Miniops int64 `json:"miniops"` - Name string `json:"name"` - Path string `json:"path"` - Physicalsize int64 `json:"physicalsize"` - Podid string `json:"podid"` - Podname string `json:"podname"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Provisioningtype string `json:"provisioningtype"` - Quiescevm bool `json:"quiescevm"` - Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` - Serviceofferingid string `json:"serviceofferingid"` - Serviceofferingname string `json:"serviceofferingname"` - Size int64 `json:"size"` - Snapshotid string `json:"snapshotid"` - State string `json:"state"` - Status string `json:"status"` - 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"` - Templatename string `json:"templatename"` - Type string `json:"type"` - Utilization string `json:"utilization"` - Virtualmachineid string `json:"virtualmachineid"` - Virtualsize int64 `json:"virtualsize"` - Vmdisplayname string `json:"vmdisplayname"` - Vmname string `json:"vmname"` - Vmstate string `json:"vmstate"` - Vmtype string `json:"vmtype"` - Volumecheckresult map[string]string `json:"volumecheckresult"` - Volumerepairresult map[string]string `json:"volumerepairresult"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` +func (p *CreateVolumeParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } } -type ExtractVolumeParams struct { - p map[string]interface{} +func (p *CreateVolumeParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok } -func (p *ExtractVolumeParams) toURLValues() url.Values { - u := url.Values{} +func (p *CreateVolumeParams) SetMaxiops(v int64) { if p.p == nil { - return u + p.p = make(map[string]interface{}) } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + p.p["maxiops"] = v +} + +func (p *CreateVolumeParams) ResetMaxiops() { + if p.p != nil && p.p["maxiops"] != nil { + delete(p.p, "maxiops") } - if v, found := p.p["mode"]; found { - u.Set("mode", v.(string)) +} + +func (p *CreateVolumeParams) GetMaxiops() (int64, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["url"]; found { - u.Set("url", v.(string)) + value, ok := p.p["maxiops"].(int64) + return value, ok +} + +func (p *CreateVolumeParams) SetMiniops(v int64) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) + p.p["miniops"] = v +} + +func (p *CreateVolumeParams) ResetMiniops() { + if p.p != nil && p.p["miniops"] != nil { + delete(p.p, "miniops") } - return u } -func (p *ExtractVolumeParams) SetId(v string) { +func (p *CreateVolumeParams) GetMiniops() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + value, ok := p.p["miniops"].(int64) + return value, ok } -func (p *ExtractVolumeParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *CreateVolumeParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } + p.p["name"] = v } -func (p *ExtractVolumeParams) GetId() (string, bool) { +func (p *CreateVolumeParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *CreateVolumeParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["name"].(string) return value, ok } -func (p *ExtractVolumeParams) SetMode(v string) { +func (p *CreateVolumeParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["mode"] = v + p.p["projectid"] = v } -func (p *ExtractVolumeParams) ResetMode() { - if p.p != nil && p.p["mode"] != nil { - delete(p.p, "mode") +func (p *CreateVolumeParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ExtractVolumeParams) GetMode() (string, bool) { +func (p *CreateVolumeParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["mode"].(string) + value, ok := p.p["projectid"].(string) return value, ok } -func (p *ExtractVolumeParams) SetUrl(v string) { +func (p *CreateVolumeParams) SetSize(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["url"] = v + p.p["size"] = v } -func (p *ExtractVolumeParams) ResetUrl() { - if p.p != nil && p.p["url"] != nil { - delete(p.p, "url") +func (p *CreateVolumeParams) ResetSize() { + if p.p != nil && p.p["size"] != nil { + delete(p.p, "size") } } -func (p *ExtractVolumeParams) GetUrl() (string, bool) { +func (p *CreateVolumeParams) GetSize() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["url"].(string) + value, ok := p.p["size"].(int64) return value, ok } -func (p *ExtractVolumeParams) SetZoneid(v string) { +func (p *CreateVolumeParams) SetSnapshotid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["snapshotid"] = v +} + +func (p *CreateVolumeParams) ResetSnapshotid() { + if p.p != nil && p.p["snapshotid"] != nil { + delete(p.p, "snapshotid") + } +} + +func (p *CreateVolumeParams) GetSnapshotid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["snapshotid"].(string) + return value, ok +} + +func (p *CreateVolumeParams) SetVirtualmachineid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["virtualmachineid"] = v +} + +func (p *CreateVolumeParams) ResetVirtualmachineid() { + if p.p != nil && p.p["virtualmachineid"] != nil { + delete(p.p, "virtualmachineid") + } +} + +func (p *CreateVolumeParams) GetVirtualmachineid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["virtualmachineid"].(string) + return value, ok +} + +func (p *CreateVolumeParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["zoneid"] = v } -func (p *ExtractVolumeParams) ResetZoneid() { +func (p *CreateVolumeParams) ResetZoneid() { if p.p != nil && p.p["zoneid"] != nil { delete(p.p, "zoneid") } } -func (p *ExtractVolumeParams) GetZoneid() (string, bool) { +func (p *CreateVolumeParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1319,25 +1108,22 @@ func (p *ExtractVolumeParams) GetZoneid() (string, bool) { return value, ok } -// You should always use this function to get a new ExtractVolumeParams instance, +// You should always use this function to get a new CreateVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewExtractVolumeParams(id string, mode string, zoneid string) *ExtractVolumeParams { - p := &ExtractVolumeParams{} +func (s *VolumeService) NewCreateVolumeParams() *CreateVolumeParams { + p := &CreateVolumeParams{} p.p = make(map[string]interface{}) - p.p["id"] = id - p.p["mode"] = mode - p.p["zoneid"] = zoneid return p } -// Extracts volume -func (s *VolumeService) ExtractVolume(p *ExtractVolumeParams) (*ExtractVolumeResponse, error) { - resp, err := s.cs.newRequest("extractVolume", p.toURLValues()) +// Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it. +func (s *VolumeService) CreateVolume(p *CreateVolumeParams) (*CreateVolumeResponse, error) { + resp, err := s.cs.newRequest("createVolume", p.toURLValues()) if err != nil { return nil, err } - var r ExtractVolumeResponse + var r CreateVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -1365,610 +1151,856 @@ func (s *VolumeService) ExtractVolume(p *ExtractVolumeParams) (*ExtractVolumeRes return &r, nil } -type ExtractVolumeResponse struct { - Accountid string `json:"accountid"` - Created string `json:"created"` - ExtractId string `json:"extractId"` - ExtractMode string `json:"extractMode"` - Id string `json:"id"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Name string `json:"name"` - Resultstring string `json:"resultstring"` - State string `json:"state"` - Status string `json:"status"` - Storagetype string `json:"storagetype"` - Uploadpercentage int `json:"uploadpercentage"` - Url string `json:"url"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` -} - -type GetPathForVolumeParams struct { +type CreateVolumeResponse struct { + Account string `json:"account"` + Attached string `json:"attached"` + Chaininfo string `json:"chaininfo"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Destroyed bool `json:"destroyed"` + Deviceid int64 `json:"deviceid"` + DiskBytesReadRate int64 `json:"diskBytesReadRate"` + DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` + DiskIopsReadRate int64 `json:"diskIopsReadRate"` + DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayvolume bool `json:"displayvolume"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Encryptformat string `json:"encryptformat"` + Externaluuid string `json:"externaluuid"` + Hasannotations bool `json:"hasannotations"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Isextractable bool `json:"isextractable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Miniops int64 `json:"miniops"` + Name string `json:"name"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provisioningtype string `json:"provisioningtype"` + Quiescevm bool `json:"quiescevm"` + Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + State string `json:"state"` + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type DeleteVolumeParams struct { p map[string]interface{} } -func (p *GetPathForVolumeParams) toURLValues() url.Values { +func (p *DeleteVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["volumeid"]; found { - u.Set("volumeid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } return u } -func (p *GetPathForVolumeParams) SetVolumeid(v string) { +func (p *DeleteVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["volumeid"] = v + p.p["id"] = v } -func (p *GetPathForVolumeParams) ResetVolumeid() { - if p.p != nil && p.p["volumeid"] != nil { - delete(p.p, "volumeid") +func (p *DeleteVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *GetPathForVolumeParams) GetVolumeid() (string, bool) { +func (p *DeleteVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["volumeid"].(string) + value, ok := p.p["id"].(string) return value, ok } -// You should always use this function to get a new GetPathForVolumeParams instance, +// You should always use this function to get a new DeleteVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewGetPathForVolumeParams(volumeid string) *GetPathForVolumeParams { - p := &GetPathForVolumeParams{} +func (s *VolumeService) NewDeleteVolumeParams(id string) *DeleteVolumeParams { + p := &DeleteVolumeParams{} p.p = make(map[string]interface{}) - p.p["volumeid"] = volumeid + p.p["id"] = id return p } -// Get the path associated with the provided volume UUID -func (s *VolumeService) GetPathForVolume(p *GetPathForVolumeParams) (*GetPathForVolumeResponse, error) { - resp, err := s.cs.newRequest("getPathForVolume", p.toURLValues()) +// Deletes a detached disk volume. +func (s *VolumeService) DeleteVolume(p *DeleteVolumeParams) (*DeleteVolumeResponse, error) { + resp, err := s.cs.newRequest("deleteVolume", p.toURLValues()) if err != nil { return nil, err } - var nested struct { - Response GetPathForVolumeResponse `json:"apipathforvolume"` - } - if err := json.Unmarshal(resp, &nested); err != nil { + var r DeleteVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { return nil, err } - r := nested.Response return &r, nil } -type GetPathForVolumeResponse struct { - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Path string `json:"path"` -} - -type GetSolidFireVolumeSizeParams struct { - p map[string]interface{} -} - -func (p *GetSolidFireVolumeSizeParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["volumeid"]; found { - u.Set("volumeid", v.(string)) - } - return u -} - -func (p *GetSolidFireVolumeSizeParams) SetVolumeid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["volumeid"] = v -} - -func (p *GetSolidFireVolumeSizeParams) ResetVolumeid() { - if p.p != nil && p.p["volumeid"] != nil { - delete(p.p, "volumeid") - } -} - -func (p *GetSolidFireVolumeSizeParams) GetVolumeid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["volumeid"].(string) - return value, ok -} - -// You should always use this function to get a new GetSolidFireVolumeSizeParams instance, -// as then you are sure you have configured all required params -func (s *VolumeService) NewGetSolidFireVolumeSizeParams(volumeid string) *GetSolidFireVolumeSizeParams { - p := &GetSolidFireVolumeSizeParams{} - p.p = make(map[string]interface{}) - p.p["volumeid"] = volumeid - return p +type DeleteVolumeResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` } -// Get the SF volume size including Hypervisor Snapshot Reserve -func (s *VolumeService) GetSolidFireVolumeSize(p *GetSolidFireVolumeSizeParams) (*GetSolidFireVolumeSizeResponse, error) { - resp, err := s.cs.newRequest("getSolidFireVolumeSize", p.toURLValues()) +func (r *DeleteVolumeResponse) UnmarshalJSON(b []byte) error { + var m map[string]interface{} + err := json.Unmarshal(b, &m) if err != nil { - return nil, err + return err } - var r GetSolidFireVolumeSizeResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err + if success, ok := m["success"].(string); ok { + m["success"] = success == "true" + b, err = json.Marshal(m) + if err != nil { + return err + } } - return &r, nil -} + if ostypeid, ok := m["ostypeid"].(float64); ok { + m["ostypeid"] = strconv.Itoa(int(ostypeid)) + b, err = json.Marshal(m) + if err != nil { + return err + } + } -type GetSolidFireVolumeSizeResponse struct { - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - SolidFireVolumeSize int64 `json:"solidFireVolumeSize"` + type alias DeleteVolumeResponse + return json.Unmarshal(b, (*alias)(r)) } -type GetUploadParamsForVolumeParams struct { +type DestroyVolumeParams struct { p map[string]interface{} } -func (p *GetUploadParamsForVolumeParams) toURLValues() url.Values { +func (p *DestroyVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) - } - if v, found := p.p["checksum"]; found { - u.Set("checksum", v.(string)) - } - if v, found := p.p["diskofferingid"]; found { - u.Set("diskofferingid", v.(string)) - } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) - } - if v, found := p.p["format"]; found { - u.Set("format", v.(string)) - } - if v, found := p.p["imagestoreuuid"]; found { - u.Set("imagestoreuuid", v.(string)) - } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) - } - if v, found := p.p["projectid"]; found { - u.Set("projectid", v.(string)) + if v, found := p.p["expunge"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("expunge", vv) } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } return u } -func (p *GetUploadParamsForVolumeParams) SetAccount(v string) { +func (p *DestroyVolumeParams) SetExpunge(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["account"] = v + p.p["expunge"] = v } -func (p *GetUploadParamsForVolumeParams) ResetAccount() { - if p.p != nil && p.p["account"] != nil { - delete(p.p, "account") +func (p *DestroyVolumeParams) ResetExpunge() { + if p.p != nil && p.p["expunge"] != nil { + delete(p.p, "expunge") } } -func (p *GetUploadParamsForVolumeParams) GetAccount() (string, bool) { +func (p *DestroyVolumeParams) GetExpunge() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["account"].(string) + value, ok := p.p["expunge"].(bool) return value, ok } -func (p *GetUploadParamsForVolumeParams) SetChecksum(v string) { +func (p *DestroyVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["checksum"] = v + p.p["id"] = v } -func (p *GetUploadParamsForVolumeParams) ResetChecksum() { - if p.p != nil && p.p["checksum"] != nil { - delete(p.p, "checksum") +func (p *DestroyVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *GetUploadParamsForVolumeParams) GetChecksum() (string, bool) { +func (p *DestroyVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["checksum"].(string) + value, ok := p.p["id"].(string) return value, ok } -func (p *GetUploadParamsForVolumeParams) SetDiskofferingid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["diskofferingid"] = v +// You should always use this function to get a new DestroyVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewDestroyVolumeParams(id string) *DestroyVolumeParams { + p := &DestroyVolumeParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p } -func (p *GetUploadParamsForVolumeParams) ResetDiskofferingid() { - if p.p != nil && p.p["diskofferingid"] != nil { - delete(p.p, "diskofferingid") +// Destroys a Volume. +func (s *VolumeService) DestroyVolume(p *DestroyVolumeParams) (*DestroyVolumeResponse, error) { + resp, err := s.cs.newRequest("destroyVolume", p.toURLValues()) + if err != nil { + return nil, err } -} -func (p *GetUploadParamsForVolumeParams) GetDiskofferingid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + var r DestroyVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } - value, ok := p.p["diskofferingid"].(string) - return value, ok -} -func (p *GetUploadParamsForVolumeParams) SetDomainid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["domainid"] = v -} + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } -func (p *GetUploadParamsForVolumeParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") - } -} + b, err = getRawValue(b) + if err != nil { + return nil, err + } -func (p *GetUploadParamsForVolumeParams) GetDomainid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } } - value, ok := p.p["domainid"].(string) - return value, ok -} -func (p *GetUploadParamsForVolumeParams) SetFormat(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["format"] = v + return &r, nil } -func (p *GetUploadParamsForVolumeParams) ResetFormat() { - if p.p != nil && p.p["format"] != nil { - delete(p.p, "format") - } +type DestroyVolumeResponse struct { + Account string `json:"account"` + Attached string `json:"attached"` + Chaininfo string `json:"chaininfo"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Destroyed bool `json:"destroyed"` + Deviceid int64 `json:"deviceid"` + DiskBytesReadRate int64 `json:"diskBytesReadRate"` + DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` + DiskIopsReadRate int64 `json:"diskIopsReadRate"` + DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayvolume bool `json:"displayvolume"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Encryptformat string `json:"encryptformat"` + Externaluuid string `json:"externaluuid"` + Hasannotations bool `json:"hasannotations"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Isextractable bool `json:"isextractable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Miniops int64 `json:"miniops"` + Name string `json:"name"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provisioningtype string `json:"provisioningtype"` + Quiescevm bool `json:"quiescevm"` + Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + State string `json:"state"` + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -func (p *GetUploadParamsForVolumeParams) GetFormat() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["format"].(string) - return value, ok +type DetachVolumeParams struct { + p map[string]interface{} } -func (p *GetUploadParamsForVolumeParams) SetImagestoreuuid(v string) { +func (p *DetachVolumeParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - p.p["imagestoreuuid"] = v -} - -func (p *GetUploadParamsForVolumeParams) ResetImagestoreuuid() { - if p.p != nil && p.p["imagestoreuuid"] != nil { - delete(p.p, "imagestoreuuid") + if v, found := p.p["deviceid"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("deviceid", vv) } -} - -func (p *GetUploadParamsForVolumeParams) GetImagestoreuuid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } - value, ok := p.p["imagestoreuuid"].(string) - return value, ok + if v, found := p.p["virtualmachineid"]; found { + u.Set("virtualmachineid", v.(string)) + } + return u } -func (p *GetUploadParamsForVolumeParams) SetName(v string) { +func (p *DetachVolumeParams) SetDeviceid(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["name"] = v + p.p["deviceid"] = v } -func (p *GetUploadParamsForVolumeParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") +func (p *DetachVolumeParams) ResetDeviceid() { + if p.p != nil && p.p["deviceid"] != nil { + delete(p.p, "deviceid") } } -func (p *GetUploadParamsForVolumeParams) GetName() (string, bool) { +func (p *DetachVolumeParams) GetDeviceid() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["name"].(string) + value, ok := p.p["deviceid"].(int64) return value, ok } -func (p *GetUploadParamsForVolumeParams) SetProjectid(v string) { +func (p *DetachVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["projectid"] = v + p.p["id"] = v } -func (p *GetUploadParamsForVolumeParams) ResetProjectid() { - if p.p != nil && p.p["projectid"] != nil { - delete(p.p, "projectid") +func (p *DetachVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *GetUploadParamsForVolumeParams) GetProjectid() (string, bool) { +func (p *DetachVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["projectid"].(string) + value, ok := p.p["id"].(string) return value, ok } -func (p *GetUploadParamsForVolumeParams) SetZoneid(v string) { +func (p *DetachVolumeParams) SetVirtualmachineid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["zoneid"] = v + p.p["virtualmachineid"] = v } -func (p *GetUploadParamsForVolumeParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") +func (p *DetachVolumeParams) ResetVirtualmachineid() { + if p.p != nil && p.p["virtualmachineid"] != nil { + delete(p.p, "virtualmachineid") } } -func (p *GetUploadParamsForVolumeParams) GetZoneid() (string, bool) { +func (p *DetachVolumeParams) GetVirtualmachineid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["zoneid"].(string) + value, ok := p.p["virtualmachineid"].(string) return value, ok } -// You should always use this function to get a new GetUploadParamsForVolumeParams instance, +// You should always use this function to get a new DetachVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewGetUploadParamsForVolumeParams(format string, name string, zoneid string) *GetUploadParamsForVolumeParams { - p := &GetUploadParamsForVolumeParams{} +func (s *VolumeService) NewDetachVolumeParams() *DetachVolumeParams { + p := &DetachVolumeParams{} p.p = make(map[string]interface{}) - p.p["format"] = format - p.p["name"] = name - p.p["zoneid"] = zoneid return p } -// Upload a data disk to the cloudstack cloud. -func (s *VolumeService) GetUploadParamsForVolume(p *GetUploadParamsForVolumeParams) (*GetUploadParamsForVolumeResponse, error) { - resp, err := s.cs.newRequest("getUploadParamsForVolume", p.toURLValues()) +// Detaches a disk volume from a virtual machine. +func (s *VolumeService) DetachVolume(p *DetachVolumeParams) (*DetachVolumeResponse, error) { + resp, err := s.cs.newRequest("detachVolume", p.toURLValues()) if err != nil { return nil, err } - var nested struct { - Response GetUploadParamsForVolumeResponse `json:"getuploadparams"` - } - if err := json.Unmarshal(resp, &nested); err != nil { + var r DetachVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { return nil, err } - r := nested.Response - return &r, nil -} + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } -type GetUploadParamsForVolumeResponse struct { - Expires string `json:"expires"` - Id string `json:"id"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Metadata string `json:"metadata"` - PostURL string `json:"postURL"` - Signature string `json:"signature"` + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil } -type GetVolumeiScsiNameParams struct { +type DetachVolumeResponse struct { + Account string `json:"account"` + Attached string `json:"attached"` + Chaininfo string `json:"chaininfo"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Destroyed bool `json:"destroyed"` + Deviceid int64 `json:"deviceid"` + DiskBytesReadRate int64 `json:"diskBytesReadRate"` + DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` + DiskIopsReadRate int64 `json:"diskIopsReadRate"` + DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayvolume bool `json:"displayvolume"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Encryptformat string `json:"encryptformat"` + Externaluuid string `json:"externaluuid"` + Hasannotations bool `json:"hasannotations"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Isextractable bool `json:"isextractable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Miniops int64 `json:"miniops"` + Name string `json:"name"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provisioningtype string `json:"provisioningtype"` + Quiescevm bool `json:"quiescevm"` + Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + State string `json:"state"` + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ExtractVolumeParams struct { p map[string]interface{} } -func (p *GetVolumeiScsiNameParams) toURLValues() url.Values { +func (p *ExtractVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["volumeid"]; found { - u.Set("volumeid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["mode"]; found { + u.Set("mode", v.(string)) + } + if v, found := p.p["url"]; found { + u.Set("url", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) } return u } -func (p *GetVolumeiScsiNameParams) SetVolumeid(v string) { +func (p *ExtractVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["volumeid"] = v + p.p["id"] = v } -func (p *GetVolumeiScsiNameParams) ResetVolumeid() { - if p.p != nil && p.p["volumeid"] != nil { - delete(p.p, "volumeid") +func (p *ExtractVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *GetVolumeiScsiNameParams) GetVolumeid() (string, bool) { +func (p *ExtractVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["volumeid"].(string) + value, ok := p.p["id"].(string) return value, ok } -// You should always use this function to get a new GetVolumeiScsiNameParams instance, +func (p *ExtractVolumeParams) SetMode(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["mode"] = v +} + +func (p *ExtractVolumeParams) ResetMode() { + if p.p != nil && p.p["mode"] != nil { + delete(p.p, "mode") + } +} + +func (p *ExtractVolumeParams) GetMode() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["mode"].(string) + return value, ok +} + +func (p *ExtractVolumeParams) SetUrl(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["url"] = v +} + +func (p *ExtractVolumeParams) ResetUrl() { + if p.p != nil && p.p["url"] != nil { + delete(p.p, "url") + } +} + +func (p *ExtractVolumeParams) GetUrl() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["url"].(string) + return value, ok +} + +func (p *ExtractVolumeParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ExtractVolumeParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ExtractVolumeParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ExtractVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewGetVolumeiScsiNameParams(volumeid string) *GetVolumeiScsiNameParams { - p := &GetVolumeiScsiNameParams{} +func (s *VolumeService) NewExtractVolumeParams(id string, mode string, zoneid string) *ExtractVolumeParams { + p := &ExtractVolumeParams{} p.p = make(map[string]interface{}) - p.p["volumeid"] = volumeid + p.p["id"] = id + p.p["mode"] = mode + p.p["zoneid"] = zoneid return p } -// Get Volume's iSCSI Name -func (s *VolumeService) GetVolumeiScsiName(p *GetVolumeiScsiNameParams) (*GetVolumeiScsiNameResponse, error) { - resp, err := s.cs.newRequest("getVolumeiScsiName", p.toURLValues()) +// Extracts volume +func (s *VolumeService) ExtractVolume(p *ExtractVolumeParams) (*ExtractVolumeResponse, error) { + resp, err := s.cs.newRequest("extractVolume", p.toURLValues()) if err != nil { return nil, err } - var r GetVolumeiScsiNameResponse + var r ExtractVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + return &r, nil } -type GetVolumeiScsiNameResponse struct { - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - VolumeiScsiName string `json:"volumeiScsiName"` +type ExtractVolumeResponse struct { + Accountid string `json:"accountid"` + Created string `json:"created"` + ExtractId string `json:"extractId"` + ExtractMode string `json:"extractMode"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Resultstring string `json:"resultstring"` + State string `json:"state"` + Status string `json:"status"` + Storagetype string `json:"storagetype"` + Uploadpercentage int `json:"uploadpercentage"` + Url string `json:"url"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -type ListVolumesParams struct { +type GetPathForVolumeParams struct { p map[string]interface{} } -func (p *ListVolumesParams) toURLValues() url.Values { +func (p *GetPathForVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) - } - if v, found := p.p["clusterid"]; found { - u.Set("clusterid", v.(string)) + if v, found := p.p["volumeid"]; found { + u.Set("volumeid", v.(string)) } - if v, found := p.p["diskofferingid"]; found { - u.Set("diskofferingid", v.(string)) - } - if v, found := p.p["displayvolume"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("displayvolume", vv) + return u +} + +func (p *GetPathForVolumeParams) SetVolumeid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) + p.p["volumeid"] = v +} + +func (p *GetPathForVolumeParams) ResetVolumeid() { + if p.p != nil && p.p["volumeid"] != nil { + delete(p.p, "volumeid") } - if v, found := p.p["hostid"]; found { - u.Set("hostid", v.(string)) +} + +func (p *GetPathForVolumeParams) GetVolumeid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + value, ok := p.p["volumeid"].(string) + return value, ok +} + +// You should always use this function to get a new GetPathForVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewGetPathForVolumeParams(volumeid string) *GetPathForVolumeParams { + p := &GetPathForVolumeParams{} + p.p = make(map[string]interface{}) + p.p["volumeid"] = volumeid + return p +} + +// Get the path associated with the provided volume UUID +func (s *VolumeService) GetPathForVolume(p *GetPathForVolumeParams) (*GetPathForVolumeResponse, error) { + resp, err := s.cs.newRequest("getPathForVolume", p.toURLValues()) + if err != nil { + return nil, err } - if v, found := p.p["ids"]; found { - vv := strings.Join(v.([]string), ",") - u.Set("ids", vv) + + var nested struct { + Response GetPathForVolumeResponse `json:"apipathforvolume"` } - if v, found := p.p["isencrypted"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("isencrypted", vv) + if err := json.Unmarshal(resp, &nested); err != nil { + return nil, err } - if v, found := p.p["isrecursive"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("isrecursive", vv) + r := nested.Response + + return &r, nil +} + +type GetPathForVolumeResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Path string `json:"path"` +} + +type GetUploadParamsForVolumeParams struct { + p map[string]interface{} +} + +func (p *GetUploadParamsForVolumeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u } - if v, found := p.p["keyword"]; found { - u.Set("keyword", v.(string)) + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) } - if v, found := p.p["listall"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("listall", vv) + if v, found := p.p["checksum"]; found { + u.Set("checksum", v.(string)) } - if v, found := p.p["listsystemvms"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("listsystemvms", vv) + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) } - if v, found := p.p["page"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("page", vv) + if v, found := p.p["format"]; found { + u.Set("format", v.(string)) } - if v, found := p.p["pagesize"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("pagesize", vv) + if v, found := p.p["imagestoreuuid"]; found { + u.Set("imagestoreuuid", v.(string)) } - if v, found := p.p["podid"]; found { - u.Set("podid", v.(string)) + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) } if v, found := p.p["projectid"]; found { u.Set("projectid", v.(string)) } - if v, found := p.p["retrieveonlyresourcecount"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("retrieveonlyresourcecount", vv) - } - if v, found := p.p["serviceofferingid"]; found { - u.Set("serviceofferingid", v.(string)) - } - if v, found := p.p["state"]; found { - u.Set("state", v.(string)) - } - if v, found := p.p["storageid"]; found { - u.Set("storageid", v.(string)) - } - if v, found := p.p["tags"]; found { - m := v.(map[string]string) - for i, k := range getSortedKeysFromMap(m) { - u.Set(fmt.Sprintf("tags[%d].key", i), k) - u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) - } - } - if v, found := p.p["type"]; found { - u.Set("type", v.(string)) - } - if v, found := p.p["virtualmachineid"]; found { - u.Set("virtualmachineid", v.(string)) - } if v, found := p.p["zoneid"]; found { u.Set("zoneid", v.(string)) } return u } -func (p *ListVolumesParams) SetAccount(v string) { +func (p *GetUploadParamsForVolumeParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["account"] = v } -func (p *ListVolumesParams) ResetAccount() { +func (p *GetUploadParamsForVolumeParams) ResetAccount() { if p.p != nil && p.p["account"] != nil { delete(p.p, "account") } } -func (p *ListVolumesParams) GetAccount() (string, bool) { +func (p *GetUploadParamsForVolumeParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1976,41 +2008,41 @@ func (p *ListVolumesParams) GetAccount() (string, bool) { return value, ok } -func (p *ListVolumesParams) SetClusterid(v string) { +func (p *GetUploadParamsForVolumeParams) SetChecksum(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["clusterid"] = v + p.p["checksum"] = v } -func (p *ListVolumesParams) ResetClusterid() { - if p.p != nil && p.p["clusterid"] != nil { - delete(p.p, "clusterid") +func (p *GetUploadParamsForVolumeParams) ResetChecksum() { + if p.p != nil && p.p["checksum"] != nil { + delete(p.p, "checksum") } } -func (p *ListVolumesParams) GetClusterid() (string, bool) { +func (p *GetUploadParamsForVolumeParams) GetChecksum() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["clusterid"].(string) + value, ok := p.p["checksum"].(string) return value, ok } -func (p *ListVolumesParams) SetDiskofferingid(v string) { +func (p *GetUploadParamsForVolumeParams) SetDiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["diskofferingid"] = v } -func (p *ListVolumesParams) ResetDiskofferingid() { +func (p *GetUploadParamsForVolumeParams) ResetDiskofferingid() { if p.p != nil && p.p["diskofferingid"] != nil { delete(p.p, "diskofferingid") } } -func (p *ListVolumesParams) GetDiskofferingid() (string, bool) { +func (p *GetUploadParamsForVolumeParams) GetDiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2018,398 +2050,410 @@ func (p *ListVolumesParams) GetDiskofferingid() (string, bool) { return value, ok } -func (p *ListVolumesParams) SetDisplayvolume(v bool) { +func (p *GetUploadParamsForVolumeParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["displayvolume"] = v + p.p["domainid"] = v } -func (p *ListVolumesParams) ResetDisplayvolume() { - if p.p != nil && p.p["displayvolume"] != nil { - delete(p.p, "displayvolume") +func (p *GetUploadParamsForVolumeParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") } } -func (p *ListVolumesParams) GetDisplayvolume() (bool, bool) { +func (p *GetUploadParamsForVolumeParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["displayvolume"].(bool) + value, ok := p.p["domainid"].(string) return value, ok } -func (p *ListVolumesParams) SetDomainid(v string) { +func (p *GetUploadParamsForVolumeParams) SetFormat(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["domainid"] = v + p.p["format"] = v } -func (p *ListVolumesParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") +func (p *GetUploadParamsForVolumeParams) ResetFormat() { + if p.p != nil && p.p["format"] != nil { + delete(p.p, "format") } } -func (p *ListVolumesParams) GetDomainid() (string, bool) { +func (p *GetUploadParamsForVolumeParams) GetFormat() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["domainid"].(string) + value, ok := p.p["format"].(string) return value, ok } -func (p *ListVolumesParams) SetHostid(v string) { +func (p *GetUploadParamsForVolumeParams) SetImagestoreuuid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["hostid"] = v + p.p["imagestoreuuid"] = v } -func (p *ListVolumesParams) ResetHostid() { - if p.p != nil && p.p["hostid"] != nil { - delete(p.p, "hostid") +func (p *GetUploadParamsForVolumeParams) ResetImagestoreuuid() { + if p.p != nil && p.p["imagestoreuuid"] != nil { + delete(p.p, "imagestoreuuid") } } -func (p *ListVolumesParams) GetHostid() (string, bool) { +func (p *GetUploadParamsForVolumeParams) GetImagestoreuuid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["hostid"].(string) + value, ok := p.p["imagestoreuuid"].(string) return value, ok } -func (p *ListVolumesParams) SetId(v string) { +func (p *GetUploadParamsForVolumeParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["name"] = v } -func (p *ListVolumesParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *GetUploadParamsForVolumeParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") } } -func (p *ListVolumesParams) GetId() (string, bool) { +func (p *GetUploadParamsForVolumeParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["name"].(string) return value, ok } -func (p *ListVolumesParams) SetIds(v []string) { +func (p *GetUploadParamsForVolumeParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["ids"] = v + p.p["projectid"] = v } -func (p *ListVolumesParams) ResetIds() { - if p.p != nil && p.p["ids"] != nil { - delete(p.p, "ids") +func (p *GetUploadParamsForVolumeParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ListVolumesParams) GetIds() ([]string, bool) { +func (p *GetUploadParamsForVolumeParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["ids"].([]string) + value, ok := p.p["projectid"].(string) return value, ok } -func (p *ListVolumesParams) SetIsencrypted(v bool) { +func (p *GetUploadParamsForVolumeParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["isencrypted"] = v + p.p["zoneid"] = v } -func (p *ListVolumesParams) ResetIsencrypted() { - if p.p != nil && p.p["isencrypted"] != nil { - delete(p.p, "isencrypted") +func (p *GetUploadParamsForVolumeParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") } } -func (p *ListVolumesParams) GetIsencrypted() (bool, bool) { +func (p *GetUploadParamsForVolumeParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["isencrypted"].(bool) + value, ok := p.p["zoneid"].(string) return value, ok } -func (p *ListVolumesParams) SetIsrecursive(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["isrecursive"] = v -} - -func (p *ListVolumesParams) ResetIsrecursive() { - if p.p != nil && p.p["isrecursive"] != nil { - delete(p.p, "isrecursive") - } +// You should always use this function to get a new GetUploadParamsForVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewGetUploadParamsForVolumeParams(format string, name string, zoneid string) *GetUploadParamsForVolumeParams { + p := &GetUploadParamsForVolumeParams{} + p.p = make(map[string]interface{}) + p.p["format"] = format + p.p["name"] = name + p.p["zoneid"] = zoneid + return p } -func (p *ListVolumesParams) GetIsrecursive() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) +// Upload a data disk to the cloudstack cloud. +func (s *VolumeService) GetUploadParamsForVolume(p *GetUploadParamsForVolumeParams) (*GetUploadParamsForVolumeResponse, error) { + resp, err := s.cs.newRequest("getUploadParamsForVolume", p.toURLValues()) + if err != nil { + return nil, err } - value, ok := p.p["isrecursive"].(bool) - return value, ok -} -func (p *ListVolumesParams) SetKeyword(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + var nested struct { + Response GetUploadParamsForVolumeResponse `json:"getuploadparams"` } - p.p["keyword"] = v -} - -func (p *ListVolumesParams) ResetKeyword() { - if p.p != nil && p.p["keyword"] != nil { - delete(p.p, "keyword") + if err := json.Unmarshal(resp, &nested); err != nil { + return nil, err } -} + r := nested.Response -func (p *ListVolumesParams) GetKeyword() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["keyword"].(string) - return value, ok + return &r, nil } -func (p *ListVolumesParams) SetListall(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["listall"] = v +type GetUploadParamsForVolumeResponse struct { + Expires string `json:"expires"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Metadata string `json:"metadata"` + PostURL string `json:"postURL"` + Signature string `json:"signature"` } -func (p *ListVolumesParams) ResetListall() { - if p.p != nil && p.p["listall"] != nil { - delete(p.p, "listall") - } +type GetVolumeiScsiNameParams struct { + p map[string]interface{} } -func (p *ListVolumesParams) GetListall() (bool, bool) { +func (p *GetVolumeiScsiNameParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["listall"].(bool) - return value, ok + if v, found := p.p["volumeid"]; found { + u.Set("volumeid", v.(string)) + } + return u } -func (p *ListVolumesParams) SetListsystemvms(v bool) { +func (p *GetVolumeiScsiNameParams) SetVolumeid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["listsystemvms"] = v + p.p["volumeid"] = v } -func (p *ListVolumesParams) ResetListsystemvms() { - if p.p != nil && p.p["listsystemvms"] != nil { - delete(p.p, "listsystemvms") +func (p *GetVolumeiScsiNameParams) ResetVolumeid() { + if p.p != nil && p.p["volumeid"] != nil { + delete(p.p, "volumeid") } } -func (p *ListVolumesParams) GetListsystemvms() (bool, bool) { +func (p *GetVolumeiScsiNameParams) GetVolumeid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["listsystemvms"].(bool) + value, ok := p.p["volumeid"].(string) return value, ok } -func (p *ListVolumesParams) SetName(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["name"] = v +// You should always use this function to get a new GetVolumeiScsiNameParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewGetVolumeiScsiNameParams(volumeid string) *GetVolumeiScsiNameParams { + p := &GetVolumeiScsiNameParams{} + p.p = make(map[string]interface{}) + p.p["volumeid"] = volumeid + return p } -func (p *ListVolumesParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") +// Get Volume's iSCSI Name +func (s *VolumeService) GetVolumeiScsiName(p *GetVolumeiScsiNameParams) (*GetVolumeiScsiNameResponse, error) { + resp, err := s.cs.newRequest("getVolumeiScsiName", p.toURLValues()) + if err != nil { + return nil, err } -} -func (p *ListVolumesParams) GetName() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + var r GetVolumeiScsiNameResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } - value, ok := p.p["name"].(string) - return value, ok + + return &r, nil } -func (p *ListVolumesParams) SetPage(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["page"] = v +type GetVolumeiScsiNameResponse struct { + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + VolumeiScsiName string `json:"volumeiScsiName"` } -func (p *ListVolumesParams) ResetPage() { - if p.p != nil && p.p["page"] != nil { - delete(p.p, "page") - } +type ImportVolumeParams struct { + p map[string]interface{} } -func (p *ListVolumesParams) GetPage() (int, bool) { +func (p *ImportVolumeParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["page"].(int) - return value, ok + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["path"]; found { + u.Set("path", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + return u } -func (p *ListVolumesParams) SetPagesize(v int) { +func (p *ImportVolumeParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["pagesize"] = v + p.p["account"] = v } -func (p *ListVolumesParams) ResetPagesize() { - if p.p != nil && p.p["pagesize"] != nil { - delete(p.p, "pagesize") +func (p *ImportVolumeParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *ListVolumesParams) GetPagesize() (int, bool) { +func (p *ImportVolumeParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["pagesize"].(int) + value, ok := p.p["account"].(string) return value, ok } -func (p *ListVolumesParams) SetPodid(v string) { +func (p *ImportVolumeParams) SetDiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["podid"] = v + p.p["diskofferingid"] = v } -func (p *ListVolumesParams) ResetPodid() { - if p.p != nil && p.p["podid"] != nil { - delete(p.p, "podid") +func (p *ImportVolumeParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") } } -func (p *ListVolumesParams) GetPodid() (string, bool) { +func (p *ImportVolumeParams) GetDiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["podid"].(string) + value, ok := p.p["diskofferingid"].(string) return value, ok } -func (p *ListVolumesParams) SetProjectid(v string) { +func (p *ImportVolumeParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["projectid"] = v + p.p["domainid"] = v } -func (p *ListVolumesParams) ResetProjectid() { - if p.p != nil && p.p["projectid"] != nil { - delete(p.p, "projectid") +func (p *ImportVolumeParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") } } -func (p *ListVolumesParams) GetProjectid() (string, bool) { +func (p *ImportVolumeParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["projectid"].(string) + value, ok := p.p["domainid"].(string) return value, ok } -func (p *ListVolumesParams) SetRetrieveonlyresourcecount(v bool) { +func (p *ImportVolumeParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["retrieveonlyresourcecount"] = v + p.p["name"] = v } -func (p *ListVolumesParams) ResetRetrieveonlyresourcecount() { - if p.p != nil && p.p["retrieveonlyresourcecount"] != nil { - delete(p.p, "retrieveonlyresourcecount") +func (p *ImportVolumeParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") } } -func (p *ListVolumesParams) GetRetrieveonlyresourcecount() (bool, bool) { +func (p *ImportVolumeParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["retrieveonlyresourcecount"].(bool) + value, ok := p.p["name"].(string) return value, ok } -func (p *ListVolumesParams) SetServiceofferingid(v string) { +func (p *ImportVolumeParams) SetPath(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["serviceofferingid"] = v + p.p["path"] = v } -func (p *ListVolumesParams) ResetServiceofferingid() { - if p.p != nil && p.p["serviceofferingid"] != nil { - delete(p.p, "serviceofferingid") +func (p *ImportVolumeParams) ResetPath() { + if p.p != nil && p.p["path"] != nil { + delete(p.p, "path") } } -func (p *ListVolumesParams) GetServiceofferingid() (string, bool) { +func (p *ImportVolumeParams) GetPath() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["serviceofferingid"].(string) + value, ok := p.p["path"].(string) return value, ok } -func (p *ListVolumesParams) SetState(v string) { +func (p *ImportVolumeParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["state"] = v + p.p["projectid"] = v } -func (p *ListVolumesParams) ResetState() { - if p.p != nil && p.p["state"] != nil { - delete(p.p, "state") +func (p *ImportVolumeParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ListVolumesParams) GetState() (string, bool) { +func (p *ImportVolumeParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["state"].(string) + value, ok := p.p["projectid"].(string) return value, ok } -func (p *ListVolumesParams) SetStorageid(v string) { +func (p *ImportVolumeParams) SetStorageid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["storageid"] = v } -func (p *ListVolumesParams) ResetStorageid() { +func (p *ImportVolumeParams) ResetStorageid() { if p.p != nil && p.p["storageid"] != nil { delete(p.p, "storageid") } } -func (p *ListVolumesParams) GetStorageid() (string, bool) { +func (p *ImportVolumeParams) GetStorageid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2417,202 +2461,52 @@ func (p *ListVolumesParams) GetStorageid() (string, bool) { return value, ok } -func (p *ListVolumesParams) SetTags(v map[string]string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["tags"] = v +// You should always use this function to get a new ImportVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewImportVolumeParams(path string, storageid string) *ImportVolumeParams { + p := &ImportVolumeParams{} + p.p = make(map[string]interface{}) + p.p["path"] = path + p.p["storageid"] = storageid + return p } -func (p *ListVolumesParams) ResetTags() { - if p.p != nil && p.p["tags"] != nil { - delete(p.p, "tags") +// Import an unmanaged volume from a storage pool on a host into CloudStack +func (s *VolumeService) ImportVolume(p *ImportVolumeParams) (*ImportVolumeResponse, error) { + resp, err := s.cs.newRequest("importVolume", p.toURLValues()) + if err != nil { + return nil, err } -} -func (p *ListVolumesParams) GetTags() (map[string]string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + var r ImportVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } - value, ok := p.p["tags"].(map[string]string) - return value, ok -} -func (p *ListVolumesParams) SetType(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["type"] = v -} - -func (p *ListVolumesParams) ResetType() { - if p.p != nil && p.p["type"] != nil { - delete(p.p, "type") - } -} - -func (p *ListVolumesParams) GetType() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["type"].(string) - return value, ok -} - -func (p *ListVolumesParams) SetVirtualmachineid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["virtualmachineid"] = v -} - -func (p *ListVolumesParams) ResetVirtualmachineid() { - if p.p != nil && p.p["virtualmachineid"] != nil { - delete(p.p, "virtualmachineid") - } -} - -func (p *ListVolumesParams) GetVirtualmachineid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["virtualmachineid"].(string) - return value, ok -} - -func (p *ListVolumesParams) SetZoneid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["zoneid"] = v -} - -func (p *ListVolumesParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") - } -} - -func (p *ListVolumesParams) GetZoneid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["zoneid"].(string) - return value, ok -} - -// You should always use this function to get a new ListVolumesParams instance, -// as then you are sure you have configured all required params -func (s *VolumeService) NewListVolumesParams() *ListVolumesParams { - p := &ListVolumesParams{} - p.p = make(map[string]interface{}) - return p -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *VolumeService) GetVolumeID(name string, opts ...OptionFunc) (string, int, error) { - p := &ListVolumesParams{} - 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.ListVolumes(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.Volumes[0].Id, l.Count, nil - } - - if l.Count > 1 { - for _, v := range l.Volumes { - if v.Name == name { - return v.Id, l.Count, nil + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err } + return nil, err } - } - return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", name, l) -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *VolumeService) GetVolumeByName(name string, opts ...OptionFunc) (*Volume, int, error) { - id, count, err := s.GetVolumeID(name, opts...) - if err != nil { - return nil, count, err - } - - r, count, err := s.GetVolumeByID(id, opts...) - if err != nil { - return nil, count, err - } - return r, count, nil -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *VolumeService) GetVolumeByID(id string, opts ...OptionFunc) (*Volume, int, error) { - p := &ListVolumesParams{} - p.p = make(map[string]interface{}) - - p.p["id"] = id - for _, fn := range append(s.cs.options, opts...) { - if err := fn(s.cs, p); err != nil { - return nil, -1, err + b, err = getRawValue(b) + if err != nil { + return nil, err } - } - l, err := s.ListVolumes(p) - if err != nil { - if strings.Contains(err.Error(), fmt.Sprintf( - "Invalid parameter id value=%s due to incorrect long value format, "+ - "or entity does not exist", id)) { - return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + if err := json.Unmarshal(b, &r); err != nil { + return nil, err } - return nil, -1, err - } - - if l.Count == 0 { - return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) - } - - if l.Count == 1 { - return l.Volumes[0], l.Count, nil - } - return nil, l.Count, fmt.Errorf("There is more then one result for Volume UUID: %s!", id) -} - -// Lists all volumes. -func (s *VolumeService) ListVolumes(p *ListVolumesParams) (*ListVolumesResponse, error) { - resp, err := s.cs.newRequest("listVolumes", p.toURLValues()) - if err != nil { - return nil, err - } - - var r ListVolumesResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err } return &r, nil } -type ListVolumesResponse struct { - Count int `json:"count"` - Volumes []*Volume `json:"volume"` -} - -type Volume struct { +type ImportVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -2688,1127 +2582,1879 @@ type Volume struct { Zonename string `json:"zonename"` } -type ListVolumesMetricsParams struct { +type ListElastistorVolumeParams struct { p map[string]interface{} } -func (p *ListVolumesMetricsParams) toURLValues() url.Values { +func (p *ListElastistorVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } - if v, found := p.p["clusterid"]; found { - u.Set("clusterid", v.(string)) + return u +} + +func (p *ListElastistorVolumeParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["diskofferingid"]; found { - u.Set("diskofferingid", v.(string)) + p.p["id"] = v +} + +func (p *ListElastistorVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } - if v, found := p.p["displayvolume"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("displayvolume", vv) +} + +func (p *ListElastistorVolumeParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new ListElastistorVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewListElastistorVolumeParams(id string) *ListElastistorVolumeParams { + p := &ListElastistorVolumeParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetElastistorVolumeByID(id string, opts ...OptionFunc) (*ElastistorVolume, int, error) { + p := &ListElastistorVolumeParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } } - if v, found := p.p["hostid"]; found { - u.Set("hostid", v.(string)) + + l, err := s.ListElastistorVolume(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.ElastistorVolume[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for ElastistorVolume UUID: %s!", id) +} + +// Lists the volumes of elastistor +func (s *VolumeService) ListElastistorVolume(p *ListElastistorVolumeParams) (*ListElastistorVolumeResponse, error) { + resp, err := s.cs.newRequest("listElastistorVolume", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListElastistorVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListElastistorVolumeResponse struct { + Count int `json:"count"` + ElastistorVolume []*ElastistorVolume `json:"elastistorvolume"` +} + +type ElastistorVolume struct { + Compression string `json:"compression"` + Deduplication string `json:"deduplication"` + Graceallowed string `json:"graceallowed"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Sync string `json:"sync"` +} + +type ListVolumesParams struct { + p map[string]interface{} +} + +func (p *ListVolumesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["clusterid"]; found { + u.Set("clusterid", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["displayvolume"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("displayvolume", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("ids", vv) + } + if v, found := p.p["isencrypted"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isencrypted", vv) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["listsystemvms"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listsystemvms", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["podid"]; found { + u.Set("podid", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["retrieveonlyresourcecount"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("retrieveonlyresourcecount", vv) + } + if v, found := p.p["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + if v, found := p.p["state"]; found { + u.Set("state", v.(string)) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + if v, found := p.p["type"]; found { + u.Set("type", v.(string)) + } + if v, found := p.p["virtualmachineid"]; found { + u.Set("virtualmachineid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListVolumesParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListVolumesParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListVolumesParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetClusterid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["clusterid"] = v +} + +func (p *ListVolumesParams) ResetClusterid() { + if p.p != nil && p.p["clusterid"] != nil { + delete(p.p, "clusterid") + } +} + +func (p *ListVolumesParams) GetClusterid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["clusterid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetDiskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["diskofferingid"] = v +} + +func (p *ListVolumesParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") + } +} + +func (p *ListVolumesParams) GetDiskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["diskofferingid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetDisplayvolume(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["displayvolume"] = v +} + +func (p *ListVolumesParams) ResetDisplayvolume() { + if p.p != nil && p.p["displayvolume"] != nil { + delete(p.p, "displayvolume") + } +} + +func (p *ListVolumesParams) GetDisplayvolume() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["displayvolume"].(bool) + return value, ok +} + +func (p *ListVolumesParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListVolumesParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListVolumesParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetHostid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["hostid"] = v +} + +func (p *ListVolumesParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") + } +} + +func (p *ListVolumesParams) GetHostid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["hostid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListVolumesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListVolumesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetIds(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ids"] = v +} + +func (p *ListVolumesParams) ResetIds() { + if p.p != nil && p.p["ids"] != nil { + delete(p.p, "ids") + } +} + +func (p *ListVolumesParams) GetIds() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ids"].([]string) + return value, ok +} + +func (p *ListVolumesParams) SetIsencrypted(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isencrypted"] = v +} + +func (p *ListVolumesParams) ResetIsencrypted() { + if p.p != nil && p.p["isencrypted"] != nil { + delete(p.p, "isencrypted") + } +} + +func (p *ListVolumesParams) GetIsencrypted() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isencrypted"].(bool) + return value, ok +} + +func (p *ListVolumesParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v +} + +func (p *ListVolumesParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } +} + +func (p *ListVolumesParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok +} + +func (p *ListVolumesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListVolumesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListVolumesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listall"] = v +} + +func (p *ListVolumesParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") + } +} + +func (p *ListVolumesParams) GetListall() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listall"].(bool) + return value, ok +} + +func (p *ListVolumesParams) SetListsystemvms(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listsystemvms"] = v +} + +func (p *ListVolumesParams) ResetListsystemvms() { + if p.p != nil && p.p["listsystemvms"] != nil { + delete(p.p, "listsystemvms") + } +} + +func (p *ListVolumesParams) GetListsystemvms() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listsystemvms"].(bool) + return value, ok +} + +func (p *ListVolumesParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListVolumesParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListVolumesParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListVolumesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListVolumesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListVolumesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + p.p["pagesize"] = v +} + +func (p *ListVolumesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") } - if v, found := p.p["ids"]; found { - vv := strings.Join(v.([]string), ",") - u.Set("ids", vv) +} + +func (p *ListVolumesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["isencrypted"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("isencrypted", vv) + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListVolumesParams) SetPodid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["isrecursive"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("isrecursive", vv) + p.p["podid"] = v +} + +func (p *ListVolumesParams) ResetPodid() { + if p.p != nil && p.p["podid"] != nil { + delete(p.p, "podid") } - if v, found := p.p["keyword"]; found { - u.Set("keyword", v.(string)) +} + +func (p *ListVolumesParams) GetPodid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["listall"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("listall", vv) + value, ok := p.p["podid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["listsystemvms"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("listsystemvms", vv) + p.p["projectid"] = v +} + +func (p *ListVolumesParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) +} + +func (p *ListVolumesParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["page"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("page", vv) + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetRetrieveonlyresourcecount(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["pagesize"]; found { - vv := strconv.Itoa(v.(int)) - u.Set("pagesize", vv) + p.p["retrieveonlyresourcecount"] = v +} + +func (p *ListVolumesParams) ResetRetrieveonlyresourcecount() { + if p.p != nil && p.p["retrieveonlyresourcecount"] != nil { + delete(p.p, "retrieveonlyresourcecount") } - if v, found := p.p["podid"]; found { - u.Set("podid", v.(string)) +} + +func (p *ListVolumesParams) GetRetrieveonlyresourcecount() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["projectid"]; found { - u.Set("projectid", v.(string)) + value, ok := p.p["retrieveonlyresourcecount"].(bool) + return value, ok +} + +func (p *ListVolumesParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["retrieveonlyresourcecount"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("retrieveonlyresourcecount", vv) + p.p["serviceofferingid"] = v +} + +func (p *ListVolumesParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") } - if v, found := p.p["serviceofferingid"]; found { - u.Set("serviceofferingid", v.(string)) +} + +func (p *ListVolumesParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["state"]; found { - u.Set("state", v.(string)) + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetState(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["storageid"]; found { - u.Set("storageid", v.(string)) + p.p["state"] = v +} + +func (p *ListVolumesParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") } - if v, found := p.p["tags"]; found { - m := v.(map[string]string) - for i, k := range getSortedKeysFromMap(m) { - u.Set(fmt.Sprintf("tags[%d].key", i), k) - u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) - } +} + +func (p *ListVolumesParams) GetState() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["type"]; found { - u.Set("type", v.(string)) + value, ok := p.p["state"].(string) + return value, ok +} + +func (p *ListVolumesParams) SetStorageid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["virtualmachineid"]; found { - u.Set("virtualmachineid", v.(string)) + p.p["storageid"] = v +} + +func (p *ListVolumesParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) +} + +func (p *ListVolumesParams) GetStorageid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["storageid"].(string) + return value, ok } -func (p *ListVolumesMetricsParams) SetAccount(v string) { +func (p *ListVolumesParams) SetTags(v map[string]string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["account"] = v + p.p["tags"] = v } -func (p *ListVolumesMetricsParams) ResetAccount() { - if p.p != nil && p.p["account"] != nil { - delete(p.p, "account") +func (p *ListVolumesParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") } } -func (p *ListVolumesMetricsParams) GetAccount() (string, bool) { +func (p *ListVolumesParams) GetTags() (map[string]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["account"].(string) + value, ok := p.p["tags"].(map[string]string) return value, ok } -func (p *ListVolumesMetricsParams) SetClusterid(v string) { +func (p *ListVolumesParams) SetType(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["clusterid"] = v + p.p["type"] = v } -func (p *ListVolumesMetricsParams) ResetClusterid() { - if p.p != nil && p.p["clusterid"] != nil { - delete(p.p, "clusterid") +func (p *ListVolumesParams) ResetType() { + if p.p != nil && p.p["type"] != nil { + delete(p.p, "type") } } -func (p *ListVolumesMetricsParams) GetClusterid() (string, bool) { +func (p *ListVolumesParams) GetType() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["clusterid"].(string) + value, ok := p.p["type"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetDiskofferingid(v string) { +func (p *ListVolumesParams) SetVirtualmachineid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["diskofferingid"] = v + p.p["virtualmachineid"] = v } -func (p *ListVolumesMetricsParams) ResetDiskofferingid() { - if p.p != nil && p.p["diskofferingid"] != nil { - delete(p.p, "diskofferingid") +func (p *ListVolumesParams) ResetVirtualmachineid() { + if p.p != nil && p.p["virtualmachineid"] != nil { + delete(p.p, "virtualmachineid") } } -func (p *ListVolumesMetricsParams) GetDiskofferingid() (string, bool) { +func (p *ListVolumesParams) GetVirtualmachineid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["diskofferingid"].(string) + value, ok := p.p["virtualmachineid"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetDisplayvolume(v bool) { +func (p *ListVolumesParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListVolumesParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListVolumesParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["displayvolume"] = v -} + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListVolumesParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewListVolumesParams() *ListVolumesParams { + p := &ListVolumesParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetVolumeID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListVolumesParams{} + 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 + } + } -func (p *ListVolumesMetricsParams) ResetDisplayvolume() { - if p.p != nil && p.p["displayvolume"] != nil { - delete(p.p, "displayvolume") + l, err := s.ListVolumes(p) + if err != nil { + return "", -1, err } -} -func (p *ListVolumesMetricsParams) GetDisplayvolume() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if l.Count == 0 { + return "", l.Count, fmt.Errorf("No match found for %s: %+v", name, l) } - value, ok := p.p["displayvolume"].(bool) - return value, ok -} -func (p *ListVolumesMetricsParams) SetDomainid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + if l.Count == 1 { + return l.Volumes[0].Id, l.Count, nil } - p.p["domainid"] = v -} -func (p *ListVolumesMetricsParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") + if l.Count > 1 { + for _, v := range l.Volumes { + 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) } -func (p *ListVolumesMetricsParams) GetDomainid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetVolumeByName(name string, opts ...OptionFunc) (*Volume, int, error) { + id, count, err := s.GetVolumeID(name, opts...) + if err != nil { + return nil, count, err } - value, ok := p.p["domainid"].(string) - return value, ok -} -func (p *ListVolumesMetricsParams) SetHostid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + r, count, err := s.GetVolumeByID(id, opts...) + if err != nil { + return nil, count, err } - p.p["hostid"] = v + return r, count, nil } -func (p *ListVolumesMetricsParams) ResetHostid() { - if p.p != nil && p.p["hostid"] != nil { - delete(p.p, "hostid") - } -} +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetVolumeByID(id string, opts ...OptionFunc) (*Volume, int, error) { + p := &ListVolumesParams{} + p.p = make(map[string]interface{}) -func (p *ListVolumesMetricsParams) GetHostid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } } - value, ok := p.p["hostid"].(string) - return value, ok -} -func (p *ListVolumesMetricsParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + l, err := s.ListVolumes(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err } - p.p["id"] = v -} -func (p *ListVolumesMetricsParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) } -} -func (p *ListVolumesMetricsParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if l.Count == 1 { + return l.Volumes[0], l.Count, nil } - value, ok := p.p["id"].(string) - return value, ok + return nil, l.Count, fmt.Errorf("There is more then one result for Volume UUID: %s!", id) } -func (p *ListVolumesMetricsParams) SetIds(v []string) { - if p.p == nil { - p.p = make(map[string]interface{}) +// Lists all volumes. +func (s *VolumeService) ListVolumes(p *ListVolumesParams) (*ListVolumesResponse, error) { + resp, err := s.cs.newRequest("listVolumes", p.toURLValues()) + if err != nil { + return nil, err } - p.p["ids"] = v -} -func (p *ListVolumesMetricsParams) ResetIds() { - if p.p != nil && p.p["ids"] != nil { - delete(p.p, "ids") + var r ListVolumesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } + + return &r, nil } -func (p *ListVolumesMetricsParams) GetIds() ([]string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["ids"].([]string) - return value, ok +type ListVolumesResponse struct { + Count int `json:"count"` + Volumes []*Volume `json:"volume"` } -func (p *ListVolumesMetricsParams) SetIsencrypted(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["isencrypted"] = v +type Volume struct { + Account string `json:"account"` + Attached string `json:"attached"` + Chaininfo string `json:"chaininfo"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Destroyed bool `json:"destroyed"` + Deviceid int64 `json:"deviceid"` + DiskBytesReadRate int64 `json:"diskBytesReadRate"` + DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` + DiskIopsReadRate int64 `json:"diskIopsReadRate"` + DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayvolume bool `json:"displayvolume"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Encryptformat string `json:"encryptformat"` + Externaluuid string `json:"externaluuid"` + Hasannotations bool `json:"hasannotations"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Isextractable bool `json:"isextractable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Miniops int64 `json:"miniops"` + Name string `json:"name"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provisioningtype string `json:"provisioningtype"` + Quiescevm bool `json:"quiescevm"` + Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + State string `json:"state"` + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -func (p *ListVolumesMetricsParams) ResetIsencrypted() { - if p.p != nil && p.p["isencrypted"] != nil { - delete(p.p, "isencrypted") - } +type ListVolumesForImportParams struct { + p map[string]interface{} } -func (p *ListVolumesMetricsParams) GetIsencrypted() (bool, bool) { +func (p *ListVolumesForImportParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["isencrypted"].(bool) - return value, ok + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["path"]; found { + u.Set("path", v.(string)) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + return u } -func (p *ListVolumesMetricsParams) SetIsrecursive(v bool) { +func (p *ListVolumesForImportParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["isrecursive"] = v + p.p["keyword"] = v } -func (p *ListVolumesMetricsParams) ResetIsrecursive() { - if p.p != nil && p.p["isrecursive"] != nil { - delete(p.p, "isrecursive") +func (p *ListVolumesForImportParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") } } -func (p *ListVolumesMetricsParams) GetIsrecursive() (bool, bool) { +func (p *ListVolumesForImportParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["isrecursive"].(bool) + value, ok := p.p["keyword"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetKeyword(v string) { +func (p *ListVolumesForImportParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["keyword"] = v + p.p["page"] = v } -func (p *ListVolumesMetricsParams) ResetKeyword() { - if p.p != nil && p.p["keyword"] != nil { - delete(p.p, "keyword") +func (p *ListVolumesForImportParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") } } -func (p *ListVolumesMetricsParams) GetKeyword() (string, bool) { +func (p *ListVolumesForImportParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["keyword"].(string) + value, ok := p.p["page"].(int) return value, ok } -func (p *ListVolumesMetricsParams) SetListall(v bool) { +func (p *ListVolumesForImportParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["listall"] = v + p.p["pagesize"] = v } -func (p *ListVolumesMetricsParams) ResetListall() { - if p.p != nil && p.p["listall"] != nil { - delete(p.p, "listall") +func (p *ListVolumesForImportParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") } } -func (p *ListVolumesMetricsParams) GetListall() (bool, bool) { +func (p *ListVolumesForImportParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["listall"].(bool) + value, ok := p.p["pagesize"].(int) return value, ok } -func (p *ListVolumesMetricsParams) SetListsystemvms(v bool) { +func (p *ListVolumesForImportParams) SetPath(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["listsystemvms"] = v + p.p["path"] = v } -func (p *ListVolumesMetricsParams) ResetListsystemvms() { - if p.p != nil && p.p["listsystemvms"] != nil { - delete(p.p, "listsystemvms") +func (p *ListVolumesForImportParams) ResetPath() { + if p.p != nil && p.p["path"] != nil { + delete(p.p, "path") } } -func (p *ListVolumesMetricsParams) GetListsystemvms() (bool, bool) { +func (p *ListVolumesForImportParams) GetPath() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["listsystemvms"].(bool) + value, ok := p.p["path"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetName(v string) { +func (p *ListVolumesForImportParams) SetStorageid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["name"] = v + p.p["storageid"] = v } -func (p *ListVolumesMetricsParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") +func (p *ListVolumesForImportParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") } } -func (p *ListVolumesMetricsParams) GetName() (string, bool) { +func (p *ListVolumesForImportParams) GetStorageid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["name"].(string) + value, ok := p.p["storageid"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetPage(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["page"] = v +// You should always use this function to get a new ListVolumesForImportParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewListVolumesForImportParams(storageid string) *ListVolumesForImportParams { + p := &ListVolumesForImportParams{} + p.p = make(map[string]interface{}) + p.p["storageid"] = storageid + return p } -func (p *ListVolumesMetricsParams) ResetPage() { - if p.p != nil && p.p["page"] != nil { - delete(p.p, "page") +// Lists unmanaged volumes on a storage pool +func (s *VolumeService) ListVolumesForImport(p *ListVolumesForImportParams) (*ListVolumesForImportResponse, error) { + resp, err := s.cs.newRequest("listVolumesForImport", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListVolumesForImportResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } + + return &r, nil } -func (p *ListVolumesMetricsParams) GetPage() (int, bool) { +type ListVolumesForImportResponse struct { + Count int `json:"count"` + VolumesForImport []*VolumesForImport `json:"volumesforimport"` +} + +type VolumesForImport struct { + Chaininfo string `json:"chaininfo"` + Details map[string]string `json:"details"` + Encryptformat string `json:"encryptformat"` + Format string `json:"format"` + Fullpath string `json:"fullpath"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Path string `json:"path"` + Size int64 `json:"size"` + Storage string `json:"storage"` + Storageid string `json:"storageid"` + Storagetype string `json:"storagetype"` + Virtualsize int64 `json:"virtualsize"` +} + +type ListVolumesMetricsParams struct { + p map[string]interface{} +} + +func (p *ListVolumesMetricsParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["page"].(int) - return value, ok + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["clusterid"]; found { + u.Set("clusterid", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["displayvolume"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("displayvolume", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["hostid"]; found { + u.Set("hostid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("ids", vv) + } + if v, found := p.p["isencrypted"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isencrypted", vv) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["listsystemvms"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listsystemvms", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["podid"]; found { + u.Set("podid", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["retrieveonlyresourcecount"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("retrieveonlyresourcecount", vv) + } + if v, found := p.p["serviceofferingid"]; found { + u.Set("serviceofferingid", v.(string)) + } + if v, found := p.p["state"]; found { + u.Set("state", v.(string)) + } + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) + } + if v, found := p.p["tags"]; found { + m := v.(map[string]string) + for i, k := range getSortedKeysFromMap(m) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + if v, found := p.p["type"]; found { + u.Set("type", v.(string)) + } + if v, found := p.p["virtualmachineid"]; found { + u.Set("virtualmachineid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u } -func (p *ListVolumesMetricsParams) SetPagesize(v int) { +func (p *ListVolumesMetricsParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["pagesize"] = v + p.p["account"] = v } -func (p *ListVolumesMetricsParams) ResetPagesize() { - if p.p != nil && p.p["pagesize"] != nil { - delete(p.p, "pagesize") +func (p *ListVolumesMetricsParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *ListVolumesMetricsParams) GetPagesize() (int, bool) { +func (p *ListVolumesMetricsParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["pagesize"].(int) + value, ok := p.p["account"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetPodid(v string) { +func (p *ListVolumesMetricsParams) SetClusterid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["podid"] = v + p.p["clusterid"] = v } -func (p *ListVolumesMetricsParams) ResetPodid() { - if p.p != nil && p.p["podid"] != nil { - delete(p.p, "podid") +func (p *ListVolumesMetricsParams) ResetClusterid() { + if p.p != nil && p.p["clusterid"] != nil { + delete(p.p, "clusterid") } } -func (p *ListVolumesMetricsParams) GetPodid() (string, bool) { +func (p *ListVolumesMetricsParams) GetClusterid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["podid"].(string) + value, ok := p.p["clusterid"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetProjectid(v string) { +func (p *ListVolumesMetricsParams) SetDiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["projectid"] = v + p.p["diskofferingid"] = v } -func (p *ListVolumesMetricsParams) ResetProjectid() { - if p.p != nil && p.p["projectid"] != nil { - delete(p.p, "projectid") +func (p *ListVolumesMetricsParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") } } -func (p *ListVolumesMetricsParams) GetProjectid() (string, bool) { +func (p *ListVolumesMetricsParams) GetDiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["projectid"].(string) + value, ok := p.p["diskofferingid"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetRetrieveonlyresourcecount(v bool) { +func (p *ListVolumesMetricsParams) SetDisplayvolume(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["retrieveonlyresourcecount"] = v + p.p["displayvolume"] = v } -func (p *ListVolumesMetricsParams) ResetRetrieveonlyresourcecount() { - if p.p != nil && p.p["retrieveonlyresourcecount"] != nil { - delete(p.p, "retrieveonlyresourcecount") +func (p *ListVolumesMetricsParams) ResetDisplayvolume() { + if p.p != nil && p.p["displayvolume"] != nil { + delete(p.p, "displayvolume") } } -func (p *ListVolumesMetricsParams) GetRetrieveonlyresourcecount() (bool, bool) { +func (p *ListVolumesMetricsParams) GetDisplayvolume() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["retrieveonlyresourcecount"].(bool) + value, ok := p.p["displayvolume"].(bool) return value, ok } -func (p *ListVolumesMetricsParams) SetServiceofferingid(v string) { +func (p *ListVolumesMetricsParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["serviceofferingid"] = v + p.p["domainid"] = v } -func (p *ListVolumesMetricsParams) ResetServiceofferingid() { - if p.p != nil && p.p["serviceofferingid"] != nil { - delete(p.p, "serviceofferingid") +func (p *ListVolumesMetricsParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") } } -func (p *ListVolumesMetricsParams) GetServiceofferingid() (string, bool) { +func (p *ListVolumesMetricsParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["serviceofferingid"].(string) + value, ok := p.p["domainid"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetState(v string) { +func (p *ListVolumesMetricsParams) SetHostid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["state"] = v + p.p["hostid"] = v } -func (p *ListVolumesMetricsParams) ResetState() { - if p.p != nil && p.p["state"] != nil { - delete(p.p, "state") +func (p *ListVolumesMetricsParams) ResetHostid() { + if p.p != nil && p.p["hostid"] != nil { + delete(p.p, "hostid") } } -func (p *ListVolumesMetricsParams) GetState() (string, bool) { +func (p *ListVolumesMetricsParams) GetHostid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["state"].(string) + value, ok := p.p["hostid"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetStorageid(v string) { +func (p *ListVolumesMetricsParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["storageid"] = v + p.p["id"] = v } -func (p *ListVolumesMetricsParams) ResetStorageid() { - if p.p != nil && p.p["storageid"] != nil { - delete(p.p, "storageid") +func (p *ListVolumesMetricsParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *ListVolumesMetricsParams) GetStorageid() (string, bool) { +func (p *ListVolumesMetricsParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["storageid"].(string) + value, ok := p.p["id"].(string) return value, ok } -func (p *ListVolumesMetricsParams) SetTags(v map[string]string) { +func (p *ListVolumesMetricsParams) SetIds(v []string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["tags"] = v + p.p["ids"] = v } -func (p *ListVolumesMetricsParams) ResetTags() { - if p.p != nil && p.p["tags"] != nil { - delete(p.p, "tags") +func (p *ListVolumesMetricsParams) ResetIds() { + if p.p != nil && p.p["ids"] != nil { + delete(p.p, "ids") } } -func (p *ListVolumesMetricsParams) GetTags() (map[string]string, bool) { +func (p *ListVolumesMetricsParams) GetIds() ([]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["tags"].(map[string]string) + value, ok := p.p["ids"].([]string) return value, ok } -func (p *ListVolumesMetricsParams) SetType(v string) { +func (p *ListVolumesMetricsParams) SetIsencrypted(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["type"] = v + p.p["isencrypted"] = v } -func (p *ListVolumesMetricsParams) ResetType() { - if p.p != nil && p.p["type"] != nil { - delete(p.p, "type") +func (p *ListVolumesMetricsParams) ResetIsencrypted() { + if p.p != nil && p.p["isencrypted"] != nil { + delete(p.p, "isencrypted") } } -func (p *ListVolumesMetricsParams) GetType() (string, bool) { +func (p *ListVolumesMetricsParams) GetIsencrypted() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["type"].(string) + value, ok := p.p["isencrypted"].(bool) return value, ok } -func (p *ListVolumesMetricsParams) SetVirtualmachineid(v string) { +func (p *ListVolumesMetricsParams) SetIsrecursive(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["virtualmachineid"] = v + p.p["isrecursive"] = v } -func (p *ListVolumesMetricsParams) ResetVirtualmachineid() { - if p.p != nil && p.p["virtualmachineid"] != nil { - delete(p.p, "virtualmachineid") +func (p *ListVolumesMetricsParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") } } -func (p *ListVolumesMetricsParams) GetVirtualmachineid() (string, bool) { +func (p *ListVolumesMetricsParams) GetIsrecursive() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["virtualmachineid"].(string) + value, ok := p.p["isrecursive"].(bool) return value, ok } -func (p *ListVolumesMetricsParams) SetZoneid(v string) { +func (p *ListVolumesMetricsParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["zoneid"] = v + p.p["keyword"] = v } -func (p *ListVolumesMetricsParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") +func (p *ListVolumesMetricsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") } } -func (p *ListVolumesMetricsParams) GetZoneid() (string, bool) { +func (p *ListVolumesMetricsParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["zoneid"].(string) + value, ok := p.p["keyword"].(string) return value, ok } -// You should always use this function to get a new ListVolumesMetricsParams instance, -// as then you are sure you have configured all required params -func (s *VolumeService) NewListVolumesMetricsParams() *ListVolumesMetricsParams { - p := &ListVolumesMetricsParams{} - p.p = make(map[string]interface{}) - return p -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *VolumeService) GetVolumesMetricID(name string, opts ...OptionFunc) (string, int, error) { - p := &ListVolumesMetricsParams{} - 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.ListVolumesMetrics(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.VolumesMetrics[0].Id, l.Count, nil - } - - if l.Count > 1 { - for _, v := range l.VolumesMetrics { - if v.Name == name { - return v.Id, l.Count, nil - } - } +func (p *ListVolumesMetricsParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", name, l) + p.p["listall"] = v } -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *VolumeService) GetVolumesMetricByName(name string, opts ...OptionFunc) (*VolumesMetric, int, error) { - id, count, err := s.GetVolumesMetricID(name, opts...) - if err != nil { - return nil, count, err - } - - r, count, err := s.GetVolumesMetricByID(id, opts...) - if err != nil { - return nil, count, err +func (p *ListVolumesMetricsParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") } - return r, count, nil } -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *VolumeService) GetVolumesMetricByID(id string, opts ...OptionFunc) (*VolumesMetric, int, error) { - p := &ListVolumesMetricsParams{} - p.p = make(map[string]interface{}) - - p.p["id"] = id - - for _, fn := range append(s.cs.options, opts...) { - if err := fn(s.cs, p); err != nil { - return nil, -1, err - } - } - - l, err := s.ListVolumesMetrics(p) - if err != nil { - if strings.Contains(err.Error(), fmt.Sprintf( - "Invalid parameter id value=%s due to incorrect long value format, "+ - "or entity does not exist", id)) { - return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) - } - return nil, -1, err - } - - if l.Count == 0 { - return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) - } - - if l.Count == 1 { - return l.VolumesMetrics[0], l.Count, nil +func (p *ListVolumesMetricsParams) GetListall() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return nil, l.Count, fmt.Errorf("There is more then one result for VolumesMetric UUID: %s!", id) + value, ok := p.p["listall"].(bool) + return value, ok } -// Lists volume metrics -func (s *VolumeService) ListVolumesMetrics(p *ListVolumesMetricsParams) (*ListVolumesMetricsResponse, error) { - resp, err := s.cs.newRequest("listVolumesMetrics", p.toURLValues()) - if err != nil { - return nil, err - } - - var r ListVolumesMetricsResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err +func (p *ListVolumesMetricsParams) SetListsystemvms(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - - return &r, nil + p.p["listsystemvms"] = v } -type ListVolumesMetricsResponse struct { - Count int `json:"count"` - VolumesMetrics []*VolumesMetric `json:"volumesmetric"` +func (p *ListVolumesMetricsParams) ResetListsystemvms() { + if p.p != nil && p.p["listsystemvms"] != nil { + delete(p.p, "listsystemvms") + } } -type VolumesMetric struct { - Account string `json:"account"` - Attached string `json:"attached"` - Chaininfo string `json:"chaininfo"` - Clusterid string `json:"clusterid"` - Clustername string `json:"clustername"` - Created string `json:"created"` - Deleteprotection bool `json:"deleteprotection"` - Destroyed bool `json:"destroyed"` - Deviceid int64 `json:"deviceid"` - DiskBytesReadRate int64 `json:"diskBytesReadRate"` - DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` - DiskIopsReadRate int64 `json:"diskIopsReadRate"` - DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` - Diskiopstotal int64 `json:"diskiopstotal"` - Diskioread int64 `json:"diskioread"` - Diskiowrite int64 `json:"diskiowrite"` - Diskkbsread int64 `json:"diskkbsread"` - Diskkbswrite int64 `json:"diskkbswrite"` - Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` - Diskofferingid string `json:"diskofferingid"` - Diskofferingname string `json:"diskofferingname"` - Displayvolume bool `json:"displayvolume"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainpath string `json:"domainpath"` - Encryptformat string `json:"encryptformat"` - Externaluuid string `json:"externaluuid"` - Hasannotations bool `json:"hasannotations"` - Hypervisor string `json:"hypervisor"` - Id string `json:"id"` - Isextractable bool `json:"isextractable"` - Isodisplaytext string `json:"isodisplaytext"` - Isoid string `json:"isoid"` - Isoname string `json:"isoname"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Maxiops int64 `json:"maxiops"` - Miniops int64 `json:"miniops"` - Name string `json:"name"` - Path string `json:"path"` - Physicalsize int64 `json:"physicalsize"` - Podid string `json:"podid"` - Podname string `json:"podname"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Provisioningtype string `json:"provisioningtype"` - Quiescevm bool `json:"quiescevm"` - Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` - Serviceofferingid string `json:"serviceofferingid"` - Serviceofferingname string `json:"serviceofferingname"` - Size int64 `json:"size"` - Sizegb string `json:"sizegb"` - Snapshotid string `json:"snapshotid"` - State string `json:"state"` - Status string `json:"status"` - 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"` - Templatename string `json:"templatename"` - Type string `json:"type"` - Utilization string `json:"utilization"` - Virtualmachineid string `json:"virtualmachineid"` - Virtualsize int64 `json:"virtualsize"` - Vmdisplayname string `json:"vmdisplayname"` - Vmname string `json:"vmname"` - Vmstate string `json:"vmstate"` - Vmtype string `json:"vmtype"` - Volumecheckresult map[string]string `json:"volumecheckresult"` - Volumerepairresult map[string]string `json:"volumerepairresult"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` +func (p *ListVolumesMetricsParams) GetListsystemvms() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listsystemvms"].(bool) + return value, ok } -type MigrateVolumeParams struct { - p map[string]interface{} +func (p *ListVolumesMetricsParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v } -func (p *MigrateVolumeParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u +func (p *ListVolumesMetricsParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") } - if v, found := p.p["livemigrate"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("livemigrate", vv) +} + +func (p *ListVolumesMetricsParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["newdiskofferingid"]; found { - u.Set("newdiskofferingid", v.(string)) + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListVolumesMetricsParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["storageid"]; found { - u.Set("storageid", v.(string)) + p.p["page"] = v +} + +func (p *ListVolumesMetricsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") } - if v, found := p.p["volumeid"]; found { - u.Set("volumeid", v.(string)) +} + +func (p *ListVolumesMetricsParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["page"].(int) + return value, ok } -func (p *MigrateVolumeParams) SetLivemigrate(v bool) { +func (p *ListVolumesMetricsParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["livemigrate"] = v + p.p["pagesize"] = v } -func (p *MigrateVolumeParams) ResetLivemigrate() { - if p.p != nil && p.p["livemigrate"] != nil { - delete(p.p, "livemigrate") +func (p *ListVolumesMetricsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") } } -func (p *MigrateVolumeParams) GetLivemigrate() (bool, bool) { +func (p *ListVolumesMetricsParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["livemigrate"].(bool) + value, ok := p.p["pagesize"].(int) return value, ok } -func (p *MigrateVolumeParams) SetNewdiskofferingid(v string) { +func (p *ListVolumesMetricsParams) SetPodid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["newdiskofferingid"] = v + p.p["podid"] = v } -func (p *MigrateVolumeParams) ResetNewdiskofferingid() { - if p.p != nil && p.p["newdiskofferingid"] != nil { - delete(p.p, "newdiskofferingid") +func (p *ListVolumesMetricsParams) ResetPodid() { + if p.p != nil && p.p["podid"] != nil { + delete(p.p, "podid") } } -func (p *MigrateVolumeParams) GetNewdiskofferingid() (string, bool) { +func (p *ListVolumesMetricsParams) GetPodid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["newdiskofferingid"].(string) + value, ok := p.p["podid"].(string) return value, ok } -func (p *MigrateVolumeParams) SetStorageid(v string) { +func (p *ListVolumesMetricsParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["storageid"] = v + p.p["projectid"] = v } -func (p *MigrateVolumeParams) ResetStorageid() { - if p.p != nil && p.p["storageid"] != nil { - delete(p.p, "storageid") +func (p *ListVolumesMetricsParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *MigrateVolumeParams) GetStorageid() (string, bool) { +func (p *ListVolumesMetricsParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["storageid"].(string) + value, ok := p.p["projectid"].(string) return value, ok } -func (p *MigrateVolumeParams) SetVolumeid(v string) { +func (p *ListVolumesMetricsParams) SetRetrieveonlyresourcecount(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["volumeid"] = v + p.p["retrieveonlyresourcecount"] = v } -func (p *MigrateVolumeParams) ResetVolumeid() { - if p.p != nil && p.p["volumeid"] != nil { - delete(p.p, "volumeid") +func (p *ListVolumesMetricsParams) ResetRetrieveonlyresourcecount() { + if p.p != nil && p.p["retrieveonlyresourcecount"] != nil { + delete(p.p, "retrieveonlyresourcecount") } } -func (p *MigrateVolumeParams) GetVolumeid() (string, bool) { +func (p *ListVolumesMetricsParams) GetRetrieveonlyresourcecount() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["volumeid"].(string) + value, ok := p.p["retrieveonlyresourcecount"].(bool) return value, ok } -// You should always use this function to get a new MigrateVolumeParams instance, -// as then you are sure you have configured all required params -func (s *VolumeService) NewMigrateVolumeParams(storageid string, volumeid string) *MigrateVolumeParams { - p := &MigrateVolumeParams{} - p.p = make(map[string]interface{}) - p.p["storageid"] = storageid - p.p["volumeid"] = volumeid - return p +func (p *ListVolumesMetricsParams) SetServiceofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["serviceofferingid"] = v } -// Migrate volume -func (s *VolumeService) MigrateVolume(p *MigrateVolumeParams) (*MigrateVolumeResponse, error) { - resp, err := s.cs.newRequest("migrateVolume", p.toURLValues()) - if err != nil { - return nil, err +func (p *ListVolumesMetricsParams) ResetServiceofferingid() { + if p.p != nil && p.p["serviceofferingid"] != nil { + delete(p.p, "serviceofferingid") } +} - var r MigrateVolumeResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err +func (p *ListVolumesMetricsParams) GetServiceofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } + value, ok := p.p["serviceofferingid"].(string) + return value, ok +} - // If we have a async client, we need to wait for the async result - if s.cs.async { - b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) - if err != nil { - if err == AsyncTimeoutErr { - return &r, err - } - return nil, err - } +func (p *ListVolumesMetricsParams) SetState(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["state"] = v +} - b, err = getRawValue(b) - if err != nil { - return nil, err - } +func (p *ListVolumesMetricsParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") + } +} - if err := json.Unmarshal(b, &r); err != nil { - return nil, err - } +func (p *ListVolumesMetricsParams) GetState() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } + value, ok := p.p["state"].(string) + return value, ok +} - return &r, nil +func (p *ListVolumesMetricsParams) SetStorageid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["storageid"] = v } -type MigrateVolumeResponse struct { - Account string `json:"account"` - Attached string `json:"attached"` - Chaininfo string `json:"chaininfo"` - Clusterid string `json:"clusterid"` - Clustername string `json:"clustername"` - Created string `json:"created"` - Deleteprotection bool `json:"deleteprotection"` - Destroyed bool `json:"destroyed"` - Deviceid int64 `json:"deviceid"` - DiskBytesReadRate int64 `json:"diskBytesReadRate"` - DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` - DiskIopsReadRate int64 `json:"diskIopsReadRate"` - DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` - Diskioread int64 `json:"diskioread"` - Diskiowrite int64 `json:"diskiowrite"` - Diskkbsread int64 `json:"diskkbsread"` - Diskkbswrite int64 `json:"diskkbswrite"` - Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` - Diskofferingid string `json:"diskofferingid"` - Diskofferingname string `json:"diskofferingname"` - Displayvolume bool `json:"displayvolume"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainpath string `json:"domainpath"` - Encryptformat string `json:"encryptformat"` - Externaluuid string `json:"externaluuid"` - Hasannotations bool `json:"hasannotations"` - Hypervisor string `json:"hypervisor"` - Id string `json:"id"` - Isextractable bool `json:"isextractable"` - Isodisplaytext string `json:"isodisplaytext"` - Isoid string `json:"isoid"` - Isoname string `json:"isoname"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Maxiops int64 `json:"maxiops"` - Miniops int64 `json:"miniops"` - Name string `json:"name"` - Path string `json:"path"` - Physicalsize int64 `json:"physicalsize"` - Podid string `json:"podid"` - Podname string `json:"podname"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Provisioningtype string `json:"provisioningtype"` - Quiescevm bool `json:"quiescevm"` - Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` - Serviceofferingid string `json:"serviceofferingid"` - Serviceofferingname string `json:"serviceofferingname"` - Size int64 `json:"size"` - Snapshotid string `json:"snapshotid"` - State string `json:"state"` - Status string `json:"status"` - 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"` - Templatename string `json:"templatename"` - Type string `json:"type"` - Utilization string `json:"utilization"` - Virtualmachineid string `json:"virtualmachineid"` - Virtualsize int64 `json:"virtualsize"` - Vmdisplayname string `json:"vmdisplayname"` - Vmname string `json:"vmname"` - Vmstate string `json:"vmstate"` - Vmtype string `json:"vmtype"` - Volumecheckresult map[string]string `json:"volumecheckresult"` - Volumerepairresult map[string]string `json:"volumerepairresult"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` +func (p *ListVolumesMetricsParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") + } } -type RecoverVolumeParams struct { - p map[string]interface{} +func (p *ListVolumesMetricsParams) GetStorageid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["storageid"].(string) + return value, ok } -func (p *RecoverVolumeParams) toURLValues() url.Values { - u := url.Values{} +func (p *ListVolumesMetricsParams) SetTags(v map[string]string) { if p.p == nil { - return u + p.p = make(map[string]interface{}) } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + p.p["tags"] = v +} + +func (p *ListVolumesMetricsParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") } - return u } -func (p *RecoverVolumeParams) SetId(v string) { +func (p *ListVolumesMetricsParams) GetTags() (map[string]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + value, ok := p.p["tags"].(map[string]string) + return value, ok } -func (p *RecoverVolumeParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *ListVolumesMetricsParams) SetType(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } + p.p["type"] = v } -func (p *RecoverVolumeParams) GetId() (string, bool) { +func (p *ListVolumesMetricsParams) ResetType() { + if p.p != nil && p.p["type"] != nil { + delete(p.p, "type") + } +} + +func (p *ListVolumesMetricsParams) GetType() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["type"].(string) return value, ok } -// You should always use this function to get a new RecoverVolumeParams instance, +func (p *ListVolumesMetricsParams) SetVirtualmachineid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["virtualmachineid"] = v +} + +func (p *ListVolumesMetricsParams) ResetVirtualmachineid() { + if p.p != nil && p.p["virtualmachineid"] != nil { + delete(p.p, "virtualmachineid") + } +} + +func (p *ListVolumesMetricsParams) GetVirtualmachineid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["virtualmachineid"].(string) + return value, ok +} + +func (p *ListVolumesMetricsParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListVolumesMetricsParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListVolumesMetricsParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListVolumesMetricsParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewRecoverVolumeParams(id string) *RecoverVolumeParams { - p := &RecoverVolumeParams{} +func (s *VolumeService) NewListVolumesMetricsParams() *ListVolumesMetricsParams { + p := &ListVolumesMetricsParams{} p.p = make(map[string]interface{}) - p.p["id"] = id return p } -// Recovers a Destroy volume. -func (s *VolumeService) RecoverVolume(p *RecoverVolumeParams) (*RecoverVolumeResponse, error) { - resp, err := s.cs.newRequest("recoverVolume", p.toURLValues()) +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetVolumesMetricID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListVolumesMetricsParams{} + 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.ListVolumesMetrics(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.VolumesMetrics[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.VolumesMetrics { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetVolumesMetricByName(name string, opts ...OptionFunc) (*VolumesMetric, int, error) { + id, count, err := s.GetVolumesMetricID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetVolumesMetricByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *VolumeService) GetVolumesMetricByID(id string, opts ...OptionFunc) (*VolumesMetric, int, error) { + p := &ListVolumesMetricsParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListVolumesMetrics(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.VolumesMetrics[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for VolumesMetric UUID: %s!", id) +} + +// Lists volume metrics +func (s *VolumeService) ListVolumesMetrics(p *ListVolumesMetricsParams) (*ListVolumesMetricsResponse, error) { + resp, err := s.cs.newRequest("listVolumesMetrics", p.toURLValues()) if err != nil { return nil, err } - var r RecoverVolumeResponse + var r ListVolumesMetricsResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -3816,7 +4462,12 @@ func (s *VolumeService) RecoverVolume(p *RecoverVolumeParams) (*RecoverVolumeRes return &r, nil } -type RecoverVolumeResponse struct { +type ListVolumesMetricsResponse struct { + Count int `json:"count"` + VolumesMetrics []*VolumesMetric `json:"volumesmetric"` +} + +type VolumesMetric struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -3830,6 +4481,7 @@ type RecoverVolumeResponse struct { DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` DiskIopsReadRate int64 `json:"diskIopsReadRate"` DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskiopstotal int64 `json:"diskiopstotal"` Diskioread int64 `json:"diskioread"` Diskiowrite int64 `json:"diskiowrite"` Diskkbsread int64 `json:"diskkbsread"` @@ -3867,208 +4519,159 @@ type RecoverVolumeResponse struct { Serviceofferingid string `json:"serviceofferingid"` Serviceofferingname string `json:"serviceofferingname"` Size int64 `json:"size"` + Sizegb string `json:"sizegb"` Snapshotid string `json:"snapshotid"` State string `json:"state"` - Status string `json:"status"` - 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"` - Templatename string `json:"templatename"` - Type string `json:"type"` - Utilization string `json:"utilization"` - Virtualmachineid string `json:"virtualmachineid"` - Virtualsize int64 `json:"virtualsize"` - Vmdisplayname string `json:"vmdisplayname"` - Vmname string `json:"vmname"` - Vmstate string `json:"vmstate"` - Vmtype string `json:"vmtype"` - Volumecheckresult map[string]string `json:"volumecheckresult"` - Volumerepairresult map[string]string `json:"volumerepairresult"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` -} - -type ResizeVolumeParams struct { - p map[string]interface{} -} - -func (p *ResizeVolumeParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["diskofferingid"]; found { - u.Set("diskofferingid", v.(string)) - } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) - } - if v, found := p.p["maxiops"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("maxiops", vv) - } - if v, found := p.p["miniops"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("miniops", vv) - } - if v, found := p.p["shrinkok"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("shrinkok", vv) - } - if v, found := p.p["size"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("size", vv) - } - return u -} - -func (p *ResizeVolumeParams) SetDiskofferingid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["diskofferingid"] = v + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -func (p *ResizeVolumeParams) ResetDiskofferingid() { - if p.p != nil && p.p["diskofferingid"] != nil { - delete(p.p, "diskofferingid") - } +type MigrateVolumeParams struct { + p map[string]interface{} } -func (p *ResizeVolumeParams) GetDiskofferingid() (string, bool) { +func (p *MigrateVolumeParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["diskofferingid"].(string) - return value, ok -} - -func (p *ResizeVolumeParams) SetId(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["livemigrate"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("livemigrate", vv) } - p.p["id"] = v -} - -func (p *ResizeVolumeParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") + if v, found := p.p["newdiskofferingid"]; found { + u.Set("newdiskofferingid", v.(string)) } -} - -func (p *ResizeVolumeParams) GetId() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) } - value, ok := p.p["id"].(string) - return value, ok + if v, found := p.p["volumeid"]; found { + u.Set("volumeid", v.(string)) + } + return u } -func (p *ResizeVolumeParams) SetMaxiops(v int64) { +func (p *MigrateVolumeParams) SetLivemigrate(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["maxiops"] = v + p.p["livemigrate"] = v } -func (p *ResizeVolumeParams) ResetMaxiops() { - if p.p != nil && p.p["maxiops"] != nil { - delete(p.p, "maxiops") +func (p *MigrateVolumeParams) ResetLivemigrate() { + if p.p != nil && p.p["livemigrate"] != nil { + delete(p.p, "livemigrate") } } -func (p *ResizeVolumeParams) GetMaxiops() (int64, bool) { +func (p *MigrateVolumeParams) GetLivemigrate() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["maxiops"].(int64) + value, ok := p.p["livemigrate"].(bool) return value, ok } -func (p *ResizeVolumeParams) SetMiniops(v int64) { +func (p *MigrateVolumeParams) SetNewdiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["miniops"] = v + p.p["newdiskofferingid"] = v } -func (p *ResizeVolumeParams) ResetMiniops() { - if p.p != nil && p.p["miniops"] != nil { - delete(p.p, "miniops") +func (p *MigrateVolumeParams) ResetNewdiskofferingid() { + if p.p != nil && p.p["newdiskofferingid"] != nil { + delete(p.p, "newdiskofferingid") } } -func (p *ResizeVolumeParams) GetMiniops() (int64, bool) { +func (p *MigrateVolumeParams) GetNewdiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["miniops"].(int64) + value, ok := p.p["newdiskofferingid"].(string) return value, ok } -func (p *ResizeVolumeParams) SetShrinkok(v bool) { +func (p *MigrateVolumeParams) SetStorageid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["shrinkok"] = v + p.p["storageid"] = v } -func (p *ResizeVolumeParams) ResetShrinkok() { - if p.p != nil && p.p["shrinkok"] != nil { - delete(p.p, "shrinkok") +func (p *MigrateVolumeParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") } } -func (p *ResizeVolumeParams) GetShrinkok() (bool, bool) { +func (p *MigrateVolumeParams) GetStorageid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["shrinkok"].(bool) + value, ok := p.p["storageid"].(string) return value, ok } -func (p *ResizeVolumeParams) SetSize(v int64) { +func (p *MigrateVolumeParams) SetVolumeid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["size"] = v + p.p["volumeid"] = v } -func (p *ResizeVolumeParams) ResetSize() { - if p.p != nil && p.p["size"] != nil { - delete(p.p, "size") +func (p *MigrateVolumeParams) ResetVolumeid() { + if p.p != nil && p.p["volumeid"] != nil { + delete(p.p, "volumeid") } } -func (p *ResizeVolumeParams) GetSize() (int64, bool) { +func (p *MigrateVolumeParams) GetVolumeid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["size"].(int64) + value, ok := p.p["volumeid"].(string) return value, ok } -// You should always use this function to get a new ResizeVolumeParams instance, +// You should always use this function to get a new MigrateVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewResizeVolumeParams(id string) *ResizeVolumeParams { - p := &ResizeVolumeParams{} +func (s *VolumeService) NewMigrateVolumeParams(storageid string, volumeid string) *MigrateVolumeParams { + p := &MigrateVolumeParams{} p.p = make(map[string]interface{}) - p.p["id"] = id + p.p["storageid"] = storageid + p.p["volumeid"] = volumeid return p } -// Resizes a volume -func (s *VolumeService) ResizeVolume(p *ResizeVolumeParams) (*ResizeVolumeResponse, error) { - resp, err := s.cs.newRequest("resizeVolume", p.toURLValues()) +// Migrate volume +func (s *VolumeService) MigrateVolume(p *MigrateVolumeParams) (*MigrateVolumeResponse, error) { + resp, err := s.cs.newRequest("migrateVolume", p.toURLValues()) if err != nil { return nil, err } - var r ResizeVolumeResponse + var r MigrateVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -4096,7 +4699,7 @@ func (s *VolumeService) ResizeVolume(p *ResizeVolumeParams) (*ResizeVolumeRespon return &r, nil } -type ResizeVolumeResponse struct { +type MigrateVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -4172,145 +4775,211 @@ type ResizeVolumeResponse struct { Zonename string `json:"zonename"` } -type UpdateVolumeParams struct { +type RecoverVolumeParams struct { p map[string]interface{} } -func (p *UpdateVolumeParams) toURLValues() url.Values { +func (p *RecoverVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["chaininfo"]; found { - u.Set("chaininfo", v.(string)) - } - if v, found := p.p["customid"]; found { - u.Set("customid", v.(string)) - } - if v, found := p.p["deleteprotection"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("deleteprotection", vv) - } - if v, found := p.p["displayvolume"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("displayvolume", vv) - } 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)) - } - if v, found := p.p["state"]; found { - u.Set("state", v.(string)) + return u +} + +func (p *RecoverVolumeParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["storageid"]; found { - u.Set("storageid", v.(string)) + p.p["id"] = v +} + +func (p *RecoverVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } - return u } -func (p *UpdateVolumeParams) SetChaininfo(v string) { +func (p *RecoverVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["chaininfo"] = v + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new RecoverVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewRecoverVolumeParams(id string) *RecoverVolumeParams { + p := &RecoverVolumeParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Recovers a Destroy volume. +func (s *VolumeService) RecoverVolume(p *RecoverVolumeParams) (*RecoverVolumeResponse, error) { + resp, err := s.cs.newRequest("recoverVolume", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RecoverVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type RecoverVolumeResponse struct { + Account string `json:"account"` + Attached string `json:"attached"` + Chaininfo string `json:"chaininfo"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Destroyed bool `json:"destroyed"` + Deviceid int64 `json:"deviceid"` + DiskBytesReadRate int64 `json:"diskBytesReadRate"` + DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` + DiskIopsReadRate int64 `json:"diskIopsReadRate"` + DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayvolume bool `json:"displayvolume"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Encryptformat string `json:"encryptformat"` + Externaluuid string `json:"externaluuid"` + Hasannotations bool `json:"hasannotations"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Isextractable bool `json:"isextractable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Miniops int64 `json:"miniops"` + Name string `json:"name"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provisioningtype string `json:"provisioningtype"` + Quiescevm bool `json:"quiescevm"` + Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + State string `json:"state"` + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -func (p *UpdateVolumeParams) ResetChaininfo() { - if p.p != nil && p.p["chaininfo"] != nil { - delete(p.p, "chaininfo") - } +type ResizeVolumeParams struct { + p map[string]interface{} } -func (p *UpdateVolumeParams) GetChaininfo() (string, bool) { +func (p *ResizeVolumeParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["chaininfo"].(string) - return value, ok -} - -func (p *UpdateVolumeParams) SetCustomid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) } - p.p["customid"] = v -} - -func (p *UpdateVolumeParams) ResetCustomid() { - if p.p != nil && p.p["customid"] != nil { - delete(p.p, "customid") + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } -} - -func (p *UpdateVolumeParams) GetCustomid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["maxiops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("maxiops", vv) } - value, ok := p.p["customid"].(string) - return value, ok -} - -func (p *UpdateVolumeParams) SetDeleteprotection(v bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["miniops"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("miniops", vv) } - p.p["deleteprotection"] = v -} - -func (p *UpdateVolumeParams) ResetDeleteprotection() { - if p.p != nil && p.p["deleteprotection"] != nil { - delete(p.p, "deleteprotection") + if v, found := p.p["shrinkok"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("shrinkok", vv) } -} - -func (p *UpdateVolumeParams) GetDeleteprotection() (bool, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if v, found := p.p["size"]; found { + vv := strconv.FormatInt(v.(int64), 10) + u.Set("size", vv) } - value, ok := p.p["deleteprotection"].(bool) - return value, ok + return u } -func (p *UpdateVolumeParams) SetDisplayvolume(v bool) { +func (p *ResizeVolumeParams) SetDiskofferingid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["displayvolume"] = v + p.p["diskofferingid"] = v } -func (p *UpdateVolumeParams) ResetDisplayvolume() { - if p.p != nil && p.p["displayvolume"] != nil { - delete(p.p, "displayvolume") +func (p *ResizeVolumeParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") } } -func (p *UpdateVolumeParams) GetDisplayvolume() (bool, bool) { +func (p *ResizeVolumeParams) GetDiskofferingid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["displayvolume"].(bool) + value, ok := p.p["diskofferingid"].(string) return value, ok } -func (p *UpdateVolumeParams) SetId(v string) { +func (p *ResizeVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *UpdateVolumeParams) ResetId() { +func (p *ResizeVolumeParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *UpdateVolumeParams) GetId() (string, bool) { +func (p *ResizeVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -4318,106 +4987,107 @@ func (p *UpdateVolumeParams) GetId() (string, bool) { return value, ok } -func (p *UpdateVolumeParams) SetName(v string) { +func (p *ResizeVolumeParams) SetMaxiops(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["name"] = v + p.p["maxiops"] = v } -func (p *UpdateVolumeParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") +func (p *ResizeVolumeParams) ResetMaxiops() { + if p.p != nil && p.p["maxiops"] != nil { + delete(p.p, "maxiops") } } -func (p *UpdateVolumeParams) GetName() (string, bool) { +func (p *ResizeVolumeParams) GetMaxiops() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["name"].(string) + value, ok := p.p["maxiops"].(int64) return value, ok } -func (p *UpdateVolumeParams) SetPath(v string) { +func (p *ResizeVolumeParams) SetMiniops(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["path"] = v + p.p["miniops"] = v } -func (p *UpdateVolumeParams) ResetPath() { - if p.p != nil && p.p["path"] != nil { - delete(p.p, "path") +func (p *ResizeVolumeParams) ResetMiniops() { + if p.p != nil && p.p["miniops"] != nil { + delete(p.p, "miniops") } } -func (p *UpdateVolumeParams) GetPath() (string, bool) { +func (p *ResizeVolumeParams) GetMiniops() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["path"].(string) + value, ok := p.p["miniops"].(int64) return value, ok } -func (p *UpdateVolumeParams) SetState(v string) { +func (p *ResizeVolumeParams) SetShrinkok(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["state"] = v + p.p["shrinkok"] = v } -func (p *UpdateVolumeParams) ResetState() { - if p.p != nil && p.p["state"] != nil { - delete(p.p, "state") +func (p *ResizeVolumeParams) ResetShrinkok() { + if p.p != nil && p.p["shrinkok"] != nil { + delete(p.p, "shrinkok") } } -func (p *UpdateVolumeParams) GetState() (string, bool) { +func (p *ResizeVolumeParams) GetShrinkok() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["state"].(string) + value, ok := p.p["shrinkok"].(bool) return value, ok } -func (p *UpdateVolumeParams) SetStorageid(v string) { +func (p *ResizeVolumeParams) SetSize(v int64) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["storageid"] = v + p.p["size"] = v } -func (p *UpdateVolumeParams) ResetStorageid() { - if p.p != nil && p.p["storageid"] != nil { - delete(p.p, "storageid") +func (p *ResizeVolumeParams) ResetSize() { + if p.p != nil && p.p["size"] != nil { + delete(p.p, "size") } } -func (p *UpdateVolumeParams) GetStorageid() (string, bool) { +func (p *ResizeVolumeParams) GetSize() (int64, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["storageid"].(string) + value, ok := p.p["size"].(int64) return value, ok } -// You should always use this function to get a new UpdateVolumeParams instance, +// You should always use this function to get a new ResizeVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewUpdateVolumeParams() *UpdateVolumeParams { - p := &UpdateVolumeParams{} +func (s *VolumeService) NewResizeVolumeParams(id string) *ResizeVolumeParams { + p := &ResizeVolumeParams{} p.p = make(map[string]interface{}) + p.p["id"] = id return p } -// Updates the volume. -func (s *VolumeService) UpdateVolume(p *UpdateVolumeParams) (*UpdateVolumeResponse, error) { - resp, err := s.cs.newRequest("updateVolume", p.toURLValues()) +// Resizes a volume +func (s *VolumeService) ResizeVolume(p *ResizeVolumeParams) (*ResizeVolumeResponse, error) { + resp, err := s.cs.newRequest("resizeVolume", p.toURLValues()) if err != nil { return nil, err } - var r UpdateVolumeResponse + var r ResizeVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -4445,7 +5115,7 @@ func (s *VolumeService) UpdateVolume(p *UpdateVolumeParams) (*UpdateVolumeRespon return &r, nil } -type UpdateVolumeResponse struct { +type ResizeVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -4521,188 +5191,248 @@ type UpdateVolumeResponse struct { Zonename string `json:"zonename"` } -type UploadVolumeParams struct { +type UnmanageVolumeParams struct { + p map[string]interface{} +} + +func (p *UnmanageVolumeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *UnmanageVolumeParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UnmanageVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UnmanageVolumeParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new UnmanageVolumeParams instance, +// as then you are sure you have configured all required params +func (s *VolumeService) NewUnmanageVolumeParams(id string) *UnmanageVolumeParams { + p := &UnmanageVolumeParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Unmanage a volume on storage pool. +func (s *VolumeService) UnmanageVolume(p *UnmanageVolumeParams) (*UnmanageVolumeResponse, error) { + resp, err := s.cs.newRequest("unmanageVolume", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UnmanageVolumeResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type UnmanageVolumeResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type UpdateVolumeParams struct { p map[string]interface{} } -func (p *UploadVolumeParams) toURLValues() url.Values { +func (p *UpdateVolumeParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["account"]; found { - u.Set("account", v.(string)) - } - if v, found := p.p["checksum"]; found { - u.Set("checksum", v.(string)) + if v, found := p.p["chaininfo"]; found { + u.Set("chaininfo", v.(string)) } - if v, found := p.p["diskofferingid"]; found { - u.Set("diskofferingid", v.(string)) + if v, found := p.p["customid"]; found { + u.Set("customid", v.(string)) } - if v, found := p.p["domainid"]; found { - u.Set("domainid", v.(string)) + if v, found := p.p["deleteprotection"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("deleteprotection", vv) } - if v, found := p.p["format"]; found { - u.Set("format", v.(string)) + if v, found := p.p["displayvolume"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("displayvolume", vv) } - if v, found := p.p["imagestoreuuid"]; found { - u.Set("imagestoreuuid", v.(string)) + 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["projectid"]; found { - u.Set("projectid", v.(string)) + if v, found := p.p["path"]; found { + u.Set("path", v.(string)) } - if v, found := p.p["url"]; found { - u.Set("url", v.(string)) + if v, found := p.p["state"]; found { + u.Set("state", v.(string)) } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) + if v, found := p.p["storageid"]; found { + u.Set("storageid", v.(string)) } return u } -func (p *UploadVolumeParams) SetAccount(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["account"] = v -} - -func (p *UploadVolumeParams) ResetAccount() { - if p.p != nil && p.p["account"] != nil { - delete(p.p, "account") - } -} - -func (p *UploadVolumeParams) GetAccount() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["account"].(string) - return value, ok -} - -func (p *UploadVolumeParams) SetChecksum(v string) { +func (p *UpdateVolumeParams) SetChaininfo(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["checksum"] = v + p.p["chaininfo"] = v } -func (p *UploadVolumeParams) ResetChecksum() { - if p.p != nil && p.p["checksum"] != nil { - delete(p.p, "checksum") +func (p *UpdateVolumeParams) ResetChaininfo() { + if p.p != nil && p.p["chaininfo"] != nil { + delete(p.p, "chaininfo") } } -func (p *UploadVolumeParams) GetChecksum() (string, bool) { +func (p *UpdateVolumeParams) GetChaininfo() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["checksum"].(string) + value, ok := p.p["chaininfo"].(string) return value, ok } -func (p *UploadVolumeParams) SetDiskofferingid(v string) { +func (p *UpdateVolumeParams) SetCustomid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["diskofferingid"] = v + p.p["customid"] = v } -func (p *UploadVolumeParams) ResetDiskofferingid() { - if p.p != nil && p.p["diskofferingid"] != nil { - delete(p.p, "diskofferingid") +func (p *UpdateVolumeParams) ResetCustomid() { + if p.p != nil && p.p["customid"] != nil { + delete(p.p, "customid") } } -func (p *UploadVolumeParams) GetDiskofferingid() (string, bool) { +func (p *UpdateVolumeParams) GetCustomid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["diskofferingid"].(string) + value, ok := p.p["customid"].(string) return value, ok } -func (p *UploadVolumeParams) SetDomainid(v string) { +func (p *UpdateVolumeParams) SetDeleteprotection(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["domainid"] = v + p.p["deleteprotection"] = v } -func (p *UploadVolumeParams) ResetDomainid() { - if p.p != nil && p.p["domainid"] != nil { - delete(p.p, "domainid") +func (p *UpdateVolumeParams) ResetDeleteprotection() { + if p.p != nil && p.p["deleteprotection"] != nil { + delete(p.p, "deleteprotection") } } -func (p *UploadVolumeParams) GetDomainid() (string, bool) { +func (p *UpdateVolumeParams) GetDeleteprotection() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["domainid"].(string) + value, ok := p.p["deleteprotection"].(bool) return value, ok } -func (p *UploadVolumeParams) SetFormat(v string) { +func (p *UpdateVolumeParams) SetDisplayvolume(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["format"] = v + p.p["displayvolume"] = v } -func (p *UploadVolumeParams) ResetFormat() { - if p.p != nil && p.p["format"] != nil { - delete(p.p, "format") +func (p *UpdateVolumeParams) ResetDisplayvolume() { + if p.p != nil && p.p["displayvolume"] != nil { + delete(p.p, "displayvolume") } } -func (p *UploadVolumeParams) GetFormat() (string, bool) { +func (p *UpdateVolumeParams) GetDisplayvolume() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["format"].(string) + value, ok := p.p["displayvolume"].(bool) return value, ok } -func (p *UploadVolumeParams) SetImagestoreuuid(v string) { +func (p *UpdateVolumeParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["imagestoreuuid"] = v + p.p["id"] = v } -func (p *UploadVolumeParams) ResetImagestoreuuid() { - if p.p != nil && p.p["imagestoreuuid"] != nil { - delete(p.p, "imagestoreuuid") +func (p *UpdateVolumeParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *UploadVolumeParams) GetImagestoreuuid() (string, bool) { +func (p *UpdateVolumeParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["imagestoreuuid"].(string) + value, ok := p.p["id"].(string) return value, ok } -func (p *UploadVolumeParams) SetName(v string) { +func (p *UpdateVolumeParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["name"] = v } -func (p *UploadVolumeParams) ResetName() { +func (p *UpdateVolumeParams) ResetName() { if p.p != nil && p.p["name"] != nil { delete(p.p, "name") } } -func (p *UploadVolumeParams) GetName() (string, bool) { +func (p *UpdateVolumeParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -4710,89 +5440,85 @@ func (p *UploadVolumeParams) GetName() (string, bool) { return value, ok } -func (p *UploadVolumeParams) SetProjectid(v string) { +func (p *UpdateVolumeParams) SetPath(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["projectid"] = v + p.p["path"] = v } -func (p *UploadVolumeParams) ResetProjectid() { - if p.p != nil && p.p["projectid"] != nil { - delete(p.p, "projectid") +func (p *UpdateVolumeParams) ResetPath() { + if p.p != nil && p.p["path"] != nil { + delete(p.p, "path") } } -func (p *UploadVolumeParams) GetProjectid() (string, bool) { +func (p *UpdateVolumeParams) GetPath() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["projectid"].(string) + value, ok := p.p["path"].(string) return value, ok } -func (p *UploadVolumeParams) SetUrl(v string) { +func (p *UpdateVolumeParams) SetState(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["url"] = v + p.p["state"] = v } -func (p *UploadVolumeParams) ResetUrl() { - if p.p != nil && p.p["url"] != nil { - delete(p.p, "url") +func (p *UpdateVolumeParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") } } -func (p *UploadVolumeParams) GetUrl() (string, bool) { +func (p *UpdateVolumeParams) GetState() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["url"].(string) + value, ok := p.p["state"].(string) return value, ok } -func (p *UploadVolumeParams) SetZoneid(v string) { +func (p *UpdateVolumeParams) SetStorageid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["zoneid"] = v + p.p["storageid"] = v } -func (p *UploadVolumeParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") +func (p *UpdateVolumeParams) ResetStorageid() { + if p.p != nil && p.p["storageid"] != nil { + delete(p.p, "storageid") } } -func (p *UploadVolumeParams) GetZoneid() (string, bool) { +func (p *UpdateVolumeParams) GetStorageid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["zoneid"].(string) + value, ok := p.p["storageid"].(string) return value, ok } -// You should always use this function to get a new UploadVolumeParams instance, +// You should always use this function to get a new UpdateVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewUploadVolumeParams(format string, name string, url string, zoneid string) *UploadVolumeParams { - p := &UploadVolumeParams{} +func (s *VolumeService) NewUpdateVolumeParams() *UpdateVolumeParams { + p := &UpdateVolumeParams{} p.p = make(map[string]interface{}) - p.p["format"] = format - p.p["name"] = name - p.p["url"] = url - p.p["zoneid"] = zoneid return p } -// Uploads a data disk. -func (s *VolumeService) UploadVolume(p *UploadVolumeParams) (*UploadVolumeResponse, error) { - resp, err := s.cs.newRequest("uploadVolume", p.toURLValues()) +// Updates the volume. +func (s *VolumeService) UpdateVolume(p *UpdateVolumeParams) (*UpdateVolumeResponse, error) { + resp, err := s.cs.newRequest("updateVolume", p.toURLValues()) if err != nil { return nil, err } - var r UploadVolumeResponse + var r UpdateVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -4820,7 +5546,7 @@ func (s *VolumeService) UploadVolume(p *UploadVolumeParams) (*UploadVolumeRespon return &r, nil } -type UploadVolumeResponse struct { +type UpdateVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -4896,209 +5622,278 @@ type UploadVolumeResponse struct { Zonename string `json:"zonename"` } -type ChangeOfferingForVolumeParams struct { +type UploadVolumeParams struct { p map[string]interface{} } -func (p *ChangeOfferingForVolumeParams) toURLValues() url.Values { - u := url.Values{} +func (p *UploadVolumeParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["checksum"]; found { + u.Set("checksum", v.(string)) + } + if v, found := p.p["diskofferingid"]; found { + u.Set("diskofferingid", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["format"]; found { + u.Set("format", v.(string)) + } + if v, found := p.p["imagestoreuuid"]; found { + u.Set("imagestoreuuid", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["url"]; found { + u.Set("url", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *UploadVolumeParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *UploadVolumeParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *UploadVolumeParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *UploadVolumeParams) SetChecksum(v string) { if p.p == nil { - return u - } - if v, found := p.p["automigrate"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("automigrate", vv) - } - if v, found := p.p["diskofferingid"]; found { - u.Set("diskofferingid", v.(string)) + p.p = make(map[string]interface{}) } - if v, found := p.p["id"]; found { - u.Set("id", v.(string)) + p.p["checksum"] = v +} + +func (p *UploadVolumeParams) ResetChecksum() { + if p.p != nil && p.p["checksum"] != nil { + delete(p.p, "checksum") } - if v, found := p.p["maxiops"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("maxiops", vv) +} + +func (p *UploadVolumeParams) GetChecksum() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["miniops"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("miniops", vv) + value, ok := p.p["checksum"].(string) + return value, ok +} + +func (p *UploadVolumeParams) SetDiskofferingid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) } - if v, found := p.p["shrinkok"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("shrinkok", vv) + p.p["diskofferingid"] = v +} + +func (p *UploadVolumeParams) ResetDiskofferingid() { + if p.p != nil && p.p["diskofferingid"] != nil { + delete(p.p, "diskofferingid") } - if v, found := p.p["size"]; found { - vv := strconv.FormatInt(v.(int64), 10) - u.Set("size", vv) +} + +func (p *UploadVolumeParams) GetDiskofferingid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) } - return u + value, ok := p.p["diskofferingid"].(string) + return value, ok } -func (p *ChangeOfferingForVolumeParams) SetAutomigrate(v bool) { +func (p *UploadVolumeParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["automigrate"] = v + p.p["domainid"] = v } -func (p *ChangeOfferingForVolumeParams) ResetAutomigrate() { - if p.p != nil && p.p["automigrate"] != nil { - delete(p.p, "automigrate") +func (p *UploadVolumeParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") } } -func (p *ChangeOfferingForVolumeParams) GetAutomigrate() (bool, bool) { +func (p *UploadVolumeParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["automigrate"].(bool) + value, ok := p.p["domainid"].(string) return value, ok } -func (p *ChangeOfferingForVolumeParams) SetDiskofferingid(v string) { +func (p *UploadVolumeParams) SetFormat(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["diskofferingid"] = v + p.p["format"] = v } -func (p *ChangeOfferingForVolumeParams) ResetDiskofferingid() { - if p.p != nil && p.p["diskofferingid"] != nil { - delete(p.p, "diskofferingid") +func (p *UploadVolumeParams) ResetFormat() { + if p.p != nil && p.p["format"] != nil { + delete(p.p, "format") } } -func (p *ChangeOfferingForVolumeParams) GetDiskofferingid() (string, bool) { +func (p *UploadVolumeParams) GetFormat() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["diskofferingid"].(string) + value, ok := p.p["format"].(string) return value, ok } -func (p *ChangeOfferingForVolumeParams) SetId(v string) { +func (p *UploadVolumeParams) SetImagestoreuuid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["imagestoreuuid"] = v } -func (p *ChangeOfferingForVolumeParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *UploadVolumeParams) ResetImagestoreuuid() { + if p.p != nil && p.p["imagestoreuuid"] != nil { + delete(p.p, "imagestoreuuid") } } -func (p *ChangeOfferingForVolumeParams) GetId() (string, bool) { +func (p *UploadVolumeParams) GetImagestoreuuid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["imagestoreuuid"].(string) return value, ok } -func (p *ChangeOfferingForVolumeParams) SetMaxiops(v int64) { +func (p *UploadVolumeParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["maxiops"] = v + p.p["name"] = v } -func (p *ChangeOfferingForVolumeParams) ResetMaxiops() { - if p.p != nil && p.p["maxiops"] != nil { - delete(p.p, "maxiops") +func (p *UploadVolumeParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") } } -func (p *ChangeOfferingForVolumeParams) GetMaxiops() (int64, bool) { +func (p *UploadVolumeParams) GetName() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["maxiops"].(int64) + value, ok := p.p["name"].(string) return value, ok } -func (p *ChangeOfferingForVolumeParams) SetMiniops(v int64) { +func (p *UploadVolumeParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["miniops"] = v + p.p["projectid"] = v } -func (p *ChangeOfferingForVolumeParams) ResetMiniops() { - if p.p != nil && p.p["miniops"] != nil { - delete(p.p, "miniops") +func (p *UploadVolumeParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ChangeOfferingForVolumeParams) GetMiniops() (int64, bool) { +func (p *UploadVolumeParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["miniops"].(int64) + value, ok := p.p["projectid"].(string) return value, ok } -func (p *ChangeOfferingForVolumeParams) SetShrinkok(v bool) { +func (p *UploadVolumeParams) SetUrl(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["shrinkok"] = v + p.p["url"] = v } -func (p *ChangeOfferingForVolumeParams) ResetShrinkok() { - if p.p != nil && p.p["shrinkok"] != nil { - delete(p.p, "shrinkok") +func (p *UploadVolumeParams) ResetUrl() { + if p.p != nil && p.p["url"] != nil { + delete(p.p, "url") } } -func (p *ChangeOfferingForVolumeParams) GetShrinkok() (bool, bool) { +func (p *UploadVolumeParams) GetUrl() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["shrinkok"].(bool) + value, ok := p.p["url"].(string) return value, ok } -func (p *ChangeOfferingForVolumeParams) SetSize(v int64) { +func (p *UploadVolumeParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["size"] = v + p.p["zoneid"] = v } -func (p *ChangeOfferingForVolumeParams) ResetSize() { - if p.p != nil && p.p["size"] != nil { - delete(p.p, "size") +func (p *UploadVolumeParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") } } -func (p *ChangeOfferingForVolumeParams) GetSize() (int64, bool) { +func (p *UploadVolumeParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["size"].(int64) + value, ok := p.p["zoneid"].(string) return value, ok } -// You should always use this function to get a new ChangeOfferingForVolumeParams instance, +// You should always use this function to get a new UploadVolumeParams instance, // as then you are sure you have configured all required params -func (s *VolumeService) NewChangeOfferingForVolumeParams(diskofferingid string, id string) *ChangeOfferingForVolumeParams { - p := &ChangeOfferingForVolumeParams{} +func (s *VolumeService) NewUploadVolumeParams(format string, name string, url string, zoneid string) *UploadVolumeParams { + p := &UploadVolumeParams{} p.p = make(map[string]interface{}) - p.p["diskofferingid"] = diskofferingid - p.p["id"] = id + p.p["format"] = format + p.p["name"] = name + p.p["url"] = url + p.p["zoneid"] = zoneid return p } -// Change disk offering of the volume and also an option to auto migrate if required to apply the new disk offering -func (s *VolumeService) ChangeOfferingForVolume(p *ChangeOfferingForVolumeParams) (*ChangeOfferingForVolumeResponse, error) { - resp, err := s.cs.newRequest("changeOfferingForVolume", p.toURLValues()) +// Uploads a data disk. +func (s *VolumeService) UploadVolume(p *UploadVolumeParams) (*UploadVolumeResponse, error) { + resp, err := s.cs.newRequest("uploadVolume", p.toURLValues()) if err != nil { return nil, err } - var r ChangeOfferingForVolumeResponse + var r UploadVolumeResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -5126,7 +5921,7 @@ func (s *VolumeService) ChangeOfferingForVolume(p *ChangeOfferingForVolumeParams return &r, nil } -type ChangeOfferingForVolumeResponse struct { +type UploadVolumeResponse struct { Account string `json:"account"` Attached string `json:"attached"` Chaininfo string `json:"chaininfo"` @@ -5640,72 +6435,77 @@ func (s *VolumeService) AssignVolume(p *AssignVolumeParams) (*AssignVolumeRespon } type AssignVolumeResponse struct { - Account string `json:"account"` - Attached string `json:"attached"` - Chaininfo string `json:"chaininfo"` - Clusterid string `json:"clusterid"` - Clustername string `json:"clustername"` - Created string `json:"created"` - Destroyed bool `json:"destroyed"` - Deviceid int64 `json:"deviceid"` - DiskBytesReadRate int64 `json:"diskBytesReadRate"` - DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` - DiskIopsReadRate int64 `json:"diskIopsReadRate"` - DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` - Diskioread int64 `json:"diskioread"` - Diskiowrite int64 `json:"diskiowrite"` - Diskkbsread int64 `json:"diskkbsread"` - Diskkbswrite int64 `json:"diskkbswrite"` - Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` - Diskofferingid string `json:"diskofferingid"` - Diskofferingname string `json:"diskofferingname"` - Displayvolume bool `json:"displayvolume"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Externaluuid string `json:"externaluuid"` - Hasannotations bool `json:"hasannotations"` - Hypervisor string `json:"hypervisor"` - Id string `json:"id"` - Isextractable bool `json:"isextractable"` - Isodisplaytext string `json:"isodisplaytext"` - Isoid string `json:"isoid"` - Isoname string `json:"isoname"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Maxiops int64 `json:"maxiops"` - Miniops int64 `json:"miniops"` - Name string `json:"name"` - Path string `json:"path"` - Physicalsize int64 `json:"physicalsize"` - Podid string `json:"podid"` - Podname string `json:"podname"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Provisioningtype string `json:"provisioningtype"` - Quiescevm bool `json:"quiescevm"` - Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` - Serviceofferingid string `json:"serviceofferingid"` - Serviceofferingname string `json:"serviceofferingname"` - Size int64 `json:"size"` - Snapshotid string `json:"snapshotid"` - State string `json:"state"` - Status string `json:"status"` - 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"` - Templatename string `json:"templatename"` - Type string `json:"type"` - Utilization string `json:"utilization"` - Virtualmachineid string `json:"virtualmachineid"` - Virtualsize int64 `json:"virtualsize"` - Vmdisplayname string `json:"vmdisplayname"` - Vmname string `json:"vmname"` - Vmstate string `json:"vmstate"` - Vmtype string `json:"vmtype"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` + Account string `json:"account"` + Attached string `json:"attached"` + Chaininfo string `json:"chaininfo"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Created string `json:"created"` + Deleteprotection bool `json:"deleteprotection"` + Destroyed bool `json:"destroyed"` + Deviceid int64 `json:"deviceid"` + DiskBytesReadRate int64 `json:"diskBytesReadRate"` + DiskBytesWriteRate int64 `json:"diskBytesWriteRate"` + DiskIopsReadRate int64 `json:"diskIopsReadRate"` + DiskIopsWriteRate int64 `json:"diskIopsWriteRate"` + Diskioread int64 `json:"diskioread"` + Diskiowrite int64 `json:"diskiowrite"` + Diskkbsread int64 `json:"diskkbsread"` + Diskkbswrite int64 `json:"diskkbswrite"` + Diskofferingdisplaytext string `json:"diskofferingdisplaytext"` + Diskofferingid string `json:"diskofferingid"` + Diskofferingname string `json:"diskofferingname"` + Displayvolume bool `json:"displayvolume"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Encryptformat string `json:"encryptformat"` + Externaluuid string `json:"externaluuid"` + Hasannotations bool `json:"hasannotations"` + Hypervisor string `json:"hypervisor"` + Id string `json:"id"` + Isextractable bool `json:"isextractable"` + Isodisplaytext string `json:"isodisplaytext"` + Isoid string `json:"isoid"` + Isoname string `json:"isoname"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Maxiops int64 `json:"maxiops"` + Miniops int64 `json:"miniops"` + Name string `json:"name"` + Path string `json:"path"` + Physicalsize int64 `json:"physicalsize"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Provisioningtype string `json:"provisioningtype"` + Quiescevm bool `json:"quiescevm"` + Serviceofferingdisplaytext string `json:"serviceofferingdisplaytext"` + Serviceofferingid string `json:"serviceofferingid"` + Serviceofferingname string `json:"serviceofferingname"` + Size int64 `json:"size"` + Snapshotid string `json:"snapshotid"` + State string `json:"state"` + Status string `json:"status"` + 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"` + Templatename string `json:"templatename"` + Type string `json:"type"` + Utilization string `json:"utilization"` + Virtualmachineid string `json:"virtualmachineid"` + Virtualsize int64 `json:"virtualsize"` + Vmdisplayname string `json:"vmdisplayname"` + Vmname string `json:"vmname"` + Vmstate string `json:"vmstate"` + Vmtype string `json:"vmtype"` + Volumecheckresult map[string]string `json:"volumecheckresult"` + Volumerepairresult map[string]string `json:"volumerepairresult"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } diff --git a/cloudstack/VolumeService_mock.go b/cloudstack/VolumeService_mock.go index c4436559..cf0179e2 100644 --- a/cloudstack/VolumeService_mock.go +++ b/cloudstack/VolumeService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/VolumeService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/VolumeService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/VolumeService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockVolumeServiceIface is a mock of VolumeServiceIface interface. type MockVolumeServiceIface struct { ctrl *gomock.Controller recorder *MockVolumeServiceIfaceMockRecorder + isgomock struct{} } // MockVolumeServiceIfaceMockRecorder is the mock recorder for MockVolumeServiceIface. @@ -62,7 +68,7 @@ func (m *MockVolumeServiceIface) AssignVolume(p *AssignVolumeParams) (*AssignVol } // AssignVolume indicates an expected call of AssignVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) AssignVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) AssignVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).AssignVolume), p) } @@ -77,7 +83,7 @@ func (m *MockVolumeServiceIface) AttachVolume(p *AttachVolumeParams) (*AttachVol } // AttachVolume indicates an expected call of AttachVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) AttachVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) AttachVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttachVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).AttachVolume), p) } @@ -92,11 +98,26 @@ func (m *MockVolumeServiceIface) ChangeOfferingForVolume(p *ChangeOfferingForVol } // ChangeOfferingForVolume indicates an expected call of ChangeOfferingForVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) ChangeOfferingForVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) ChangeOfferingForVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeOfferingForVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).ChangeOfferingForVolume), p) } +// CheckVolume mocks base method. +func (m *MockVolumeServiceIface) CheckVolume(p *CheckVolumeParams) (*CheckVolumeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CheckVolume", p) + ret0, _ := ret[0].(*CheckVolumeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CheckVolume indicates an expected call of CheckVolume. +func (mr *MockVolumeServiceIfaceMockRecorder) CheckVolume(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).CheckVolume), p) +} + // CreateVolume mocks base method. func (m *MockVolumeServiceIface) CreateVolume(p *CreateVolumeParams) (*CreateVolumeResponse, error) { m.ctrl.T.Helper() @@ -107,7 +128,7 @@ func (m *MockVolumeServiceIface) CreateVolume(p *CreateVolumeParams) (*CreateVol } // CreateVolume indicates an expected call of CreateVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) CreateVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) CreateVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).CreateVolume), p) } @@ -122,7 +143,7 @@ func (m *MockVolumeServiceIface) DeleteVolume(p *DeleteVolumeParams) (*DeleteVol } // DeleteVolume indicates an expected call of DeleteVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) DeleteVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) DeleteVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).DeleteVolume), p) } @@ -137,7 +158,7 @@ func (m *MockVolumeServiceIface) DestroyVolume(p *DestroyVolumeParams) (*Destroy } // DestroyVolume indicates an expected call of DestroyVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) DestroyVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) DestroyVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DestroyVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).DestroyVolume), p) } @@ -152,7 +173,7 @@ func (m *MockVolumeServiceIface) DetachVolume(p *DetachVolumeParams) (*DetachVol } // DetachVolume indicates an expected call of DetachVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) DetachVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) DetachVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetachVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).DetachVolume), p) } @@ -167,39 +188,45 @@ func (m *MockVolumeServiceIface) ExtractVolume(p *ExtractVolumeParams) (*Extract } // ExtractVolume indicates an expected call of ExtractVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) ExtractVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) ExtractVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExtractVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).ExtractVolume), p) } -// GetPathForVolume mocks base method. -func (m *MockVolumeServiceIface) GetPathForVolume(p *GetPathForVolumeParams) (*GetPathForVolumeResponse, error) { +// GetElastistorVolumeByID mocks base method. +func (m *MockVolumeServiceIface) GetElastistorVolumeByID(id string, opts ...OptionFunc) (*ElastistorVolume, int, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPathForVolume", p) - ret0, _ := ret[0].(*GetPathForVolumeResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetElastistorVolumeByID", varargs...) + ret0, _ := ret[0].(*ElastistorVolume) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 } -// GetPathForVolume indicates an expected call of GetPathForVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) GetPathForVolume(p interface{}) *gomock.Call { +// GetElastistorVolumeByID indicates an expected call of GetElastistorVolumeByID. +func (mr *MockVolumeServiceIfaceMockRecorder) GetElastistorVolumeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPathForVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetPathForVolume), p) + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetElastistorVolumeByID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetElastistorVolumeByID), varargs...) } -// GetSolidFireVolumeSize mocks base method. -func (m *MockVolumeServiceIface) GetSolidFireVolumeSize(p *GetSolidFireVolumeSizeParams) (*GetSolidFireVolumeSizeResponse, error) { +// GetPathForVolume mocks base method. +func (m *MockVolumeServiceIface) GetPathForVolume(p *GetPathForVolumeParams) (*GetPathForVolumeResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSolidFireVolumeSize", p) - ret0, _ := ret[0].(*GetSolidFireVolumeSizeResponse) + ret := m.ctrl.Call(m, "GetPathForVolume", p) + ret0, _ := ret[0].(*GetPathForVolumeResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetSolidFireVolumeSize indicates an expected call of GetSolidFireVolumeSize. -func (mr *MockVolumeServiceIfaceMockRecorder) GetSolidFireVolumeSize(p interface{}) *gomock.Call { +// GetPathForVolume indicates an expected call of GetPathForVolume. +func (mr *MockVolumeServiceIfaceMockRecorder) GetPathForVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSolidFireVolumeSize", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetSolidFireVolumeSize), p) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPathForVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetPathForVolume), p) } // GetUploadParamsForVolume mocks base method. @@ -212,7 +239,7 @@ func (m *MockVolumeServiceIface) GetUploadParamsForVolume(p *GetUploadParamsForV } // GetUploadParamsForVolume indicates an expected call of GetUploadParamsForVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) GetUploadParamsForVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetUploadParamsForVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadParamsForVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetUploadParamsForVolume), p) } @@ -220,7 +247,7 @@ func (mr *MockVolumeServiceIfaceMockRecorder) GetUploadParamsForVolume(p interfa // GetVolumeByID mocks base method. func (m *MockVolumeServiceIface) GetVolumeByID(id string, opts ...OptionFunc) (*Volume, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -232,16 +259,16 @@ func (m *MockVolumeServiceIface) GetVolumeByID(id string, opts ...OptionFunc) (* } // GetVolumeByID indicates an expected call of GetVolumeByID. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeByID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumeByID), varargs...) } // GetVolumeByName mocks base method. func (m *MockVolumeServiceIface) GetVolumeByName(name string, opts ...OptionFunc) (*Volume, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -253,16 +280,16 @@ func (m *MockVolumeServiceIface) GetVolumeByName(name string, opts ...OptionFunc } // GetVolumeByName indicates an expected call of GetVolumeByName. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeByName", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumeByName), varargs...) } // GetVolumeID mocks base method. func (m *MockVolumeServiceIface) GetVolumeID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -274,9 +301,9 @@ func (m *MockVolumeServiceIface) GetVolumeID(name string, opts ...OptionFunc) (s } // GetVolumeID indicates an expected call of GetVolumeID. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumeID), varargs...) } @@ -290,7 +317,7 @@ func (m *MockVolumeServiceIface) GetVolumeiScsiName(p *GetVolumeiScsiNameParams) } // GetVolumeiScsiName indicates an expected call of GetVolumeiScsiName. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeiScsiName(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeiScsiName(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeiScsiName", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumeiScsiName), p) } @@ -298,7 +325,7 @@ func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumeiScsiName(p interface{}) // GetVolumesMetricByID mocks base method. func (m *MockVolumeServiceIface) GetVolumesMetricByID(id string, opts ...OptionFunc) (*VolumesMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -310,16 +337,16 @@ func (m *MockVolumeServiceIface) GetVolumesMetricByID(id string, opts ...OptionF } // GetVolumesMetricByID indicates an expected call of GetVolumesMetricByID. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesMetricByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesMetricByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesMetricByID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumesMetricByID), varargs...) } // GetVolumesMetricByName mocks base method. func (m *MockVolumeServiceIface) GetVolumesMetricByName(name string, opts ...OptionFunc) (*VolumesMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -331,16 +358,16 @@ func (m *MockVolumeServiceIface) GetVolumesMetricByName(name string, opts ...Opt } // GetVolumesMetricByName indicates an expected call of GetVolumesMetricByName. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesMetricByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesMetricByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesMetricByName", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumesMetricByName), varargs...) } // GetVolumesMetricID mocks base method. func (m *MockVolumeServiceIface) GetVolumesMetricID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -352,16 +379,16 @@ func (m *MockVolumeServiceIface) GetVolumesMetricID(name string, opts ...OptionF } // GetVolumesMetricID indicates an expected call of GetVolumesMetricID. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesMetricID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesMetricID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesMetricID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumesMetricID), varargs...) } // GetVolumesUsageHistoryByID mocks base method. func (m *MockVolumeServiceIface) GetVolumesUsageHistoryByID(id string, opts ...OptionFunc) (*VolumesUsageHistory, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -373,16 +400,16 @@ func (m *MockVolumeServiceIface) GetVolumesUsageHistoryByID(id string, opts ...O } // GetVolumesUsageHistoryByID indicates an expected call of GetVolumesUsageHistoryByID. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesUsageHistoryByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesUsageHistoryByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesUsageHistoryByID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumesUsageHistoryByID), varargs...) } // GetVolumesUsageHistoryByName mocks base method. func (m *MockVolumeServiceIface) GetVolumesUsageHistoryByName(name string, opts ...OptionFunc) (*VolumesUsageHistory, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -394,16 +421,16 @@ func (m *MockVolumeServiceIface) GetVolumesUsageHistoryByName(name string, opts } // GetVolumesUsageHistoryByName indicates an expected call of GetVolumesUsageHistoryByName. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesUsageHistoryByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesUsageHistoryByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesUsageHistoryByName", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumesUsageHistoryByName), varargs...) } // GetVolumesUsageHistoryID mocks base method. func (m *MockVolumeServiceIface) GetVolumesUsageHistoryID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -415,12 +442,42 @@ func (m *MockVolumeServiceIface) GetVolumesUsageHistoryID(name string, opts ...O } // GetVolumesUsageHistoryID indicates an expected call of GetVolumesUsageHistoryID. -func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesUsageHistoryID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) GetVolumesUsageHistoryID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesUsageHistoryID", reflect.TypeOf((*MockVolumeServiceIface)(nil).GetVolumesUsageHistoryID), varargs...) } +// ImportVolume mocks base method. +func (m *MockVolumeServiceIface) ImportVolume(p *ImportVolumeParams) (*ImportVolumeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ImportVolume", p) + ret0, _ := ret[0].(*ImportVolumeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ImportVolume indicates an expected call of ImportVolume. +func (mr *MockVolumeServiceIfaceMockRecorder) ImportVolume(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImportVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).ImportVolume), p) +} + +// ListElastistorVolume mocks base method. +func (m *MockVolumeServiceIface) ListElastistorVolume(p *ListElastistorVolumeParams) (*ListElastistorVolumeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListElastistorVolume", p) + ret0, _ := ret[0].(*ListElastistorVolumeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListElastistorVolume indicates an expected call of ListElastistorVolume. +func (mr *MockVolumeServiceIfaceMockRecorder) ListElastistorVolume(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListElastistorVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).ListElastistorVolume), p) +} + // ListVolumes mocks base method. func (m *MockVolumeServiceIface) ListVolumes(p *ListVolumesParams) (*ListVolumesResponse, error) { m.ctrl.T.Helper() @@ -431,11 +488,26 @@ func (m *MockVolumeServiceIface) ListVolumes(p *ListVolumesParams) (*ListVolumes } // ListVolumes indicates an expected call of ListVolumes. -func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumes(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumes(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumes", reflect.TypeOf((*MockVolumeServiceIface)(nil).ListVolumes), p) } +// ListVolumesForImport mocks base method. +func (m *MockVolumeServiceIface) ListVolumesForImport(p *ListVolumesForImportParams) (*ListVolumesForImportResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListVolumesForImport", p) + ret0, _ := ret[0].(*ListVolumesForImportResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListVolumesForImport indicates an expected call of ListVolumesForImport. +func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumesForImport(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumesForImport", reflect.TypeOf((*MockVolumeServiceIface)(nil).ListVolumesForImport), p) +} + // ListVolumesMetrics mocks base method. func (m *MockVolumeServiceIface) ListVolumesMetrics(p *ListVolumesMetricsParams) (*ListVolumesMetricsResponse, error) { m.ctrl.T.Helper() @@ -446,7 +518,7 @@ func (m *MockVolumeServiceIface) ListVolumesMetrics(p *ListVolumesMetricsParams) } // ListVolumesMetrics indicates an expected call of ListVolumesMetrics. -func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumesMetrics(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumesMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumesMetrics", reflect.TypeOf((*MockVolumeServiceIface)(nil).ListVolumesMetrics), p) } @@ -461,7 +533,7 @@ func (m *MockVolumeServiceIface) ListVolumesUsageHistory(p *ListVolumesUsageHist } // ListVolumesUsageHistory indicates an expected call of ListVolumesUsageHistory. -func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumesUsageHistory(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) ListVolumesUsageHistory(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumesUsageHistory", reflect.TypeOf((*MockVolumeServiceIface)(nil).ListVolumesUsageHistory), p) } @@ -476,7 +548,7 @@ func (m *MockVolumeServiceIface) MigrateVolume(p *MigrateVolumeParams) (*Migrate } // MigrateVolume indicates an expected call of MigrateVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) MigrateVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) MigrateVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).MigrateVolume), p) } @@ -490,7 +562,7 @@ func (m *MockVolumeServiceIface) NewAssignVolumeParams(volumeid string) *AssignV } // NewAssignVolumeParams indicates an expected call of NewAssignVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewAssignVolumeParams(volumeid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewAssignVolumeParams(volumeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAssignVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewAssignVolumeParams), volumeid) } @@ -504,7 +576,7 @@ func (m *MockVolumeServiceIface) NewAttachVolumeParams(id, virtualmachineid stri } // NewAttachVolumeParams indicates an expected call of NewAttachVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewAttachVolumeParams(id, virtualmachineid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewAttachVolumeParams(id, virtualmachineid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAttachVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewAttachVolumeParams), id, virtualmachineid) } @@ -518,11 +590,25 @@ func (m *MockVolumeServiceIface) NewChangeOfferingForVolumeParams(diskofferingid } // NewChangeOfferingForVolumeParams indicates an expected call of NewChangeOfferingForVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewChangeOfferingForVolumeParams(diskofferingid, id interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewChangeOfferingForVolumeParams(diskofferingid, id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewChangeOfferingForVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewChangeOfferingForVolumeParams), diskofferingid, id) } +// NewCheckVolumeParams mocks base method. +func (m *MockVolumeServiceIface) NewCheckVolumeParams(id string) *CheckVolumeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCheckVolumeParams", id) + ret0, _ := ret[0].(*CheckVolumeParams) + return ret0 +} + +// NewCheckVolumeParams indicates an expected call of NewCheckVolumeParams. +func (mr *MockVolumeServiceIfaceMockRecorder) NewCheckVolumeParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCheckVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewCheckVolumeParams), id) +} + // NewCreateVolumeParams mocks base method. func (m *MockVolumeServiceIface) NewCreateVolumeParams() *CreateVolumeParams { m.ctrl.T.Helper() @@ -546,7 +632,7 @@ func (m *MockVolumeServiceIface) NewDeleteVolumeParams(id string) *DeleteVolumeP } // NewDeleteVolumeParams indicates an expected call of NewDeleteVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewDeleteVolumeParams(id interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewDeleteVolumeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewDeleteVolumeParams), id) } @@ -560,7 +646,7 @@ func (m *MockVolumeServiceIface) NewDestroyVolumeParams(id string) *DestroyVolum } // NewDestroyVolumeParams indicates an expected call of NewDestroyVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewDestroyVolumeParams(id interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewDestroyVolumeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDestroyVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewDestroyVolumeParams), id) } @@ -588,7 +674,7 @@ func (m *MockVolumeServiceIface) NewExtractVolumeParams(id, mode, zoneid string) } // NewExtractVolumeParams indicates an expected call of NewExtractVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewExtractVolumeParams(id, mode, zoneid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewExtractVolumeParams(id, mode, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExtractVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewExtractVolumeParams), id, mode, zoneid) } @@ -602,25 +688,11 @@ func (m *MockVolumeServiceIface) NewGetPathForVolumeParams(volumeid string) *Get } // NewGetPathForVolumeParams indicates an expected call of NewGetPathForVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewGetPathForVolumeParams(volumeid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewGetPathForVolumeParams(volumeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetPathForVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewGetPathForVolumeParams), volumeid) } -// NewGetSolidFireVolumeSizeParams mocks base method. -func (m *MockVolumeServiceIface) NewGetSolidFireVolumeSizeParams(volumeid string) *GetSolidFireVolumeSizeParams { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewGetSolidFireVolumeSizeParams", volumeid) - ret0, _ := ret[0].(*GetSolidFireVolumeSizeParams) - return ret0 -} - -// NewGetSolidFireVolumeSizeParams indicates an expected call of NewGetSolidFireVolumeSizeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewGetSolidFireVolumeSizeParams(volumeid interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetSolidFireVolumeSizeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewGetSolidFireVolumeSizeParams), volumeid) -} - // NewGetUploadParamsForVolumeParams mocks base method. func (m *MockVolumeServiceIface) NewGetUploadParamsForVolumeParams(format, name, zoneid string) *GetUploadParamsForVolumeParams { m.ctrl.T.Helper() @@ -630,7 +702,7 @@ func (m *MockVolumeServiceIface) NewGetUploadParamsForVolumeParams(format, name, } // NewGetUploadParamsForVolumeParams indicates an expected call of NewGetUploadParamsForVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewGetUploadParamsForVolumeParams(format, name, zoneid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewGetUploadParamsForVolumeParams(format, name, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetUploadParamsForVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewGetUploadParamsForVolumeParams), format, name, zoneid) } @@ -644,11 +716,53 @@ func (m *MockVolumeServiceIface) NewGetVolumeiScsiNameParams(volumeid string) *G } // NewGetVolumeiScsiNameParams indicates an expected call of NewGetVolumeiScsiNameParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewGetVolumeiScsiNameParams(volumeid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewGetVolumeiScsiNameParams(volumeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewGetVolumeiScsiNameParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewGetVolumeiScsiNameParams), volumeid) } +// NewImportVolumeParams mocks base method. +func (m *MockVolumeServiceIface) NewImportVolumeParams(path, storageid string) *ImportVolumeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewImportVolumeParams", path, storageid) + ret0, _ := ret[0].(*ImportVolumeParams) + return ret0 +} + +// NewImportVolumeParams indicates an expected call of NewImportVolumeParams. +func (mr *MockVolumeServiceIfaceMockRecorder) NewImportVolumeParams(path, storageid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewImportVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewImportVolumeParams), path, storageid) +} + +// NewListElastistorVolumeParams mocks base method. +func (m *MockVolumeServiceIface) NewListElastistorVolumeParams(id string) *ListElastistorVolumeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListElastistorVolumeParams", id) + ret0, _ := ret[0].(*ListElastistorVolumeParams) + return ret0 +} + +// NewListElastistorVolumeParams indicates an expected call of NewListElastistorVolumeParams. +func (mr *MockVolumeServiceIfaceMockRecorder) NewListElastistorVolumeParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListElastistorVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewListElastistorVolumeParams), id) +} + +// NewListVolumesForImportParams mocks base method. +func (m *MockVolumeServiceIface) NewListVolumesForImportParams(storageid string) *ListVolumesForImportParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListVolumesForImportParams", storageid) + ret0, _ := ret[0].(*ListVolumesForImportParams) + return ret0 +} + +// NewListVolumesForImportParams indicates an expected call of NewListVolumesForImportParams. +func (mr *MockVolumeServiceIfaceMockRecorder) NewListVolumesForImportParams(storageid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVolumesForImportParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewListVolumesForImportParams), storageid) +} + // NewListVolumesMetricsParams mocks base method. func (m *MockVolumeServiceIface) NewListVolumesMetricsParams() *ListVolumesMetricsParams { m.ctrl.T.Helper() @@ -700,7 +814,7 @@ func (m *MockVolumeServiceIface) NewMigrateVolumeParams(storageid, volumeid stri } // NewMigrateVolumeParams indicates an expected call of NewMigrateVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewMigrateVolumeParams(storageid, volumeid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewMigrateVolumeParams(storageid, volumeid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewMigrateVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewMigrateVolumeParams), storageid, volumeid) } @@ -714,7 +828,7 @@ func (m *MockVolumeServiceIface) NewRecoverVolumeParams(id string) *RecoverVolum } // NewRecoverVolumeParams indicates an expected call of NewRecoverVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewRecoverVolumeParams(id interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewRecoverVolumeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRecoverVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewRecoverVolumeParams), id) } @@ -728,11 +842,25 @@ func (m *MockVolumeServiceIface) NewResizeVolumeParams(id string) *ResizeVolumeP } // NewResizeVolumeParams indicates an expected call of NewResizeVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewResizeVolumeParams(id interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewResizeVolumeParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewResizeVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewResizeVolumeParams), id) } +// NewUnmanageVolumeParams mocks base method. +func (m *MockVolumeServiceIface) NewUnmanageVolumeParams(id string) *UnmanageVolumeParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUnmanageVolumeParams", id) + ret0, _ := ret[0].(*UnmanageVolumeParams) + return ret0 +} + +// NewUnmanageVolumeParams indicates an expected call of NewUnmanageVolumeParams. +func (mr *MockVolumeServiceIfaceMockRecorder) NewUnmanageVolumeParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUnmanageVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewUnmanageVolumeParams), id) +} + // NewUpdateVolumeParams mocks base method. func (m *MockVolumeServiceIface) NewUpdateVolumeParams() *UpdateVolumeParams { m.ctrl.T.Helper() @@ -756,7 +884,7 @@ func (m *MockVolumeServiceIface) NewUploadVolumeParams(format, name, url, zoneid } // NewUploadVolumeParams indicates an expected call of NewUploadVolumeParams. -func (mr *MockVolumeServiceIfaceMockRecorder) NewUploadVolumeParams(format, name, url, zoneid interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) NewUploadVolumeParams(format, name, url, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUploadVolumeParams", reflect.TypeOf((*MockVolumeServiceIface)(nil).NewUploadVolumeParams), format, name, url, zoneid) } @@ -771,7 +899,7 @@ func (m *MockVolumeServiceIface) RecoverVolume(p *RecoverVolumeParams) (*Recover } // RecoverVolume indicates an expected call of RecoverVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) RecoverVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) RecoverVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoverVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).RecoverVolume), p) } @@ -786,11 +914,26 @@ func (m *MockVolumeServiceIface) ResizeVolume(p *ResizeVolumeParams) (*ResizeVol } // ResizeVolume indicates an expected call of ResizeVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) ResizeVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) ResizeVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).ResizeVolume), p) } +// UnmanageVolume mocks base method. +func (m *MockVolumeServiceIface) UnmanageVolume(p *UnmanageVolumeParams) (*UnmanageVolumeResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UnmanageVolume", p) + ret0, _ := ret[0].(*UnmanageVolumeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UnmanageVolume indicates an expected call of UnmanageVolume. +func (mr *MockVolumeServiceIfaceMockRecorder) UnmanageVolume(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnmanageVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).UnmanageVolume), p) +} + // UpdateVolume mocks base method. func (m *MockVolumeServiceIface) UpdateVolume(p *UpdateVolumeParams) (*UpdateVolumeResponse, error) { m.ctrl.T.Helper() @@ -801,7 +944,7 @@ func (m *MockVolumeServiceIface) UpdateVolume(p *UpdateVolumeParams) (*UpdateVol } // UpdateVolume indicates an expected call of UpdateVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) UpdateVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) UpdateVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).UpdateVolume), p) } @@ -816,7 +959,7 @@ func (m *MockVolumeServiceIface) UploadVolume(p *UploadVolumeParams) (*UploadVol } // UploadVolume indicates an expected call of UploadVolume. -func (mr *MockVolumeServiceIfaceMockRecorder) UploadVolume(p interface{}) *gomock.Call { +func (mr *MockVolumeServiceIfaceMockRecorder) UploadVolume(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadVolume", reflect.TypeOf((*MockVolumeServiceIface)(nil).UploadVolume), p) } diff --git a/cloudstack/WebhookService.go b/cloudstack/WebhookService.go new file mode 100644 index 00000000..24241274 --- /dev/null +++ b/cloudstack/WebhookService.go @@ -0,0 +1,1916 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package cloudstack + +import ( + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" +) + +type WebhookServiceIface interface { + CreateWebhook(p *CreateWebhookParams) (*CreateWebhookResponse, error) + NewCreateWebhookParams(name string, payloadurl string) *CreateWebhookParams + DeleteWebhook(p *DeleteWebhookParams) (*DeleteWebhookResponse, error) + NewDeleteWebhookParams(id string) *DeleteWebhookParams + DeleteWebhookDelivery(p *DeleteWebhookDeliveryParams) (*DeleteWebhookDeliveryResponse, error) + NewDeleteWebhookDeliveryParams() *DeleteWebhookDeliveryParams + ExecuteWebhookDelivery(p *ExecuteWebhookDeliveryParams) (*ExecuteWebhookDeliveryResponse, error) + NewExecuteWebhookDeliveryParams() *ExecuteWebhookDeliveryParams + ListWebhookDeliveries(p *ListWebhookDeliveriesParams) (*ListWebhookDeliveriesResponse, error) + NewListWebhookDeliveriesParams() *ListWebhookDeliveriesParams + GetWebhookDeliveryID(keyword string, opts ...OptionFunc) (string, int, error) + GetWebhookDeliveryByName(name string, opts ...OptionFunc) (*WebhookDelivery, int, error) + GetWebhookDeliveryByID(id string, opts ...OptionFunc) (*WebhookDelivery, int, error) + ListWebhooks(p *ListWebhooksParams) (*ListWebhooksResponse, error) + NewListWebhooksParams() *ListWebhooksParams + GetWebhookID(name string, opts ...OptionFunc) (string, int, error) + GetWebhookByName(name string, opts ...OptionFunc) (*Webhook, int, error) + GetWebhookByID(id string, opts ...OptionFunc) (*Webhook, int, error) + UpdateWebhook(p *UpdateWebhookParams) (*UpdateWebhookResponse, error) + NewUpdateWebhookParams(id string) *UpdateWebhookParams +} + +type CreateWebhookParams struct { + p map[string]interface{} +} + +func (p *CreateWebhookParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["description"]; found { + u.Set("description", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["payloadurl"]; found { + u.Set("payloadurl", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["scope"]; found { + u.Set("scope", v.(string)) + } + if v, found := p.p["secretkey"]; found { + u.Set("secretkey", v.(string)) + } + if v, found := p.p["sslverification"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("sslverification", vv) + } + if v, found := p.p["state"]; found { + u.Set("state", v.(string)) + } + return u +} + +func (p *CreateWebhookParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *CreateWebhookParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *CreateWebhookParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetDescription(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["description"] = v +} + +func (p *CreateWebhookParams) ResetDescription() { + if p.p != nil && p.p["description"] != nil { + delete(p.p, "description") + } +} + +func (p *CreateWebhookParams) GetDescription() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["description"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *CreateWebhookParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *CreateWebhookParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *CreateWebhookParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *CreateWebhookParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetPayloadurl(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["payloadurl"] = v +} + +func (p *CreateWebhookParams) ResetPayloadurl() { + if p.p != nil && p.p["payloadurl"] != nil { + delete(p.p, "payloadurl") + } +} + +func (p *CreateWebhookParams) GetPayloadurl() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["payloadurl"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *CreateWebhookParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *CreateWebhookParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetScope(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["scope"] = v +} + +func (p *CreateWebhookParams) ResetScope() { + if p.p != nil && p.p["scope"] != nil { + delete(p.p, "scope") + } +} + +func (p *CreateWebhookParams) GetScope() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["scope"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetSecretkey(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["secretkey"] = v +} + +func (p *CreateWebhookParams) ResetSecretkey() { + if p.p != nil && p.p["secretkey"] != nil { + delete(p.p, "secretkey") + } +} + +func (p *CreateWebhookParams) GetSecretkey() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["secretkey"].(string) + return value, ok +} + +func (p *CreateWebhookParams) SetSslverification(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sslverification"] = v +} + +func (p *CreateWebhookParams) ResetSslverification() { + if p.p != nil && p.p["sslverification"] != nil { + delete(p.p, "sslverification") + } +} + +func (p *CreateWebhookParams) GetSslverification() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sslverification"].(bool) + return value, ok +} + +func (p *CreateWebhookParams) SetState(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["state"] = v +} + +func (p *CreateWebhookParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") + } +} + +func (p *CreateWebhookParams) GetState() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["state"].(string) + return value, ok +} + +// You should always use this function to get a new CreateWebhookParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewCreateWebhookParams(name string, payloadurl string) *CreateWebhookParams { + p := &CreateWebhookParams{} + p.p = make(map[string]interface{}) + p.p["name"] = name + p.p["payloadurl"] = payloadurl + return p +} + +// Creates a Webhook +func (s *WebhookService) CreateWebhook(p *CreateWebhookParams) (*CreateWebhookResponse, error) { + resp, err := s.cs.newRequest("createWebhook", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateWebhookResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type CreateWebhookResponse struct { + Account string `json:"account"` + Created string `json:"created"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Payloadurl string `json:"payloadurl"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Scope string `json:"scope"` + Secretkey string `json:"secretkey"` + Sslverification bool `json:"sslverification"` + State string `json:"state"` +} + +type DeleteWebhookParams struct { + p map[string]interface{} +} + +func (p *DeleteWebhookParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteWebhookParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteWebhookParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteWebhookParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteWebhookParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewDeleteWebhookParams(id string) *DeleteWebhookParams { + p := &DeleteWebhookParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes a Webhook +func (s *WebhookService) DeleteWebhook(p *DeleteWebhookParams) (*DeleteWebhookResponse, error) { + resp, err := s.cs.newRequest("deleteWebhook", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteWebhookResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type DeleteWebhookResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DeleteWebhookResponse) 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 DeleteWebhookResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type DeleteWebhookDeliveryParams struct { + p map[string]interface{} +} + +func (p *DeleteWebhookDeliveryParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["enddate"]; found { + u.Set("enddate", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["managementserverid"]; found { + u.Set("managementserverid", v.(string)) + } + if v, found := p.p["startdate"]; found { + u.Set("startdate", v.(string)) + } + if v, found := p.p["webhookid"]; found { + u.Set("webhookid", v.(string)) + } + return u +} + +func (p *DeleteWebhookDeliveryParams) SetEnddate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["enddate"] = v +} + +func (p *DeleteWebhookDeliveryParams) ResetEnddate() { + if p.p != nil && p.p["enddate"] != nil { + delete(p.p, "enddate") + } +} + +func (p *DeleteWebhookDeliveryParams) GetEnddate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["enddate"].(string) + return value, ok +} + +func (p *DeleteWebhookDeliveryParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteWebhookDeliveryParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteWebhookDeliveryParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *DeleteWebhookDeliveryParams) SetManagementserverid(v UUID) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["managementserverid"] = v +} + +func (p *DeleteWebhookDeliveryParams) ResetManagementserverid() { + if p.p != nil && p.p["managementserverid"] != nil { + delete(p.p, "managementserverid") + } +} + +func (p *DeleteWebhookDeliveryParams) GetManagementserverid() (UUID, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["managementserverid"].(UUID) + return value, ok +} + +func (p *DeleteWebhookDeliveryParams) SetStartdate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startdate"] = v +} + +func (p *DeleteWebhookDeliveryParams) ResetStartdate() { + if p.p != nil && p.p["startdate"] != nil { + delete(p.p, "startdate") + } +} + +func (p *DeleteWebhookDeliveryParams) GetStartdate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startdate"].(string) + return value, ok +} + +func (p *DeleteWebhookDeliveryParams) SetWebhookid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["webhookid"] = v +} + +func (p *DeleteWebhookDeliveryParams) ResetWebhookid() { + if p.p != nil && p.p["webhookid"] != nil { + delete(p.p, "webhookid") + } +} + +func (p *DeleteWebhookDeliveryParams) GetWebhookid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["webhookid"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteWebhookDeliveryParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewDeleteWebhookDeliveryParams() *DeleteWebhookDeliveryParams { + p := &DeleteWebhookDeliveryParams{} + p.p = make(map[string]interface{}) + return p +} + +// Deletes Webhook delivery +func (s *WebhookService) DeleteWebhookDelivery(p *DeleteWebhookDeliveryParams) (*DeleteWebhookDeliveryResponse, error) { + resp, err := s.cs.newRequest("deleteWebhookDelivery", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteWebhookDeliveryResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type DeleteWebhookDeliveryResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *DeleteWebhookDeliveryResponse) 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 DeleteWebhookDeliveryResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ExecuteWebhookDeliveryParams struct { + p map[string]interface{} +} + +func (p *ExecuteWebhookDeliveryParams) 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["payload"]; found { + u.Set("payload", v.(string)) + } + if v, found := p.p["payloadurl"]; found { + u.Set("payloadurl", v.(string)) + } + if v, found := p.p["secretkey"]; found { + u.Set("secretkey", v.(string)) + } + if v, found := p.p["sslverification"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("sslverification", vv) + } + if v, found := p.p["webhookid"]; found { + u.Set("webhookid", v.(string)) + } + return u +} + +func (p *ExecuteWebhookDeliveryParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ExecuteWebhookDeliveryParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ExecuteWebhookDeliveryParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ExecuteWebhookDeliveryParams) SetPayload(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["payload"] = v +} + +func (p *ExecuteWebhookDeliveryParams) ResetPayload() { + if p.p != nil && p.p["payload"] != nil { + delete(p.p, "payload") + } +} + +func (p *ExecuteWebhookDeliveryParams) GetPayload() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["payload"].(string) + return value, ok +} + +func (p *ExecuteWebhookDeliveryParams) SetPayloadurl(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["payloadurl"] = v +} + +func (p *ExecuteWebhookDeliveryParams) ResetPayloadurl() { + if p.p != nil && p.p["payloadurl"] != nil { + delete(p.p, "payloadurl") + } +} + +func (p *ExecuteWebhookDeliveryParams) GetPayloadurl() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["payloadurl"].(string) + return value, ok +} + +func (p *ExecuteWebhookDeliveryParams) SetSecretkey(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["secretkey"] = v +} + +func (p *ExecuteWebhookDeliveryParams) ResetSecretkey() { + if p.p != nil && p.p["secretkey"] != nil { + delete(p.p, "secretkey") + } +} + +func (p *ExecuteWebhookDeliveryParams) GetSecretkey() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["secretkey"].(string) + return value, ok +} + +func (p *ExecuteWebhookDeliveryParams) SetSslverification(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sslverification"] = v +} + +func (p *ExecuteWebhookDeliveryParams) ResetSslverification() { + if p.p != nil && p.p["sslverification"] != nil { + delete(p.p, "sslverification") + } +} + +func (p *ExecuteWebhookDeliveryParams) GetSslverification() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sslverification"].(bool) + return value, ok +} + +func (p *ExecuteWebhookDeliveryParams) SetWebhookid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["webhookid"] = v +} + +func (p *ExecuteWebhookDeliveryParams) ResetWebhookid() { + if p.p != nil && p.p["webhookid"] != nil { + delete(p.p, "webhookid") + } +} + +func (p *ExecuteWebhookDeliveryParams) GetWebhookid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["webhookid"].(string) + return value, ok +} + +// You should always use this function to get a new ExecuteWebhookDeliveryParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewExecuteWebhookDeliveryParams() *ExecuteWebhookDeliveryParams { + p := &ExecuteWebhookDeliveryParams{} + p.p = make(map[string]interface{}) + return p +} + +// Executes a Webhook delivery +func (s *WebhookService) ExecuteWebhookDelivery(p *ExecuteWebhookDeliveryParams) (*ExecuteWebhookDeliveryResponse, error) { + resp, err := s.cs.newRequest("executeWebhookDelivery", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ExecuteWebhookDeliveryResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ExecuteWebhookDeliveryResponse struct { + Enddate string `json:"enddate"` + Eventid string `json:"eventid"` + Eventtype string `json:"eventtype"` + Headers string `json:"headers"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Managementserverid UUID `json:"managementserverid"` + Managementservername string `json:"managementservername"` + Payload string `json:"payload"` + Response string `json:"response"` + Startdate string `json:"startdate"` + Success bool `json:"success"` + Webhookid string `json:"webhookid"` + Webhookname string `json:"webhookname"` +} + +func (r *ExecuteWebhookDeliveryResponse) 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 ExecuteWebhookDeliveryResponse + return json.Unmarshal(b, (*alias)(r)) +} + +type ListWebhookDeliveriesParams struct { + p map[string]interface{} +} + +func (p *ListWebhookDeliveriesParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["enddate"]; found { + u.Set("enddate", v.(string)) + } + if v, found := p.p["eventtype"]; found { + u.Set("eventtype", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["managementserverid"]; found { + u.Set("managementserverid", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["startdate"]; found { + u.Set("startdate", v.(string)) + } + if v, found := p.p["webhookid"]; found { + u.Set("webhookid", v.(string)) + } + return u +} + +func (p *ListWebhookDeliveriesParams) SetEnddate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["enddate"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetEnddate() { + if p.p != nil && p.p["enddate"] != nil { + delete(p.p, "enddate") + } +} + +func (p *ListWebhookDeliveriesParams) GetEnddate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["enddate"].(string) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetEventtype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["eventtype"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetEventtype() { + if p.p != nil && p.p["eventtype"] != nil { + delete(p.p, "eventtype") + } +} + +func (p *ListWebhookDeliveriesParams) GetEventtype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["eventtype"].(string) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListWebhookDeliveriesParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListWebhookDeliveriesParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetManagementserverid(v UUID) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["managementserverid"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetManagementserverid() { + if p.p != nil && p.p["managementserverid"] != nil { + delete(p.p, "managementserverid") + } +} + +func (p *ListWebhookDeliveriesParams) GetManagementserverid() (UUID, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["managementserverid"].(UUID) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListWebhookDeliveriesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListWebhookDeliveriesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetStartdate(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["startdate"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetStartdate() { + if p.p != nil && p.p["startdate"] != nil { + delete(p.p, "startdate") + } +} + +func (p *ListWebhookDeliveriesParams) GetStartdate() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["startdate"].(string) + return value, ok +} + +func (p *ListWebhookDeliveriesParams) SetWebhookid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["webhookid"] = v +} + +func (p *ListWebhookDeliveriesParams) ResetWebhookid() { + if p.p != nil && p.p["webhookid"] != nil { + delete(p.p, "webhookid") + } +} + +func (p *ListWebhookDeliveriesParams) GetWebhookid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["webhookid"].(string) + return value, ok +} + +// You should always use this function to get a new ListWebhookDeliveriesParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewListWebhookDeliveriesParams() *ListWebhookDeliveriesParams { + p := &ListWebhookDeliveriesParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *WebhookService) GetWebhookDeliveryID(keyword string, opts ...OptionFunc) (string, int, error) { + p := &ListWebhookDeliveriesParams{} + p.p = make(map[string]interface{}) + + p.p["keyword"] = keyword + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return "", -1, err + } + } + + l, err := s.ListWebhookDeliveries(p) + if err != nil { + return "", -1, err + } + + if l.Count == 0 { + return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + } + + if l.Count == 1 { + return l.WebhookDeliveries[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.WebhookDeliveries { + if v.Name == keyword { + return v.Id, l.Count, nil + } + } + } + return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *WebhookService) GetWebhookDeliveryByName(name string, opts ...OptionFunc) (*WebhookDelivery, int, error) { + id, count, err := s.GetWebhookDeliveryID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetWebhookDeliveryByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *WebhookService) GetWebhookDeliveryByID(id string, opts ...OptionFunc) (*WebhookDelivery, int, error) { + p := &ListWebhookDeliveriesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListWebhookDeliveries(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.WebhookDeliveries[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for WebhookDelivery UUID: %s!", id) +} + +// Lists Webhook deliveries +func (s *WebhookService) ListWebhookDeliveries(p *ListWebhookDeliveriesParams) (*ListWebhookDeliveriesResponse, error) { + resp, err := s.cs.newRequest("listWebhookDeliveries", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListWebhookDeliveriesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListWebhookDeliveriesResponse struct { + Count int `json:"count"` + WebhookDeliveries []*WebhookDelivery `json:"webhookdelivery"` +} + +type WebhookDelivery struct { + Account string `json:"account"` + Created string `json:"created"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Payloadurl string `json:"payloadurl"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Scope string `json:"scope"` + Secretkey string `json:"secretkey"` + Sslverification bool `json:"sslverification"` + State string `json:"state"` +} + +type ListWebhooksParams struct { + p map[string]interface{} +} + +func (p *ListWebhooksParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["isrecursive"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("isrecursive", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["listall"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("listall", vv) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["scope"]; found { + u.Set("scope", v.(string)) + } + if v, found := p.p["state"]; found { + u.Set("state", v.(string)) + } + return u +} + +func (p *ListWebhooksParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *ListWebhooksParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *ListWebhooksParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListWebhooksParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListWebhooksParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListWebhooksParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListWebhooksParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetIsrecursive(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["isrecursive"] = v +} + +func (p *ListWebhooksParams) ResetIsrecursive() { + if p.p != nil && p.p["isrecursive"] != nil { + delete(p.p, "isrecursive") + } +} + +func (p *ListWebhooksParams) GetIsrecursive() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["isrecursive"].(bool) + return value, ok +} + +func (p *ListWebhooksParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListWebhooksParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListWebhooksParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetListall(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["listall"] = v +} + +func (p *ListWebhooksParams) ResetListall() { + if p.p != nil && p.p["listall"] != nil { + delete(p.p, "listall") + } +} + +func (p *ListWebhooksParams) GetListall() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["listall"].(bool) + return value, ok +} + +func (p *ListWebhooksParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListWebhooksParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListWebhooksParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListWebhooksParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListWebhooksParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListWebhooksParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListWebhooksParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListWebhooksParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListWebhooksParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *ListWebhooksParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *ListWebhooksParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetScope(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["scope"] = v +} + +func (p *ListWebhooksParams) ResetScope() { + if p.p != nil && p.p["scope"] != nil { + delete(p.p, "scope") + } +} + +func (p *ListWebhooksParams) GetScope() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["scope"].(string) + return value, ok +} + +func (p *ListWebhooksParams) SetState(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["state"] = v +} + +func (p *ListWebhooksParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") + } +} + +func (p *ListWebhooksParams) GetState() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["state"].(string) + return value, ok +} + +// You should always use this function to get a new ListWebhooksParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewListWebhooksParams() *ListWebhooksParams { + p := &ListWebhooksParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *WebhookService) GetWebhookID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListWebhooksParams{} + 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.ListWebhooks(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.Webhooks[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.Webhooks { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *WebhookService) GetWebhookByName(name string, opts ...OptionFunc) (*Webhook, int, error) { + id, count, err := s.GetWebhookID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetWebhookByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *WebhookService) GetWebhookByID(id string, opts ...OptionFunc) (*Webhook, int, error) { + p := &ListWebhooksParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListWebhooks(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.Webhooks[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for Webhook UUID: %s!", id) +} + +// Lists Webhooks +func (s *WebhookService) ListWebhooks(p *ListWebhooksParams) (*ListWebhooksResponse, error) { + resp, err := s.cs.newRequest("listWebhooks", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListWebhooksResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListWebhooksResponse struct { + Count int `json:"count"` + Webhooks []*Webhook `json:"webhook"` +} + +type Webhook struct { + Account string `json:"account"` + Created string `json:"created"` + Description string `json:"description"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainpath string `json:"domainpath"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Payloadurl string `json:"payloadurl"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Scope string `json:"scope"` + Secretkey string `json:"secretkey"` + Sslverification bool `json:"sslverification"` + State string `json:"state"` +} + +type UpdateWebhookParams struct { + p map[string]interface{} +} + +func (p *UpdateWebhookParams) 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["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["payloadurl"]; found { + u.Set("payloadurl", v.(string)) + } + if v, found := p.p["scope"]; found { + u.Set("scope", v.(string)) + } + if v, found := p.p["secretkey"]; found { + u.Set("secretkey", v.(string)) + } + if v, found := p.p["sslverification"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("sslverification", vv) + } + if v, found := p.p["state"]; found { + u.Set("state", v.(string)) + } + return u +} + +func (p *UpdateWebhookParams) SetDescription(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["description"] = v +} + +func (p *UpdateWebhookParams) ResetDescription() { + if p.p != nil && p.p["description"] != nil { + delete(p.p, "description") + } +} + +func (p *UpdateWebhookParams) GetDescription() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["description"].(string) + return value, ok +} + +func (p *UpdateWebhookParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *UpdateWebhookParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *UpdateWebhookParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *UpdateWebhookParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *UpdateWebhookParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *UpdateWebhookParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *UpdateWebhookParams) SetPayloadurl(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["payloadurl"] = v +} + +func (p *UpdateWebhookParams) ResetPayloadurl() { + if p.p != nil && p.p["payloadurl"] != nil { + delete(p.p, "payloadurl") + } +} + +func (p *UpdateWebhookParams) GetPayloadurl() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["payloadurl"].(string) + return value, ok +} + +func (p *UpdateWebhookParams) SetScope(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["scope"] = v +} + +func (p *UpdateWebhookParams) ResetScope() { + if p.p != nil && p.p["scope"] != nil { + delete(p.p, "scope") + } +} + +func (p *UpdateWebhookParams) GetScope() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["scope"].(string) + return value, ok +} + +func (p *UpdateWebhookParams) SetSecretkey(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["secretkey"] = v +} + +func (p *UpdateWebhookParams) ResetSecretkey() { + if p.p != nil && p.p["secretkey"] != nil { + delete(p.p, "secretkey") + } +} + +func (p *UpdateWebhookParams) GetSecretkey() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["secretkey"].(string) + return value, ok +} + +func (p *UpdateWebhookParams) SetSslverification(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["sslverification"] = v +} + +func (p *UpdateWebhookParams) ResetSslverification() { + if p.p != nil && p.p["sslverification"] != nil { + delete(p.p, "sslverification") + } +} + +func (p *UpdateWebhookParams) GetSslverification() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["sslverification"].(bool) + return value, ok +} + +func (p *UpdateWebhookParams) SetState(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["state"] = v +} + +func (p *UpdateWebhookParams) ResetState() { + if p.p != nil && p.p["state"] != nil { + delete(p.p, "state") + } +} + +func (p *UpdateWebhookParams) GetState() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["state"].(string) + return value, ok +} + +// You should always use this function to get a new UpdateWebhookParams instance, +// as then you are sure you have configured all required params +func (s *WebhookService) NewUpdateWebhookParams(id string) *UpdateWebhookParams { + p := &UpdateWebhookParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Updates a Webhook +func (s *WebhookService) UpdateWebhook(p *UpdateWebhookParams) (*UpdateWebhookResponse, error) { + resp, err := s.cs.newRequest("updateWebhook", p.toURLValues()) + if err != nil { + return nil, err + } + + var r UpdateWebhookResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type UpdateWebhookResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +func (r *UpdateWebhookResponse) 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 UpdateWebhookResponse + return json.Unmarshal(b, (*alias)(r)) +} diff --git a/cloudstack/WebhookService_mock.go b/cloudstack/WebhookService_mock.go new file mode 100644 index 00000000..0ec7e767 --- /dev/null +++ b/cloudstack/WebhookService_mock.go @@ -0,0 +1,388 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: ./cloudstack/WebhookService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/WebhookService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/WebhookService.go +// + +// Package cloudstack is a generated GoMock package. +package cloudstack + +import ( + reflect "reflect" + + gomock "go.uber.org/mock/gomock" +) + +// MockWebhookServiceIface is a mock of WebhookServiceIface interface. +type MockWebhookServiceIface struct { + ctrl *gomock.Controller + recorder *MockWebhookServiceIfaceMockRecorder + isgomock struct{} +} + +// MockWebhookServiceIfaceMockRecorder is the mock recorder for MockWebhookServiceIface. +type MockWebhookServiceIfaceMockRecorder struct { + mock *MockWebhookServiceIface +} + +// NewMockWebhookServiceIface creates a new mock instance. +func NewMockWebhookServiceIface(ctrl *gomock.Controller) *MockWebhookServiceIface { + mock := &MockWebhookServiceIface{ctrl: ctrl} + mock.recorder = &MockWebhookServiceIfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockWebhookServiceIface) EXPECT() *MockWebhookServiceIfaceMockRecorder { + return m.recorder +} + +// CreateWebhook mocks base method. +func (m *MockWebhookServiceIface) CreateWebhook(p *CreateWebhookParams) (*CreateWebhookResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateWebhook", p) + ret0, _ := ret[0].(*CreateWebhookResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateWebhook indicates an expected call of CreateWebhook. +func (mr *MockWebhookServiceIfaceMockRecorder) CreateWebhook(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateWebhook", reflect.TypeOf((*MockWebhookServiceIface)(nil).CreateWebhook), p) +} + +// DeleteWebhook mocks base method. +func (m *MockWebhookServiceIface) DeleteWebhook(p *DeleteWebhookParams) (*DeleteWebhookResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWebhook", p) + ret0, _ := ret[0].(*DeleteWebhookResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteWebhook indicates an expected call of DeleteWebhook. +func (mr *MockWebhookServiceIfaceMockRecorder) DeleteWebhook(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWebhook", reflect.TypeOf((*MockWebhookServiceIface)(nil).DeleteWebhook), p) +} + +// DeleteWebhookDelivery mocks base method. +func (m *MockWebhookServiceIface) DeleteWebhookDelivery(p *DeleteWebhookDeliveryParams) (*DeleteWebhookDeliveryResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteWebhookDelivery", p) + ret0, _ := ret[0].(*DeleteWebhookDeliveryResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteWebhookDelivery indicates an expected call of DeleteWebhookDelivery. +func (mr *MockWebhookServiceIfaceMockRecorder) DeleteWebhookDelivery(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWebhookDelivery", reflect.TypeOf((*MockWebhookServiceIface)(nil).DeleteWebhookDelivery), p) +} + +// ExecuteWebhookDelivery mocks base method. +func (m *MockWebhookServiceIface) ExecuteWebhookDelivery(p *ExecuteWebhookDeliveryParams) (*ExecuteWebhookDeliveryResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExecuteWebhookDelivery", p) + ret0, _ := ret[0].(*ExecuteWebhookDeliveryResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ExecuteWebhookDelivery indicates an expected call of ExecuteWebhookDelivery. +func (mr *MockWebhookServiceIfaceMockRecorder) ExecuteWebhookDelivery(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExecuteWebhookDelivery", reflect.TypeOf((*MockWebhookServiceIface)(nil).ExecuteWebhookDelivery), p) +} + +// GetWebhookByID mocks base method. +func (m *MockWebhookServiceIface) GetWebhookByID(id string, opts ...OptionFunc) (*Webhook, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetWebhookByID", varargs...) + ret0, _ := ret[0].(*Webhook) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetWebhookByID indicates an expected call of GetWebhookByID. +func (mr *MockWebhookServiceIfaceMockRecorder) GetWebhookByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookByID", reflect.TypeOf((*MockWebhookServiceIface)(nil).GetWebhookByID), varargs...) +} + +// GetWebhookByName mocks base method. +func (m *MockWebhookServiceIface) GetWebhookByName(name string, opts ...OptionFunc) (*Webhook, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetWebhookByName", varargs...) + ret0, _ := ret[0].(*Webhook) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetWebhookByName indicates an expected call of GetWebhookByName. +func (mr *MockWebhookServiceIfaceMockRecorder) GetWebhookByName(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookByName", reflect.TypeOf((*MockWebhookServiceIface)(nil).GetWebhookByName), varargs...) +} + +// GetWebhookDeliveryByID mocks base method. +func (m *MockWebhookServiceIface) GetWebhookDeliveryByID(id string, opts ...OptionFunc) (*WebhookDelivery, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetWebhookDeliveryByID", varargs...) + ret0, _ := ret[0].(*WebhookDelivery) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetWebhookDeliveryByID indicates an expected call of GetWebhookDeliveryByID. +func (mr *MockWebhookServiceIfaceMockRecorder) GetWebhookDeliveryByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookDeliveryByID", reflect.TypeOf((*MockWebhookServiceIface)(nil).GetWebhookDeliveryByID), varargs...) +} + +// GetWebhookDeliveryByName mocks base method. +func (m *MockWebhookServiceIface) GetWebhookDeliveryByName(name string, opts ...OptionFunc) (*WebhookDelivery, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetWebhookDeliveryByName", varargs...) + ret0, _ := ret[0].(*WebhookDelivery) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetWebhookDeliveryByName indicates an expected call of GetWebhookDeliveryByName. +func (mr *MockWebhookServiceIfaceMockRecorder) GetWebhookDeliveryByName(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookDeliveryByName", reflect.TypeOf((*MockWebhookServiceIface)(nil).GetWebhookDeliveryByName), varargs...) +} + +// GetWebhookDeliveryID mocks base method. +func (m *MockWebhookServiceIface) GetWebhookDeliveryID(keyword string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{keyword} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetWebhookDeliveryID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetWebhookDeliveryID indicates an expected call of GetWebhookDeliveryID. +func (mr *MockWebhookServiceIfaceMockRecorder) GetWebhookDeliveryID(keyword any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{keyword}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookDeliveryID", reflect.TypeOf((*MockWebhookServiceIface)(nil).GetWebhookDeliveryID), varargs...) +} + +// GetWebhookID mocks base method. +func (m *MockWebhookServiceIface) GetWebhookID(name string, opts ...OptionFunc) (string, int, error) { + m.ctrl.T.Helper() + varargs := []any{name} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetWebhookID", varargs...) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetWebhookID indicates an expected call of GetWebhookID. +func (mr *MockWebhookServiceIfaceMockRecorder) GetWebhookID(name any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{name}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookID", reflect.TypeOf((*MockWebhookServiceIface)(nil).GetWebhookID), varargs...) +} + +// ListWebhookDeliveries mocks base method. +func (m *MockWebhookServiceIface) ListWebhookDeliveries(p *ListWebhookDeliveriesParams) (*ListWebhookDeliveriesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListWebhookDeliveries", p) + ret0, _ := ret[0].(*ListWebhookDeliveriesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListWebhookDeliveries indicates an expected call of ListWebhookDeliveries. +func (mr *MockWebhookServiceIfaceMockRecorder) ListWebhookDeliveries(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWebhookDeliveries", reflect.TypeOf((*MockWebhookServiceIface)(nil).ListWebhookDeliveries), p) +} + +// ListWebhooks mocks base method. +func (m *MockWebhookServiceIface) ListWebhooks(p *ListWebhooksParams) (*ListWebhooksResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListWebhooks", p) + ret0, _ := ret[0].(*ListWebhooksResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListWebhooks indicates an expected call of ListWebhooks. +func (mr *MockWebhookServiceIfaceMockRecorder) ListWebhooks(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWebhooks", reflect.TypeOf((*MockWebhookServiceIface)(nil).ListWebhooks), p) +} + +// NewCreateWebhookParams mocks base method. +func (m *MockWebhookServiceIface) NewCreateWebhookParams(name, payloadurl string) *CreateWebhookParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateWebhookParams", name, payloadurl) + ret0, _ := ret[0].(*CreateWebhookParams) + return ret0 +} + +// NewCreateWebhookParams indicates an expected call of NewCreateWebhookParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewCreateWebhookParams(name, payloadurl any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateWebhookParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewCreateWebhookParams), name, payloadurl) +} + +// NewDeleteWebhookDeliveryParams mocks base method. +func (m *MockWebhookServiceIface) NewDeleteWebhookDeliveryParams() *DeleteWebhookDeliveryParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteWebhookDeliveryParams") + ret0, _ := ret[0].(*DeleteWebhookDeliveryParams) + return ret0 +} + +// NewDeleteWebhookDeliveryParams indicates an expected call of NewDeleteWebhookDeliveryParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewDeleteWebhookDeliveryParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteWebhookDeliveryParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewDeleteWebhookDeliveryParams)) +} + +// NewDeleteWebhookParams mocks base method. +func (m *MockWebhookServiceIface) NewDeleteWebhookParams(id string) *DeleteWebhookParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteWebhookParams", id) + ret0, _ := ret[0].(*DeleteWebhookParams) + return ret0 +} + +// NewDeleteWebhookParams indicates an expected call of NewDeleteWebhookParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewDeleteWebhookParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteWebhookParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewDeleteWebhookParams), id) +} + +// NewExecuteWebhookDeliveryParams mocks base method. +func (m *MockWebhookServiceIface) NewExecuteWebhookDeliveryParams() *ExecuteWebhookDeliveryParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewExecuteWebhookDeliveryParams") + ret0, _ := ret[0].(*ExecuteWebhookDeliveryParams) + return ret0 +} + +// NewExecuteWebhookDeliveryParams indicates an expected call of NewExecuteWebhookDeliveryParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewExecuteWebhookDeliveryParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewExecuteWebhookDeliveryParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewExecuteWebhookDeliveryParams)) +} + +// NewListWebhookDeliveriesParams mocks base method. +func (m *MockWebhookServiceIface) NewListWebhookDeliveriesParams() *ListWebhookDeliveriesParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListWebhookDeliveriesParams") + ret0, _ := ret[0].(*ListWebhookDeliveriesParams) + return ret0 +} + +// NewListWebhookDeliveriesParams indicates an expected call of NewListWebhookDeliveriesParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewListWebhookDeliveriesParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListWebhookDeliveriesParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewListWebhookDeliveriesParams)) +} + +// NewListWebhooksParams mocks base method. +func (m *MockWebhookServiceIface) NewListWebhooksParams() *ListWebhooksParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListWebhooksParams") + ret0, _ := ret[0].(*ListWebhooksParams) + return ret0 +} + +// NewListWebhooksParams indicates an expected call of NewListWebhooksParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewListWebhooksParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListWebhooksParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewListWebhooksParams)) +} + +// NewUpdateWebhookParams mocks base method. +func (m *MockWebhookServiceIface) NewUpdateWebhookParams(id string) *UpdateWebhookParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateWebhookParams", id) + ret0, _ := ret[0].(*UpdateWebhookParams) + return ret0 +} + +// NewUpdateWebhookParams indicates an expected call of NewUpdateWebhookParams. +func (mr *MockWebhookServiceIfaceMockRecorder) NewUpdateWebhookParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateWebhookParams", reflect.TypeOf((*MockWebhookServiceIface)(nil).NewUpdateWebhookParams), id) +} + +// UpdateWebhook mocks base method. +func (m *MockWebhookServiceIface) UpdateWebhook(p *UpdateWebhookParams) (*UpdateWebhookResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWebhook", p) + ret0, _ := ret[0].(*UpdateWebhookResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateWebhook indicates an expected call of UpdateWebhook. +func (mr *MockWebhookServiceIfaceMockRecorder) UpdateWebhook(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWebhook", reflect.TypeOf((*MockWebhookServiceIface)(nil).UpdateWebhook), p) +} diff --git a/cloudstack/ZoneService.go b/cloudstack/ZoneService.go index a32ca1d7..ce72dd28 100644 --- a/cloudstack/ZoneService.go +++ b/cloudstack/ZoneService.go @@ -28,12 +28,18 @@ import ( ) type ZoneServiceIface interface { + CreateIpv4SubnetForZone(p *CreateIpv4SubnetForZoneParams) (*CreateIpv4SubnetForZoneResponse, error) + NewCreateIpv4SubnetForZoneParams(subnet string, zoneid string) *CreateIpv4SubnetForZoneParams CreateZone(p *CreateZoneParams) (*CreateZoneResponse, error) NewCreateZoneParams(dns1 string, internaldns1 string, name string, networktype string) *CreateZoneParams + DedicateIpv4SubnetForZone(p *DedicateIpv4SubnetForZoneParams) (*DedicateIpv4SubnetForZoneResponse, error) + NewDedicateIpv4SubnetForZoneParams(id string) *DedicateIpv4SubnetForZoneParams DedicateZone(p *DedicateZoneParams) (*DedicateZoneResponse, error) NewDedicateZoneParams(domainid string, zoneid string) *DedicateZoneParams DeleteZone(p *DeleteZoneParams) (*DeleteZoneResponse, error) NewDeleteZoneParams(id string) *DeleteZoneParams + DeleteIpv4SubnetForZone(p *DeleteIpv4SubnetForZoneParams) (*DeleteIpv4SubnetForZoneResponse, error) + NewDeleteIpv4SubnetForZoneParams(id string) *DeleteIpv4SubnetForZoneParams DisableOutOfBandManagementForZone(p *DisableOutOfBandManagementForZoneParams) (*DisableOutOfBandManagementForZoneResponse, error) NewDisableOutOfBandManagementForZoneParams(zoneid string) *DisableOutOfBandManagementForZoneParams EnableOutOfBandManagementForZone(p *EnableOutOfBandManagementForZoneParams) (*EnableOutOfBandManagementForZoneResponse, error) @@ -44,6 +50,9 @@ type ZoneServiceIface interface { NewEnableHAForZoneParams(zoneid string) *EnableHAForZoneParams ListDedicatedZones(p *ListDedicatedZonesParams) (*ListDedicatedZonesResponse, error) NewListDedicatedZonesParams() *ListDedicatedZonesParams + ListIpv4SubnetsForZone(p *ListIpv4SubnetsForZoneParams) (*ListIpv4SubnetsForZoneResponse, error) + NewListIpv4SubnetsForZoneParams() *ListIpv4SubnetsForZoneParams + GetIpv4SubnetsForZoneByID(id string, opts ...OptionFunc) (*Ipv4SubnetsForZone, int, error) ListZones(p *ListZonesParams) (*ListZonesResponse, error) NewListZonesParams() *ListZonesParams GetZoneID(name string, opts ...OptionFunc) (string, int, error) @@ -56,6 +65,8 @@ type ZoneServiceIface interface { GetZonesMetricByID(id string, opts ...OptionFunc) (*ZonesMetric, int, error) ReleaseDedicatedZone(p *ReleaseDedicatedZoneParams) (*ReleaseDedicatedZoneResponse, error) NewReleaseDedicatedZoneParams(zoneid string) *ReleaseDedicatedZoneParams + ReleaseIpv4SubnetForZone(p *ReleaseIpv4SubnetForZoneParams) (*ReleaseIpv4SubnetForZoneResponse, error) + NewReleaseIpv4SubnetForZoneParams(id string) *ReleaseIpv4SubnetForZoneParams UpdateZone(p *UpdateZoneParams) (*UpdateZoneResponse, error) NewUpdateZoneParams(id string) *UpdateZoneParams ListVmwareDcVms(p *ListVmwareDcVmsParams) (*ListVmwareDcVmsResponse, error) @@ -65,10 +76,204 @@ type ZoneServiceIface interface { ListVmwareDcs(p *ListVmwareDcsParams) (*ListVmwareDcsResponse, error) NewListVmwareDcsParams(zoneid string) *ListVmwareDcsParams GetVmwareDcID(keyword string, zoneid string, opts ...OptionFunc) (string, int, error) - UpdateVmwareDc(p *UpdateVmwareDcParams) (*UpdateVmwareDcResponse, error) - NewUpdateVmwareDcParams(zoneid string) *UpdateVmwareDcParams RemoveVmwareDc(p *RemoveVmwareDcParams) (*RemoveVmwareDcResponse, error) NewRemoveVmwareDcParams(zoneid string) *RemoveVmwareDcParams + UpdateIpv4SubnetForZone(p *UpdateIpv4SubnetForZoneParams) (*UpdateIpv4SubnetForZoneResponse, error) + NewUpdateIpv4SubnetForZoneParams(id string, subnet string) *UpdateIpv4SubnetForZoneParams + UpdateVmwareDc(p *UpdateVmwareDcParams) (*UpdateVmwareDcResponse, error) + NewUpdateVmwareDcParams(zoneid string) *UpdateVmwareDcParams +} + +type CreateIpv4SubnetForZoneParams struct { + p map[string]interface{} +} + +func (p *CreateIpv4SubnetForZoneParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["projectid"]; found { + u.Set("projectid", v.(string)) + } + if v, found := p.p["subnet"]; found { + u.Set("subnet", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *CreateIpv4SubnetForZoneParams) SetAccount(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["account"] = v +} + +func (p *CreateIpv4SubnetForZoneParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") + } +} + +func (p *CreateIpv4SubnetForZoneParams) GetAccount() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["account"].(string) + return value, ok +} + +func (p *CreateIpv4SubnetForZoneParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *CreateIpv4SubnetForZoneParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *CreateIpv4SubnetForZoneParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *CreateIpv4SubnetForZoneParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *CreateIpv4SubnetForZoneParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *CreateIpv4SubnetForZoneParams) GetProjectid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["projectid"].(string) + return value, ok +} + +func (p *CreateIpv4SubnetForZoneParams) SetSubnet(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["subnet"] = v +} + +func (p *CreateIpv4SubnetForZoneParams) ResetSubnet() { + if p.p != nil && p.p["subnet"] != nil { + delete(p.p, "subnet") + } +} + +func (p *CreateIpv4SubnetForZoneParams) GetSubnet() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["subnet"].(string) + return value, ok +} + +func (p *CreateIpv4SubnetForZoneParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *CreateIpv4SubnetForZoneParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *CreateIpv4SubnetForZoneParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new CreateIpv4SubnetForZoneParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewCreateIpv4SubnetForZoneParams(subnet string, zoneid string) *CreateIpv4SubnetForZoneParams { + p := &CreateIpv4SubnetForZoneParams{} + p.p = make(map[string]interface{}) + p.p["subnet"] = subnet + p.p["zoneid"] = zoneid + return p +} + +// Creates a IPv4 subnet for a zone. +func (s *ZoneService) CreateIpv4SubnetForZone(p *CreateIpv4SubnetForZoneParams) (*CreateIpv4SubnetForZoneResponse, error) { + resp, err := s.cs.newRequest("createIpv4SubnetForZone", p.toURLValues()) + if err != nil { + return nil, err + } + + var r CreateIpv4SubnetForZoneResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type CreateIpv4SubnetForZoneResponse 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"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Subnet string `json:"subnet"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } type CreateZoneParams struct { @@ -530,11 +735,11 @@ type CreateZoneResponseCapacity struct { Zonename string `json:"zonename"` } -type DedicateZoneParams struct { +type DedicateIpv4SubnetForZoneParams struct { p map[string]interface{} } -func (p *DedicateZoneParams) toURLValues() url.Values { +func (p *DedicateIpv4SubnetForZoneParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -545,26 +750,29 @@ func (p *DedicateZoneParams) toURLValues() url.Values { if v, found := p.p["domainid"]; found { u.Set("domainid", v.(string)) } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) + 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 *DedicateZoneParams) SetAccount(v string) { +func (p *DedicateIpv4SubnetForZoneParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["account"] = v } -func (p *DedicateZoneParams) ResetAccount() { +func (p *DedicateIpv4SubnetForZoneParams) ResetAccount() { if p.p != nil && p.p["account"] != nil { delete(p.p, "account") } } -func (p *DedicateZoneParams) GetAccount() (string, bool) { +func (p *DedicateIpv4SubnetForZoneParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -572,20 +780,20 @@ func (p *DedicateZoneParams) GetAccount() (string, bool) { return value, ok } -func (p *DedicateZoneParams) SetDomainid(v string) { +func (p *DedicateIpv4SubnetForZoneParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["domainid"] = v } -func (p *DedicateZoneParams) ResetDomainid() { +func (p *DedicateIpv4SubnetForZoneParams) ResetDomainid() { if p.p != nil && p.p["domainid"] != nil { delete(p.p, "domainid") } } -func (p *DedicateZoneParams) GetDomainid() (string, bool) { +func (p *DedicateIpv4SubnetForZoneParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -593,45 +801,65 @@ func (p *DedicateZoneParams) GetDomainid() (string, bool) { return value, ok } -func (p *DedicateZoneParams) SetZoneid(v string) { +func (p *DedicateIpv4SubnetForZoneParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["zoneid"] = v + p.p["id"] = v } -func (p *DedicateZoneParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") +func (p *DedicateIpv4SubnetForZoneParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *DedicateZoneParams) GetZoneid() (string, bool) { +func (p *DedicateIpv4SubnetForZoneParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["zoneid"].(string) + value, ok := p.p["id"].(string) return value, ok } -// You should always use this function to get a new DedicateZoneParams instance, +func (p *DedicateIpv4SubnetForZoneParams) SetProjectid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["projectid"] = v +} + +func (p *DedicateIpv4SubnetForZoneParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") + } +} + +func (p *DedicateIpv4SubnetForZoneParams) 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 DedicateIpv4SubnetForZoneParams instance, // as then you are sure you have configured all required params -func (s *ZoneService) NewDedicateZoneParams(domainid string, zoneid string) *DedicateZoneParams { - p := &DedicateZoneParams{} +func (s *ZoneService) NewDedicateIpv4SubnetForZoneParams(id string) *DedicateIpv4SubnetForZoneParams { + p := &DedicateIpv4SubnetForZoneParams{} p.p = make(map[string]interface{}) - p.p["domainid"] = domainid - p.p["zoneid"] = zoneid + p.p["id"] = id return p } -// Dedicates a zones. -func (s *ZoneService) DedicateZone(p *DedicateZoneParams) (*DedicateZoneResponse, error) { - resp, err := s.cs.newRequest("dedicateZone", p.toURLValues()) +// Dedicates an existing IPv4 subnet for a zone to an account or a domain. +func (s *ZoneService) DedicateIpv4SubnetForZone(p *DedicateIpv4SubnetForZoneParams) (*DedicateIpv4SubnetForZoneResponse, error) { + resp, err := s.cs.newRequest("dedicateIpv4SubnetForZone", p.toURLValues()) if err != nil { return nil, err } - var r DedicateZoneResponse + var r DedicateIpv4SubnetForZoneResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -659,67 +887,211 @@ func (s *ZoneService) DedicateZone(p *DedicateZoneParams) (*DedicateZoneResponse return &r, nil } -type DedicateZoneResponse struct { - Accountid string `json:"accountid"` - Affinitygroupid string `json:"affinitygroupid"` - Domainid string `json:"domainid"` - Id string `json:"id"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` +type DedicateIpv4SubnetForZoneResponse 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"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Subnet string `json:"subnet"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -type DeleteZoneParams struct { +type DedicateZoneParams struct { p map[string]interface{} } -func (p *DeleteZoneParams) toURLValues() url.Values { +func (p *DedicateZoneParams) 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["account"]; found { + u.Set("account", v.(string)) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) } return u } -func (p *DeleteZoneParams) SetId(v string) { +func (p *DedicateZoneParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["id"] = v + p.p["account"] = v } -func (p *DeleteZoneParams) ResetId() { - if p.p != nil && p.p["id"] != nil { - delete(p.p, "id") +func (p *DedicateZoneParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *DeleteZoneParams) GetId() (string, bool) { +func (p *DedicateZoneParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["id"].(string) + value, ok := p.p["account"].(string) return value, ok } -// You should always use this function to get a new DeleteZoneParams instance, -// as then you are sure you have configured all required params -func (s *ZoneService) NewDeleteZoneParams(id string) *DeleteZoneParams { - p := &DeleteZoneParams{} - p.p = make(map[string]interface{}) - p.p["id"] = id - return p -} - -// Deletes a Zone. -func (s *ZoneService) DeleteZone(p *DeleteZoneParams) (*DeleteZoneResponse, error) { - resp, err := s.cs.newRequest("deleteZone", p.toURLValues()) - if err != nil { - return nil, err +func (p *DedicateZoneParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *DedicateZoneParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *DedicateZoneParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *DedicateZoneParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *DedicateZoneParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *DedicateZoneParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new DedicateZoneParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewDedicateZoneParams(domainid string, zoneid string) *DedicateZoneParams { + p := &DedicateZoneParams{} + p.p = make(map[string]interface{}) + p.p["domainid"] = domainid + p.p["zoneid"] = zoneid + return p +} + +// Dedicates a zones. +func (s *ZoneService) DedicateZone(p *DedicateZoneParams) (*DedicateZoneResponse, error) { + resp, err := s.cs.newRequest("dedicateZone", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DedicateZoneResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + b, err = getRawValue(b) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DedicateZoneResponse struct { + Accountid string `json:"accountid"` + Affinitygroupid string `json:"affinitygroupid"` + Domainid string `json:"domainid"` + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type DeleteZoneParams struct { + p map[string]interface{} +} + +func (p *DeleteZoneParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteZoneParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteZoneParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteZoneParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteZoneParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewDeleteZoneParams(id string) *DeleteZoneParams { + p := &DeleteZoneParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes a Zone. +func (s *ZoneService) DeleteZone(p *DeleteZoneParams) (*DeleteZoneResponse, error) { + resp, err := s.cs.newRequest("deleteZone", p.toURLValues()) + if err != nil { + return nil, err } var r DeleteZoneResponse @@ -764,6 +1136,88 @@ func (r *DeleteZoneResponse) UnmarshalJSON(b []byte) error { return json.Unmarshal(b, (*alias)(r)) } +type DeleteIpv4SubnetForZoneParams struct { + p map[string]interface{} +} + +func (p *DeleteIpv4SubnetForZoneParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + return u +} + +func (p *DeleteIpv4SubnetForZoneParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *DeleteIpv4SubnetForZoneParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *DeleteIpv4SubnetForZoneParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +// You should always use this function to get a new DeleteIpv4SubnetForZoneParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewDeleteIpv4SubnetForZoneParams(id string) *DeleteIpv4SubnetForZoneParams { + p := &DeleteIpv4SubnetForZoneParams{} + p.p = make(map[string]interface{}) + p.p["id"] = id + return p +} + +// Deletes an existing IPv4 subnet for a zone. +func (s *ZoneService) DeleteIpv4SubnetForZone(p *DeleteIpv4SubnetForZoneParams) (*DeleteIpv4SubnetForZoneResponse, error) { + resp, err := s.cs.newRequest("deleteIpv4SubnetForZone", p.toURLValues()) + if err != nil { + return nil, err + } + + var r DeleteIpv4SubnetForZoneResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type DeleteIpv4SubnetForZoneResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + type DisableOutOfBandManagementForZoneParams struct { p map[string]interface{} } @@ -1341,18 +1795,17 @@ type DedicatedZone struct { Zonename string `json:"zonename"` } -type ListZonesParams struct { +type ListIpv4SubnetsForZoneParams struct { p map[string]interface{} } -func (p *ListZonesParams) toURLValues() url.Values { +func (p *ListIpv4SubnetsForZoneParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["available"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("available", vv) + if v, found := p.p["account"]; found { + u.Set("account", v.(string)) } if v, found := p.p["domainid"]; found { u.Set("domainid", v.(string)) @@ -1360,19 +1813,9 @@ func (p *ListZonesParams) toURLValues() url.Values { if v, found := p.p["id"]; found { u.Set("id", v.(string)) } - if v, found := p.p["ids"]; found { - vv := strings.Join(v.([]string), ",") - u.Set("ids", vv) - } if v, found := p.p["keyword"]; found { u.Set("keyword", v.(string)) } - if v, found := p.p["name"]; found { - u.Set("name", v.(string)) - } - if v, found := p.p["networktype"]; found { - u.Set("networktype", v.(string)) - } if v, found := p.p["page"]; found { vv := strconv.Itoa(v.(int)) u.Set("page", vv) @@ -1381,59 +1824,53 @@ func (p *ListZonesParams) toURLValues() url.Values { vv := strconv.Itoa(v.(int)) u.Set("pagesize", vv) } - if v, found := p.p["showcapacities"]; found { - vv := strconv.FormatBool(v.(bool)) - u.Set("showcapacities", vv) + 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["subnet"]; found { + u.Set("subnet", v.(string)) } - if v, found := p.p["tags"]; found { - m := v.(map[string]string) - for i, k := range getSortedKeysFromMap(m) { - u.Set(fmt.Sprintf("tags[%d].key", i), k) - u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) - } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) } return u } -func (p *ListZonesParams) SetAvailable(v bool) { +func (p *ListIpv4SubnetsForZoneParams) SetAccount(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["available"] = v + p.p["account"] = v } -func (p *ListZonesParams) ResetAvailable() { - if p.p != nil && p.p["available"] != nil { - delete(p.p, "available") +func (p *ListIpv4SubnetsForZoneParams) ResetAccount() { + if p.p != nil && p.p["account"] != nil { + delete(p.p, "account") } } -func (p *ListZonesParams) GetAvailable() (bool, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetAccount() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["available"].(bool) + value, ok := p.p["account"].(string) return value, ok } -func (p *ListZonesParams) SetDomainid(v string) { +func (p *ListIpv4SubnetsForZoneParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["domainid"] = v } -func (p *ListZonesParams) ResetDomainid() { +func (p *ListIpv4SubnetsForZoneParams) ResetDomainid() { if p.p != nil && p.p["domainid"] != nil { delete(p.p, "domainid") } } -func (p *ListZonesParams) GetDomainid() (string, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1441,20 +1878,20 @@ func (p *ListZonesParams) GetDomainid() (string, bool) { return value, ok } -func (p *ListZonesParams) SetId(v string) { +func (p *ListIpv4SubnetsForZoneParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *ListZonesParams) ResetId() { +func (p *ListIpv4SubnetsForZoneParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *ListZonesParams) GetId() (string, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1462,41 +1899,20 @@ func (p *ListZonesParams) GetId() (string, bool) { return value, ok } -func (p *ListZonesParams) SetIds(v []string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["ids"] = v -} - -func (p *ListZonesParams) ResetIds() { - if p.p != nil && p.p["ids"] != nil { - delete(p.p, "ids") - } -} - -func (p *ListZonesParams) GetIds() ([]string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["ids"].([]string) - return value, ok -} - -func (p *ListZonesParams) SetKeyword(v string) { +func (p *ListIpv4SubnetsForZoneParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListZonesParams) ResetKeyword() { +func (p *ListIpv4SubnetsForZoneParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListZonesParams) GetKeyword() (string, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1504,62 +1920,20 @@ func (p *ListZonesParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListZonesParams) SetName(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["name"] = v -} - -func (p *ListZonesParams) ResetName() { - if p.p != nil && p.p["name"] != nil { - delete(p.p, "name") - } -} - -func (p *ListZonesParams) GetName() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["name"].(string) - return value, ok -} - -func (p *ListZonesParams) SetNetworktype(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["networktype"] = v -} - -func (p *ListZonesParams) ResetNetworktype() { - if p.p != nil && p.p["networktype"] != nil { - delete(p.p, "networktype") - } -} - -func (p *ListZonesParams) GetNetworktype() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["networktype"].(string) - return value, ok -} - -func (p *ListZonesParams) SetPage(v int) { +func (p *ListIpv4SubnetsForZoneParams) SetPage(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["page"] = v } -func (p *ListZonesParams) ResetPage() { +func (p *ListIpv4SubnetsForZoneParams) ResetPage() { if p.p != nil && p.p["page"] != nil { delete(p.p, "page") } } -func (p *ListZonesParams) GetPage() (int, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetPage() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1567,20 +1941,20 @@ func (p *ListZonesParams) GetPage() (int, bool) { return value, ok } -func (p *ListZonesParams) SetPagesize(v int) { +func (p *ListIpv4SubnetsForZoneParams) SetPagesize(v int) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["pagesize"] = v } -func (p *ListZonesParams) ResetPagesize() { +func (p *ListIpv4SubnetsForZoneParams) ResetPagesize() { if p.p != nil && p.p["pagesize"] != nil { delete(p.p, "pagesize") } } -func (p *ListZonesParams) GetPagesize() (int, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetPagesize() (int, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1588,130 +1962,80 @@ func (p *ListZonesParams) GetPagesize() (int, bool) { return value, ok } -func (p *ListZonesParams) SetShowcapacities(v bool) { +func (p *ListIpv4SubnetsForZoneParams) SetProjectid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["showcapacities"] = v + p.p["projectid"] = v } -func (p *ListZonesParams) ResetShowcapacities() { - if p.p != nil && p.p["showcapacities"] != nil { - delete(p.p, "showcapacities") +func (p *ListIpv4SubnetsForZoneParams) ResetProjectid() { + if p.p != nil && p.p["projectid"] != nil { + delete(p.p, "projectid") } } -func (p *ListZonesParams) GetShowcapacities() (bool, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetProjectid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["showcapacities"].(bool) + value, ok := p.p["projectid"].(string) return value, ok } -func (p *ListZonesParams) SetShowicon(v bool) { +func (p *ListIpv4SubnetsForZoneParams) SetSubnet(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["showicon"] = v + p.p["subnet"] = v } -func (p *ListZonesParams) ResetShowicon() { - if p.p != nil && p.p["showicon"] != nil { - delete(p.p, "showicon") +func (p *ListIpv4SubnetsForZoneParams) ResetSubnet() { + if p.p != nil && p.p["subnet"] != nil { + delete(p.p, "subnet") } } -func (p *ListZonesParams) GetShowicon() (bool, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetSubnet() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["showicon"].(bool) + value, ok := p.p["subnet"].(string) return value, ok } -func (p *ListZonesParams) SetTags(v map[string]string) { +func (p *ListIpv4SubnetsForZoneParams) SetZoneid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["tags"] = v + p.p["zoneid"] = v } -func (p *ListZonesParams) ResetTags() { - if p.p != nil && p.p["tags"] != nil { - delete(p.p, "tags") +func (p *ListIpv4SubnetsForZoneParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") } } -func (p *ListZonesParams) GetTags() (map[string]string, bool) { +func (p *ListIpv4SubnetsForZoneParams) GetZoneid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["tags"].(map[string]string) + value, ok := p.p["zoneid"].(string) return value, ok } -// You should always use this function to get a new ListZonesParams instance, +// You should always use this function to get a new ListIpv4SubnetsForZoneParams instance, // as then you are sure you have configured all required params -func (s *ZoneService) NewListZonesParams() *ListZonesParams { - p := &ListZonesParams{} +func (s *ZoneService) NewListIpv4SubnetsForZoneParams() *ListIpv4SubnetsForZoneParams { + p := &ListIpv4SubnetsForZoneParams{} p.p = make(map[string]interface{}) return p } // This is a courtesy helper function, which in some cases may not work as expected! -func (s *ZoneService) GetZoneID(name string, opts ...OptionFunc) (string, int, error) { - p := &ListZonesParams{} - 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.ListZones(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.Zones[0].Id, l.Count, nil - } - - if l.Count > 1 { - for _, v := range l.Zones { - 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) -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *ZoneService) GetZoneByName(name string, opts ...OptionFunc) (*Zone, int, error) { - id, count, err := s.GetZoneID(name, opts...) - if err != nil { - return nil, count, err - } - - r, count, err := s.GetZoneByID(id, opts...) - if err != nil { - return nil, count, err - } - return r, count, nil -} - -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *ZoneService) GetZoneByID(id string, opts ...OptionFunc) (*Zone, int, error) { - p := &ListZonesParams{} +func (s *ZoneService) GetIpv4SubnetsForZoneByID(id string, opts ...OptionFunc) (*Ipv4SubnetsForZone, int, error) { + p := &ListIpv4SubnetsForZoneParams{} p.p = make(map[string]interface{}) p.p["id"] = id @@ -1722,7 +2046,7 @@ func (s *ZoneService) GetZoneByID(id string, opts ...OptionFunc) (*Zone, int, er } } - l, err := s.ListZones(p) + l, err := s.ListIpv4SubnetsForZone(p) if err != nil { if strings.Contains(err.Error(), fmt.Sprintf( "Invalid parameter id value=%s due to incorrect long value format, "+ @@ -1737,19 +2061,19 @@ func (s *ZoneService) GetZoneByID(id string, opts ...OptionFunc) (*Zone, int, er } if l.Count == 1 { - return l.Zones[0], l.Count, nil + return l.Ipv4SubnetsForZone[0], l.Count, nil } - return nil, l.Count, fmt.Errorf("There is more then one result for Zone UUID: %s!", id) + return nil, l.Count, fmt.Errorf("There is more then one result for Ipv4SubnetsForZone UUID: %s!", id) } -// Lists zones -func (s *ZoneService) ListZones(p *ListZonesParams) (*ListZonesResponse, error) { - resp, err := s.cs.newRequest("listZones", p.toURLValues()) +// Lists IPv4 subnets for zone. +func (s *ZoneService) ListIpv4SubnetsForZone(p *ListIpv4SubnetsForZoneParams) (*ListIpv4SubnetsForZoneResponse, error) { + resp, err := s.cs.newRequest("listIpv4SubnetsForZone", p.toURLValues()) if err != nil { return nil, err } - var r ListZonesResponse + var r ListIpv4SubnetsForZoneResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -1757,69 +2081,31 @@ func (s *ZoneService) ListZones(p *ListZonesParams) (*ListZonesResponse, error) return &r, nil } -type ListZonesResponse struct { - Count int `json:"count"` - Zones []*Zone `json:"zone"` -} - -type Zone struct { - Allocationstate string `json:"allocationstate"` - Allowuserspecifyvrmtu bool `json:"allowuserspecifyvrmtu"` - Asnrange string `json:"asnrange"` - Capacity []ZoneCapacity `json:"capacity"` - Description string `json:"description"` - Dhcpprovider string `json:"dhcpprovider"` - Displaytext string `json:"displaytext"` - Dns1 string `json:"dns1"` - Dns2 string `json:"dns2"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainname string `json:"domainname"` - Guestcidraddress string `json:"guestcidraddress"` - Hasannotations bool `json:"hasannotations"` - Icon interface{} `json:"icon"` - Id string `json:"id"` - Internaldns1 string `json:"internaldns1"` - Internaldns2 string `json:"internaldns2"` - Ip6dns1 string `json:"ip6dns1"` - Ip6dns2 string `json:"ip6dns2"` - Ismultiarch bool `json:"ismultiarch"` - Isnsxenabled bool `json:"isnsxenabled"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Localstorageenabled bool `json:"localstorageenabled"` - Name string `json:"name"` - Networktype string `json:"networktype"` - Resourcedetails map[string]string `json:"resourcedetails"` - Routerprivateinterfacemaxmtu int `json:"routerprivateinterfacemaxmtu"` - Routerpublicinterfacemaxmtu int `json:"routerpublicinterfacemaxmtu"` - Securitygroupsenabled bool `json:"securitygroupsenabled"` - Tags []Tags `json:"tags"` - Type string `json:"type"` - Zonetoken string `json:"zonetoken"` +type ListIpv4SubnetsForZoneResponse struct { + Count int `json:"count"` + Ipv4SubnetsForZone []*Ipv4SubnetsForZone `json:"ipv4subnetsforzone"` } -type ZoneCapacity struct { - Capacityallocated int64 `json:"capacityallocated"` - Capacitytotal int64 `json:"capacitytotal"` - Capacityused int64 `json:"capacityused"` - Clusterid string `json:"clusterid"` - Clustername string `json:"clustername"` - Name string `json:"name"` - Percentused string `json:"percentused"` - Podid string `json:"podid"` - Podname string `json:"podname"` - Tag string `json:"tag"` - Type int `json:"type"` - Zoneid string `json:"zoneid"` - Zonename string `json:"zonename"` +type Ipv4SubnetsForZone 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"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Subnet string `json:"subnet"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } -type ListZonesMetricsParams struct { +type ListZonesParams struct { p map[string]interface{} } -func (p *ListZonesMetricsParams) toURLValues() url.Values { +func (p *ListZonesParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u @@ -1873,20 +2159,20 @@ func (p *ListZonesMetricsParams) toURLValues() url.Values { return u } -func (p *ListZonesMetricsParams) SetAvailable(v bool) { +func (p *ListZonesParams) SetAvailable(v bool) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["available"] = v } -func (p *ListZonesMetricsParams) ResetAvailable() { +func (p *ListZonesParams) ResetAvailable() { if p.p != nil && p.p["available"] != nil { delete(p.p, "available") } } -func (p *ListZonesMetricsParams) GetAvailable() (bool, bool) { +func (p *ListZonesParams) GetAvailable() (bool, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1894,20 +2180,20 @@ func (p *ListZonesMetricsParams) GetAvailable() (bool, bool) { return value, ok } -func (p *ListZonesMetricsParams) SetDomainid(v string) { +func (p *ListZonesParams) SetDomainid(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["domainid"] = v } -func (p *ListZonesMetricsParams) ResetDomainid() { +func (p *ListZonesParams) ResetDomainid() { if p.p != nil && p.p["domainid"] != nil { delete(p.p, "domainid") } } -func (p *ListZonesMetricsParams) GetDomainid() (string, bool) { +func (p *ListZonesParams) GetDomainid() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1915,20 +2201,20 @@ func (p *ListZonesMetricsParams) GetDomainid() (string, bool) { return value, ok } -func (p *ListZonesMetricsParams) SetId(v string) { +func (p *ListZonesParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["id"] = v } -func (p *ListZonesMetricsParams) ResetId() { +func (p *ListZonesParams) ResetId() { if p.p != nil && p.p["id"] != nil { delete(p.p, "id") } } -func (p *ListZonesMetricsParams) GetId() (string, bool) { +func (p *ListZonesParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1936,20 +2222,20 @@ func (p *ListZonesMetricsParams) GetId() (string, bool) { return value, ok } -func (p *ListZonesMetricsParams) SetIds(v []string) { +func (p *ListZonesParams) SetIds(v []string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["ids"] = v } -func (p *ListZonesMetricsParams) ResetIds() { +func (p *ListZonesParams) ResetIds() { if p.p != nil && p.p["ids"] != nil { delete(p.p, "ids") } } -func (p *ListZonesMetricsParams) GetIds() ([]string, bool) { +func (p *ListZonesParams) GetIds() ([]string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1957,20 +2243,20 @@ func (p *ListZonesMetricsParams) GetIds() ([]string, bool) { return value, ok } -func (p *ListZonesMetricsParams) SetKeyword(v string) { +func (p *ListZonesParams) SetKeyword(v string) { if p.p == nil { p.p = make(map[string]interface{}) } p.p["keyword"] = v } -func (p *ListZonesMetricsParams) ResetKeyword() { +func (p *ListZonesParams) ResetKeyword() { if p.p != nil && p.p["keyword"] != nil { delete(p.p, "keyword") } } -func (p *ListZonesMetricsParams) GetKeyword() (string, bool) { +func (p *ListZonesParams) GetKeyword() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -1978,7 +2264,481 @@ func (p *ListZonesMetricsParams) GetKeyword() (string, bool) { return value, ok } -func (p *ListZonesMetricsParams) SetName(v string) { +func (p *ListZonesParams) SetName(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["name"] = v +} + +func (p *ListZonesParams) ResetName() { + if p.p != nil && p.p["name"] != nil { + delete(p.p, "name") + } +} + +func (p *ListZonesParams) GetName() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["name"].(string) + return value, ok +} + +func (p *ListZonesParams) SetNetworktype(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["networktype"] = v +} + +func (p *ListZonesParams) ResetNetworktype() { + if p.p != nil && p.p["networktype"] != nil { + delete(p.p, "networktype") + } +} + +func (p *ListZonesParams) GetNetworktype() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["networktype"].(string) + return value, ok +} + +func (p *ListZonesParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListZonesParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListZonesParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListZonesParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListZonesParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListZonesParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListZonesParams) SetShowcapacities(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["showcapacities"] = v +} + +func (p *ListZonesParams) ResetShowcapacities() { + if p.p != nil && p.p["showcapacities"] != nil { + delete(p.p, "showcapacities") + } +} + +func (p *ListZonesParams) GetShowcapacities() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["showcapacities"].(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) ResetShowicon() { + if p.p != nil && p.p["showicon"] != nil { + delete(p.p, "showicon") + } +} + +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{}) + } + p.p["tags"] = v +} + +func (p *ListZonesParams) ResetTags() { + if p.p != nil && p.p["tags"] != nil { + delete(p.p, "tags") + } +} + +func (p *ListZonesParams) GetTags() (map[string]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["tags"].(map[string]string) + return value, ok +} + +// You should always use this function to get a new ListZonesParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewListZonesParams() *ListZonesParams { + p := &ListZonesParams{} + p.p = make(map[string]interface{}) + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ZoneService) GetZoneID(name string, opts ...OptionFunc) (string, int, error) { + p := &ListZonesParams{} + 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.ListZones(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.Zones[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.Zones { + 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) +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ZoneService) GetZoneByName(name string, opts ...OptionFunc) (*Zone, int, error) { + id, count, err := s.GetZoneID(name, opts...) + if err != nil { + return nil, count, err + } + + r, count, err := s.GetZoneByID(id, opts...) + if err != nil { + return nil, count, err + } + return r, count, nil +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ZoneService) GetZoneByID(id string, opts ...OptionFunc) (*Zone, int, error) { + p := &ListZonesParams{} + p.p = make(map[string]interface{}) + + p.p["id"] = id + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return nil, -1, err + } + } + + l, err := s.ListZones(p) + if err != nil { + if strings.Contains(err.Error(), fmt.Sprintf( + "Invalid parameter id value=%s due to incorrect long value format, "+ + "or entity does not exist", id)) { + return nil, 0, fmt.Errorf("No match found for %s: %+v", id, l) + } + return nil, -1, err + } + + if l.Count == 0 { + return nil, l.Count, fmt.Errorf("No match found for %s: %+v", id, l) + } + + if l.Count == 1 { + return l.Zones[0], l.Count, nil + } + return nil, l.Count, fmt.Errorf("There is more then one result for Zone UUID: %s!", id) +} + +// Lists zones +func (s *ZoneService) ListZones(p *ListZonesParams) (*ListZonesResponse, error) { + resp, err := s.cs.newRequest("listZones", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListZonesResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListZonesResponse struct { + Count int `json:"count"` + Zones []*Zone `json:"zone"` +} + +type Zone struct { + Allocationstate string `json:"allocationstate"` + Allowuserspecifyvrmtu bool `json:"allowuserspecifyvrmtu"` + Asnrange string `json:"asnrange"` + Capacity []ZoneCapacity `json:"capacity"` + Description string `json:"description"` + Dhcpprovider string `json:"dhcpprovider"` + Displaytext string `json:"displaytext"` + Dns1 string `json:"dns1"` + Dns2 string `json:"dns2"` + Domain string `json:"domain"` + Domainid string `json:"domainid"` + Domainname string `json:"domainname"` + Guestcidraddress string `json:"guestcidraddress"` + Hasannotations bool `json:"hasannotations"` + Icon interface{} `json:"icon"` + Id string `json:"id"` + Internaldns1 string `json:"internaldns1"` + Internaldns2 string `json:"internaldns2"` + Ip6dns1 string `json:"ip6dns1"` + Ip6dns2 string `json:"ip6dns2"` + Ismultiarch bool `json:"ismultiarch"` + Isnsxenabled bool `json:"isnsxenabled"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Localstorageenabled bool `json:"localstorageenabled"` + Name string `json:"name"` + Networktype string `json:"networktype"` + Resourcedetails map[string]string `json:"resourcedetails"` + Routerprivateinterfacemaxmtu int `json:"routerprivateinterfacemaxmtu"` + Routerpublicinterfacemaxmtu int `json:"routerpublicinterfacemaxmtu"` + Securitygroupsenabled bool `json:"securitygroupsenabled"` + Tags []Tags `json:"tags"` + Type string `json:"type"` + Zonetoken string `json:"zonetoken"` +} + +type ZoneCapacity struct { + Capacityallocated int64 `json:"capacityallocated"` + Capacitytotal int64 `json:"capacitytotal"` + Capacityused int64 `json:"capacityused"` + Clusterid string `json:"clusterid"` + Clustername string `json:"clustername"` + Name string `json:"name"` + Percentused string `json:"percentused"` + Podid string `json:"podid"` + Podname string `json:"podname"` + Tag string `json:"tag"` + Type int `json:"type"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` +} + +type ListZonesMetricsParams struct { + p map[string]interface{} +} + +func (p *ListZonesMetricsParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["available"]; found { + vv := strconv.FormatBool(v.(bool)) + u.Set("available", vv) + } + if v, found := p.p["domainid"]; found { + u.Set("domainid", v.(string)) + } + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["ids"]; found { + vv := strings.Join(v.([]string), ",") + u.Set("ids", vv) + } + if v, found := p.p["keyword"]; found { + u.Set("keyword", v.(string)) + } + if v, found := p.p["name"]; found { + u.Set("name", v.(string)) + } + if v, found := p.p["networktype"]; found { + u.Set("networktype", v.(string)) + } + if v, found := p.p["page"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("page", vv) + } + if v, found := p.p["pagesize"]; found { + vv := strconv.Itoa(v.(int)) + u.Set("pagesize", vv) + } + if v, found := p.p["showcapacities"]; found { + 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) { + u.Set(fmt.Sprintf("tags[%d].key", i), k) + u.Set(fmt.Sprintf("tags[%d].value", i), m[k]) + } + } + return u +} + +func (p *ListZonesMetricsParams) SetAvailable(v bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["available"] = v +} + +func (p *ListZonesMetricsParams) ResetAvailable() { + if p.p != nil && p.p["available"] != nil { + delete(p.p, "available") + } +} + +func (p *ListZonesMetricsParams) GetAvailable() (bool, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["available"].(bool) + return value, ok +} + +func (p *ListZonesMetricsParams) SetDomainid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["domainid"] = v +} + +func (p *ListZonesMetricsParams) ResetDomainid() { + if p.p != nil && p.p["domainid"] != nil { + delete(p.p, "domainid") + } +} + +func (p *ListZonesMetricsParams) GetDomainid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["domainid"].(string) + return value, ok +} + +func (p *ListZonesMetricsParams) SetId(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["id"] = v +} + +func (p *ListZonesMetricsParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") + } +} + +func (p *ListZonesMetricsParams) GetId() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["id"].(string) + return value, ok +} + +func (p *ListZonesMetricsParams) SetIds(v []string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["ids"] = v +} + +func (p *ListZonesMetricsParams) ResetIds() { + if p.p != nil && p.p["ids"] != nil { + delete(p.p, "ids") + } +} + +func (p *ListZonesMetricsParams) GetIds() ([]string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["ids"].([]string) + return value, ok +} + +func (p *ListZonesMetricsParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListZonesMetricsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListZonesMetricsParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListZonesMetricsParams) SetName(v string) { if p.p == nil { p.p = make(map[string]interface{}) } @@ -2307,59 +3067,141 @@ type ZonesMetricCapacity struct { Zonename string `json:"zonename"` } -type ReleaseDedicatedZoneParams struct { +type ReleaseDedicatedZoneParams struct { + p map[string]interface{} +} + +func (p *ReleaseDedicatedZoneParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ReleaseDedicatedZoneParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ReleaseDedicatedZoneParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ReleaseDedicatedZoneParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ReleaseDedicatedZoneParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewReleaseDedicatedZoneParams(zoneid string) *ReleaseDedicatedZoneParams { + p := &ReleaseDedicatedZoneParams{} + p.p = make(map[string]interface{}) + p.p["zoneid"] = zoneid + return p +} + +// Release dedication of zone +func (s *ZoneService) ReleaseDedicatedZone(p *ReleaseDedicatedZoneParams) (*ReleaseDedicatedZoneResponse, error) { + resp, err := s.cs.newRequest("releaseDedicatedZone", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ReleaseDedicatedZoneResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err + } + return nil, err + } + + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } + } + + return &r, nil +} + +type ReleaseDedicatedZoneResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` +} + +type ReleaseIpv4SubnetForZoneParams struct { p map[string]interface{} } -func (p *ReleaseDedicatedZoneParams) toURLValues() url.Values { +func (p *ReleaseIpv4SubnetForZoneParams) toURLValues() url.Values { u := url.Values{} if p.p == nil { return u } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) } return u } -func (p *ReleaseDedicatedZoneParams) SetZoneid(v string) { +func (p *ReleaseIpv4SubnetForZoneParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["zoneid"] = v + p.p["id"] = v } -func (p *ReleaseDedicatedZoneParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") +func (p *ReleaseIpv4SubnetForZoneParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *ReleaseDedicatedZoneParams) GetZoneid() (string, bool) { +func (p *ReleaseIpv4SubnetForZoneParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["zoneid"].(string) + value, ok := p.p["id"].(string) return value, ok } -// You should always use this function to get a new ReleaseDedicatedZoneParams instance, +// You should always use this function to get a new ReleaseIpv4SubnetForZoneParams instance, // as then you are sure you have configured all required params -func (s *ZoneService) NewReleaseDedicatedZoneParams(zoneid string) *ReleaseDedicatedZoneParams { - p := &ReleaseDedicatedZoneParams{} +func (s *ZoneService) NewReleaseIpv4SubnetForZoneParams(id string) *ReleaseIpv4SubnetForZoneParams { + p := &ReleaseIpv4SubnetForZoneParams{} p.p = make(map[string]interface{}) - p.p["zoneid"] = zoneid + p.p["id"] = id return p } -// Release dedication of zone -func (s *ZoneService) ReleaseDedicatedZone(p *ReleaseDedicatedZoneParams) (*ReleaseDedicatedZoneResponse, error) { - resp, err := s.cs.newRequest("releaseDedicatedZone", p.toURLValues()) +// Releases an existing dedicated IPv4 subnet for a zone. +func (s *ZoneService) ReleaseIpv4SubnetForZone(p *ReleaseIpv4SubnetForZoneParams) (*ReleaseIpv4SubnetForZoneResponse, error) { + resp, err := s.cs.newRequest("releaseIpv4SubnetForZone", p.toURLValues()) if err != nil { return nil, err } - var r ReleaseDedicatedZoneResponse + var r ReleaseIpv4SubnetForZoneResponse if err := json.Unmarshal(resp, &r); err != nil { return nil, err } @@ -2374,6 +3216,11 @@ func (s *ZoneService) ReleaseDedicatedZone(p *ReleaseDedicatedZoneParams) (*Rele return nil, err } + b, err = getRawValue(b) + if err != nil { + return nil, err + } + if err := json.Unmarshal(b, &r); err != nil { return nil, err } @@ -2382,11 +3229,19 @@ func (s *ZoneService) ReleaseDedicatedZone(p *ReleaseDedicatedZoneParams) (*Rele return &r, nil } -type ReleaseDedicatedZoneResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` +type ReleaseIpv4SubnetForZoneResponse 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"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Subnet string `json:"subnet"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } type UpdateZoneParams struct { @@ -3351,169 +4206,383 @@ func (p *ListVmwareDcsParams) toURLValues() url.Values { vv := strconv.Itoa(v.(int)) u.Set("pagesize", vv) } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *ListVmwareDcsParams) SetKeyword(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["keyword"] = v +} + +func (p *ListVmwareDcsParams) ResetKeyword() { + if p.p != nil && p.p["keyword"] != nil { + delete(p.p, "keyword") + } +} + +func (p *ListVmwareDcsParams) GetKeyword() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["keyword"].(string) + return value, ok +} + +func (p *ListVmwareDcsParams) SetPage(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["page"] = v +} + +func (p *ListVmwareDcsParams) ResetPage() { + if p.p != nil && p.p["page"] != nil { + delete(p.p, "page") + } +} + +func (p *ListVmwareDcsParams) GetPage() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["page"].(int) + return value, ok +} + +func (p *ListVmwareDcsParams) SetPagesize(v int) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["pagesize"] = v +} + +func (p *ListVmwareDcsParams) ResetPagesize() { + if p.p != nil && p.p["pagesize"] != nil { + delete(p.p, "pagesize") + } +} + +func (p *ListVmwareDcsParams) GetPagesize() (int, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["pagesize"].(int) + return value, ok +} + +func (p *ListVmwareDcsParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *ListVmwareDcsParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *ListVmwareDcsParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new ListVmwareDcsParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewListVmwareDcsParams(zoneid string) *ListVmwareDcsParams { + p := &ListVmwareDcsParams{} + p.p = make(map[string]interface{}) + p.p["zoneid"] = zoneid + return p +} + +// This is a courtesy helper function, which in some cases may not work as expected! +func (s *ZoneService) GetVmwareDcID(keyword string, zoneid string, opts ...OptionFunc) (string, int, error) { + p := &ListVmwareDcsParams{} + p.p = make(map[string]interface{}) + + p.p["keyword"] = keyword + p.p["zoneid"] = zoneid + + for _, fn := range append(s.cs.options, opts...) { + if err := fn(s.cs, p); err != nil { + return "", -1, err + } + } + + l, err := s.ListVmwareDcs(p) + if err != nil { + return "", -1, err + } + + if l.Count == 0 { + return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + } + + if l.Count == 1 { + return l.VmwareDcs[0].Id, l.Count, nil + } + + if l.Count > 1 { + for _, v := range l.VmwareDcs { + if v.Name == keyword { + return v.Id, l.Count, nil + } + } + } + return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) +} + +// Retrieves VMware DC(s) associated with a zone. +func (s *ZoneService) ListVmwareDcs(p *ListVmwareDcsParams) (*ListVmwareDcsResponse, error) { + resp, err := s.cs.newRequest("listVmwareDcs", p.toURLValues()) + if err != nil { + return nil, err + } + + var r ListVmwareDcsResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err + } + + return &r, nil +} + +type ListVmwareDcsResponse struct { + Count int `json:"count"` + VmwareDcs []*VmwareDc `json:"vmwaredc"` +} + +type VmwareDc struct { + Id string `json:"id"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Name string `json:"name"` + Vcenter string `json:"vcenter"` + Zoneid int64 `json:"zoneid"` +} + +type RemoveVmwareDcParams struct { + p map[string]interface{} +} + +func (p *RemoveVmwareDcParams) toURLValues() url.Values { + u := url.Values{} + if p.p == nil { + return u + } + if v, found := p.p["zoneid"]; found { + u.Set("zoneid", v.(string)) + } + return u +} + +func (p *RemoveVmwareDcParams) SetZoneid(v string) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + p.p["zoneid"] = v +} + +func (p *RemoveVmwareDcParams) ResetZoneid() { + if p.p != nil && p.p["zoneid"] != nil { + delete(p.p, "zoneid") + } +} + +func (p *RemoveVmwareDcParams) GetZoneid() (string, bool) { + if p.p == nil { + p.p = make(map[string]interface{}) + } + value, ok := p.p["zoneid"].(string) + return value, ok +} + +// You should always use this function to get a new RemoveVmwareDcParams instance, +// as then you are sure you have configured all required params +func (s *ZoneService) NewRemoveVmwareDcParams(zoneid string) *RemoveVmwareDcParams { + p := &RemoveVmwareDcParams{} + p.p = make(map[string]interface{}) + p.p["zoneid"] = zoneid + return p +} + +// Remove a VMware datacenter from a zone. +func (s *ZoneService) RemoveVmwareDc(p *RemoveVmwareDcParams) (*RemoveVmwareDcResponse, error) { + resp, err := s.cs.newRequest("removeVmwareDc", p.toURLValues()) + if err != nil { + return nil, err + } + + var r RemoveVmwareDcResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } - return u + + return &r, nil } -func (p *ListVmwareDcsParams) SetKeyword(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["keyword"] = v +type RemoveVmwareDcResponse struct { + Displaytext string `json:"displaytext"` + JobID string `json:"jobid"` + Jobstatus int `json:"jobstatus"` + Success bool `json:"success"` } -func (p *ListVmwareDcsParams) ResetKeyword() { - if p.p != nil && p.p["keyword"] != nil { - delete(p.p, "keyword") +func (r *RemoveVmwareDcResponse) UnmarshalJSON(b []byte) error { + var m map[string]interface{} + err := json.Unmarshal(b, &m) + if err != nil { + return err } -} -func (p *ListVmwareDcsParams) GetKeyword() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) + if success, ok := m["success"].(string); ok { + m["success"] = success == "true" + b, err = json.Marshal(m) + if err != nil { + return err + } } - value, ok := p.p["keyword"].(string) - return value, ok -} -func (p *ListVmwareDcsParams) SetPage(v int) { - if p.p == nil { - p.p = make(map[string]interface{}) + if ostypeid, ok := m["ostypeid"].(float64); ok { + m["ostypeid"] = strconv.Itoa(int(ostypeid)) + b, err = json.Marshal(m) + if err != nil { + return err + } } - p.p["page"] = v + + type alias RemoveVmwareDcResponse + return json.Unmarshal(b, (*alias)(r)) } -func (p *ListVmwareDcsParams) ResetPage() { - if p.p != nil && p.p["page"] != nil { - delete(p.p, "page") - } +type UpdateIpv4SubnetForZoneParams struct { + p map[string]interface{} } -func (p *ListVmwareDcsParams) GetPage() (int, bool) { +func (p *UpdateIpv4SubnetForZoneParams) toURLValues() url.Values { + u := url.Values{} if p.p == nil { - p.p = make(map[string]interface{}) + return u } - value, ok := p.p["page"].(int) - return value, ok + if v, found := p.p["id"]; found { + u.Set("id", v.(string)) + } + if v, found := p.p["subnet"]; found { + u.Set("subnet", v.(string)) + } + return u } -func (p *ListVmwareDcsParams) SetPagesize(v int) { +func (p *UpdateIpv4SubnetForZoneParams) SetId(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["pagesize"] = v + p.p["id"] = v } -func (p *ListVmwareDcsParams) ResetPagesize() { - if p.p != nil && p.p["pagesize"] != nil { - delete(p.p, "pagesize") +func (p *UpdateIpv4SubnetForZoneParams) ResetId() { + if p.p != nil && p.p["id"] != nil { + delete(p.p, "id") } } -func (p *ListVmwareDcsParams) GetPagesize() (int, bool) { +func (p *UpdateIpv4SubnetForZoneParams) GetId() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["pagesize"].(int) + value, ok := p.p["id"].(string) return value, ok } -func (p *ListVmwareDcsParams) SetZoneid(v string) { +func (p *UpdateIpv4SubnetForZoneParams) SetSubnet(v string) { if p.p == nil { p.p = make(map[string]interface{}) } - p.p["zoneid"] = v + p.p["subnet"] = v } -func (p *ListVmwareDcsParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") +func (p *UpdateIpv4SubnetForZoneParams) ResetSubnet() { + if p.p != nil && p.p["subnet"] != nil { + delete(p.p, "subnet") } } -func (p *ListVmwareDcsParams) GetZoneid() (string, bool) { +func (p *UpdateIpv4SubnetForZoneParams) GetSubnet() (string, bool) { if p.p == nil { p.p = make(map[string]interface{}) } - value, ok := p.p["zoneid"].(string) + value, ok := p.p["subnet"].(string) return value, ok } -// You should always use this function to get a new ListVmwareDcsParams instance, +// You should always use this function to get a new UpdateIpv4SubnetForZoneParams instance, // as then you are sure you have configured all required params -func (s *ZoneService) NewListVmwareDcsParams(zoneid string) *ListVmwareDcsParams { - p := &ListVmwareDcsParams{} +func (s *ZoneService) NewUpdateIpv4SubnetForZoneParams(id string, subnet string) *UpdateIpv4SubnetForZoneParams { + p := &UpdateIpv4SubnetForZoneParams{} p.p = make(map[string]interface{}) - p.p["zoneid"] = zoneid + p.p["id"] = id + p.p["subnet"] = subnet return p } -// This is a courtesy helper function, which in some cases may not work as expected! -func (s *ZoneService) GetVmwareDcID(keyword string, zoneid string, opts ...OptionFunc) (string, int, error) { - p := &ListVmwareDcsParams{} - p.p = make(map[string]interface{}) - - p.p["keyword"] = keyword - p.p["zoneid"] = zoneid - - for _, fn := range append(s.cs.options, opts...) { - if err := fn(s.cs, p); err != nil { - return "", -1, err - } - } - - l, err := s.ListVmwareDcs(p) +// Updates an existing IPv4 subnet for a zone. +func (s *ZoneService) UpdateIpv4SubnetForZone(p *UpdateIpv4SubnetForZoneParams) (*UpdateIpv4SubnetForZoneResponse, error) { + resp, err := s.cs.newRequest("updateIpv4SubnetForZone", p.toURLValues()) if err != nil { - return "", -1, err - } - - if l.Count == 0 { - return "", l.Count, fmt.Errorf("No match found for %s: %+v", keyword, l) + return nil, err } - if l.Count == 1 { - return l.VmwareDcs[0].Id, l.Count, nil + var r UpdateIpv4SubnetForZoneResponse + if err := json.Unmarshal(resp, &r); err != nil { + return nil, err } - if l.Count > 1 { - for _, v := range l.VmwareDcs { - if v.Name == keyword { - return v.Id, l.Count, nil + // If we have a async client, we need to wait for the async result + if s.cs.async { + b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout) + if err != nil { + if err == AsyncTimeoutErr { + return &r, err } + return nil, err } - } - return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l) -} -// Retrieves VMware DC(s) associated with a zone. -func (s *ZoneService) ListVmwareDcs(p *ListVmwareDcsParams) (*ListVmwareDcsResponse, error) { - resp, err := s.cs.newRequest("listVmwareDcs", p.toURLValues()) - if err != nil { - return nil, err - } + b, err = getRawValue(b) + if err != nil { + return nil, err + } - var r ListVmwareDcsResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err + if err := json.Unmarshal(b, &r); err != nil { + return nil, err + } } return &r, nil } -type ListVmwareDcsResponse struct { - Count int `json:"count"` - VmwareDcs []*VmwareDc `json:"vmwaredc"` -} - -type VmwareDc struct { +type UpdateIpv4SubnetForZoneResponse 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"` - Vcenter string `json:"vcenter"` - Zoneid int64 `json:"zoneid"` + Project string `json:"project"` + Projectid string `json:"projectid"` + Subnet string `json:"subnet"` + Zoneid string `json:"zoneid"` + Zonename string `json:"zonename"` } type UpdateVmwareDcParams struct { @@ -3708,97 +4777,3 @@ type UpdateVmwareDcResponse struct { Vcenter string `json:"vcenter"` Zoneid int64 `json:"zoneid"` } - -type RemoveVmwareDcParams struct { - p map[string]interface{} -} - -func (p *RemoveVmwareDcParams) toURLValues() url.Values { - u := url.Values{} - if p.p == nil { - return u - } - if v, found := p.p["zoneid"]; found { - u.Set("zoneid", v.(string)) - } - return u -} - -func (p *RemoveVmwareDcParams) SetZoneid(v string) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - p.p["zoneid"] = v -} - -func (p *RemoveVmwareDcParams) ResetZoneid() { - if p.p != nil && p.p["zoneid"] != nil { - delete(p.p, "zoneid") - } -} - -func (p *RemoveVmwareDcParams) GetZoneid() (string, bool) { - if p.p == nil { - p.p = make(map[string]interface{}) - } - value, ok := p.p["zoneid"].(string) - return value, ok -} - -// You should always use this function to get a new RemoveVmwareDcParams instance, -// as then you are sure you have configured all required params -func (s *ZoneService) NewRemoveVmwareDcParams(zoneid string) *RemoveVmwareDcParams { - p := &RemoveVmwareDcParams{} - p.p = make(map[string]interface{}) - p.p["zoneid"] = zoneid - return p -} - -// Remove a VMware datacenter from a zone. -func (s *ZoneService) RemoveVmwareDc(p *RemoveVmwareDcParams) (*RemoveVmwareDcResponse, error) { - resp, err := s.cs.newRequest("removeVmwareDc", p.toURLValues()) - if err != nil { - return nil, err - } - - var r RemoveVmwareDcResponse - if err := json.Unmarshal(resp, &r); err != nil { - return nil, err - } - - return &r, nil -} - -type RemoveVmwareDcResponse struct { - Displaytext string `json:"displaytext"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Success bool `json:"success"` -} - -func (r *RemoveVmwareDcResponse) 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 RemoveVmwareDcResponse - return json.Unmarshal(b, (*alias)(r)) -} diff --git a/cloudstack/ZoneService_mock.go b/cloudstack/ZoneService_mock.go index 89f03dc3..1ae357d8 100644 --- a/cloudstack/ZoneService_mock.go +++ b/cloudstack/ZoneService_mock.go @@ -19,6 +19,11 @@ // Code generated by MockGen. DO NOT EDIT. // Source: ./cloudstack/ZoneService.go +// +// Generated by this command: +// +// mockgen -destination=./cloudstack/ZoneService_mock.go -package=cloudstack -copyright_file=header.txt -source=./cloudstack/ZoneService.go +// // Package cloudstack is a generated GoMock package. package cloudstack @@ -26,13 +31,14 @@ package cloudstack import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockZoneServiceIface is a mock of ZoneServiceIface interface. type MockZoneServiceIface struct { ctrl *gomock.Controller recorder *MockZoneServiceIfaceMockRecorder + isgomock struct{} } // MockZoneServiceIfaceMockRecorder is the mock recorder for MockZoneServiceIface. @@ -62,11 +68,26 @@ func (m *MockZoneServiceIface) AddVmwareDc(p *AddVmwareDcParams) (*AddVmwareDcRe } // AddVmwareDc indicates an expected call of AddVmwareDc. -func (mr *MockZoneServiceIfaceMockRecorder) AddVmwareDc(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) AddVmwareDc(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVmwareDc", reflect.TypeOf((*MockZoneServiceIface)(nil).AddVmwareDc), p) } +// CreateIpv4SubnetForZone mocks base method. +func (m *MockZoneServiceIface) CreateIpv4SubnetForZone(p *CreateIpv4SubnetForZoneParams) (*CreateIpv4SubnetForZoneResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateIpv4SubnetForZone", p) + ret0, _ := ret[0].(*CreateIpv4SubnetForZoneResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateIpv4SubnetForZone indicates an expected call of CreateIpv4SubnetForZone. +func (mr *MockZoneServiceIfaceMockRecorder) CreateIpv4SubnetForZone(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIpv4SubnetForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).CreateIpv4SubnetForZone), p) +} + // CreateZone mocks base method. func (m *MockZoneServiceIface) CreateZone(p *CreateZoneParams) (*CreateZoneResponse, error) { m.ctrl.T.Helper() @@ -77,11 +98,26 @@ func (m *MockZoneServiceIface) CreateZone(p *CreateZoneParams) (*CreateZoneRespo } // CreateZone indicates an expected call of CreateZone. -func (mr *MockZoneServiceIfaceMockRecorder) CreateZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) CreateZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateZone", reflect.TypeOf((*MockZoneServiceIface)(nil).CreateZone), p) } +// DedicateIpv4SubnetForZone mocks base method. +func (m *MockZoneServiceIface) DedicateIpv4SubnetForZone(p *DedicateIpv4SubnetForZoneParams) (*DedicateIpv4SubnetForZoneResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DedicateIpv4SubnetForZone", p) + ret0, _ := ret[0].(*DedicateIpv4SubnetForZoneResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DedicateIpv4SubnetForZone indicates an expected call of DedicateIpv4SubnetForZone. +func (mr *MockZoneServiceIfaceMockRecorder) DedicateIpv4SubnetForZone(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicateIpv4SubnetForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).DedicateIpv4SubnetForZone), p) +} + // DedicateZone mocks base method. func (m *MockZoneServiceIface) DedicateZone(p *DedicateZoneParams) (*DedicateZoneResponse, error) { m.ctrl.T.Helper() @@ -92,11 +128,26 @@ func (m *MockZoneServiceIface) DedicateZone(p *DedicateZoneParams) (*DedicateZon } // DedicateZone indicates an expected call of DedicateZone. -func (mr *MockZoneServiceIfaceMockRecorder) DedicateZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) DedicateZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DedicateZone", reflect.TypeOf((*MockZoneServiceIface)(nil).DedicateZone), p) } +// DeleteIpv4SubnetForZone mocks base method. +func (m *MockZoneServiceIface) DeleteIpv4SubnetForZone(p *DeleteIpv4SubnetForZoneParams) (*DeleteIpv4SubnetForZoneResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteIpv4SubnetForZone", p) + ret0, _ := ret[0].(*DeleteIpv4SubnetForZoneResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteIpv4SubnetForZone indicates an expected call of DeleteIpv4SubnetForZone. +func (mr *MockZoneServiceIfaceMockRecorder) DeleteIpv4SubnetForZone(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteIpv4SubnetForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).DeleteIpv4SubnetForZone), p) +} + // DeleteZone mocks base method. func (m *MockZoneServiceIface) DeleteZone(p *DeleteZoneParams) (*DeleteZoneResponse, error) { m.ctrl.T.Helper() @@ -107,7 +158,7 @@ func (m *MockZoneServiceIface) DeleteZone(p *DeleteZoneParams) (*DeleteZoneRespo } // DeleteZone indicates an expected call of DeleteZone. -func (mr *MockZoneServiceIfaceMockRecorder) DeleteZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) DeleteZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteZone", reflect.TypeOf((*MockZoneServiceIface)(nil).DeleteZone), p) } @@ -122,7 +173,7 @@ func (m *MockZoneServiceIface) DisableHAForZone(p *DisableHAForZoneParams) (*Dis } // DisableHAForZone indicates an expected call of DisableHAForZone. -func (mr *MockZoneServiceIfaceMockRecorder) DisableHAForZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) DisableHAForZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableHAForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).DisableHAForZone), p) } @@ -137,7 +188,7 @@ func (m *MockZoneServiceIface) DisableOutOfBandManagementForZone(p *DisableOutOf } // DisableOutOfBandManagementForZone indicates an expected call of DisableOutOfBandManagementForZone. -func (mr *MockZoneServiceIfaceMockRecorder) DisableOutOfBandManagementForZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) DisableOutOfBandManagementForZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisableOutOfBandManagementForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).DisableOutOfBandManagementForZone), p) } @@ -152,7 +203,7 @@ func (m *MockZoneServiceIface) EnableHAForZone(p *EnableHAForZoneParams) (*Enabl } // EnableHAForZone indicates an expected call of EnableHAForZone. -func (mr *MockZoneServiceIfaceMockRecorder) EnableHAForZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) EnableHAForZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableHAForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).EnableHAForZone), p) } @@ -167,15 +218,36 @@ func (m *MockZoneServiceIface) EnableOutOfBandManagementForZone(p *EnableOutOfBa } // EnableOutOfBandManagementForZone indicates an expected call of EnableOutOfBandManagementForZone. -func (mr *MockZoneServiceIfaceMockRecorder) EnableOutOfBandManagementForZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) EnableOutOfBandManagementForZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EnableOutOfBandManagementForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).EnableOutOfBandManagementForZone), p) } +// GetIpv4SubnetsForZoneByID mocks base method. +func (m *MockZoneServiceIface) GetIpv4SubnetsForZoneByID(id string, opts ...OptionFunc) (*Ipv4SubnetsForZone, int, error) { + m.ctrl.T.Helper() + varargs := []any{id} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetIpv4SubnetsForZoneByID", varargs...) + ret0, _ := ret[0].(*Ipv4SubnetsForZone) + ret1, _ := ret[1].(int) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetIpv4SubnetsForZoneByID indicates an expected call of GetIpv4SubnetsForZoneByID. +func (mr *MockZoneServiceIfaceMockRecorder) GetIpv4SubnetsForZoneByID(id any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{id}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIpv4SubnetsForZoneByID", reflect.TypeOf((*MockZoneServiceIface)(nil).GetIpv4SubnetsForZoneByID), varargs...) +} + // GetVmwareDcID mocks base method. func (m *MockZoneServiceIface) GetVmwareDcID(keyword, zoneid string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{keyword, zoneid} + varargs := []any{keyword, zoneid} for _, a := range opts { varargs = append(varargs, a) } @@ -187,16 +259,16 @@ func (m *MockZoneServiceIface) GetVmwareDcID(keyword, zoneid string, opts ...Opt } // GetVmwareDcID indicates an expected call of GetVmwareDcID. -func (mr *MockZoneServiceIfaceMockRecorder) GetVmwareDcID(keyword, zoneid interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetVmwareDcID(keyword, zoneid any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{keyword, zoneid}, opts...) + varargs := append([]any{keyword, zoneid}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVmwareDcID", reflect.TypeOf((*MockZoneServiceIface)(nil).GetVmwareDcID), varargs...) } // GetZoneByID mocks base method. func (m *MockZoneServiceIface) GetZoneByID(id string, opts ...OptionFunc) (*Zone, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -208,16 +280,16 @@ func (m *MockZoneServiceIface) GetZoneByID(id string, opts ...OptionFunc) (*Zone } // GetZoneByID indicates an expected call of GetZoneByID. -func (mr *MockZoneServiceIfaceMockRecorder) GetZoneByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetZoneByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetZoneByID", reflect.TypeOf((*MockZoneServiceIface)(nil).GetZoneByID), varargs...) } // GetZoneByName mocks base method. func (m *MockZoneServiceIface) GetZoneByName(name string, opts ...OptionFunc) (*Zone, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -229,16 +301,16 @@ func (m *MockZoneServiceIface) GetZoneByName(name string, opts ...OptionFunc) (* } // GetZoneByName indicates an expected call of GetZoneByName. -func (mr *MockZoneServiceIfaceMockRecorder) GetZoneByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetZoneByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetZoneByName", reflect.TypeOf((*MockZoneServiceIface)(nil).GetZoneByName), varargs...) } // GetZoneID mocks base method. func (m *MockZoneServiceIface) GetZoneID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -250,16 +322,16 @@ func (m *MockZoneServiceIface) GetZoneID(name string, opts ...OptionFunc) (strin } // GetZoneID indicates an expected call of GetZoneID. -func (mr *MockZoneServiceIfaceMockRecorder) GetZoneID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetZoneID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetZoneID", reflect.TypeOf((*MockZoneServiceIface)(nil).GetZoneID), varargs...) } // GetZonesMetricByID mocks base method. func (m *MockZoneServiceIface) GetZonesMetricByID(id string, opts ...OptionFunc) (*ZonesMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{id} + varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } @@ -271,16 +343,16 @@ func (m *MockZoneServiceIface) GetZonesMetricByID(id string, opts ...OptionFunc) } // GetZonesMetricByID indicates an expected call of GetZonesMetricByID. -func (mr *MockZoneServiceIfaceMockRecorder) GetZonesMetricByID(id interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetZonesMetricByID(id any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{id}, opts...) + varargs := append([]any{id}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetZonesMetricByID", reflect.TypeOf((*MockZoneServiceIface)(nil).GetZonesMetricByID), varargs...) } // GetZonesMetricByName mocks base method. func (m *MockZoneServiceIface) GetZonesMetricByName(name string, opts ...OptionFunc) (*ZonesMetric, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -292,16 +364,16 @@ func (m *MockZoneServiceIface) GetZonesMetricByName(name string, opts ...OptionF } // GetZonesMetricByName indicates an expected call of GetZonesMetricByName. -func (mr *MockZoneServiceIfaceMockRecorder) GetZonesMetricByName(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetZonesMetricByName(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetZonesMetricByName", reflect.TypeOf((*MockZoneServiceIface)(nil).GetZonesMetricByName), varargs...) } // GetZonesMetricID mocks base method. func (m *MockZoneServiceIface) GetZonesMetricID(name string, opts ...OptionFunc) (string, int, error) { m.ctrl.T.Helper() - varargs := []interface{}{name} + varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } @@ -313,9 +385,9 @@ func (m *MockZoneServiceIface) GetZonesMetricID(name string, opts ...OptionFunc) } // GetZonesMetricID indicates an expected call of GetZonesMetricID. -func (mr *MockZoneServiceIfaceMockRecorder) GetZonesMetricID(name interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) GetZonesMetricID(name any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{name}, opts...) + varargs := append([]any{name}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetZonesMetricID", reflect.TypeOf((*MockZoneServiceIface)(nil).GetZonesMetricID), varargs...) } @@ -329,11 +401,26 @@ func (m *MockZoneServiceIface) ListDedicatedZones(p *ListDedicatedZonesParams) ( } // ListDedicatedZones indicates an expected call of ListDedicatedZones. -func (mr *MockZoneServiceIfaceMockRecorder) ListDedicatedZones(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) ListDedicatedZones(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDedicatedZones", reflect.TypeOf((*MockZoneServiceIface)(nil).ListDedicatedZones), p) } +// ListIpv4SubnetsForZone mocks base method. +func (m *MockZoneServiceIface) ListIpv4SubnetsForZone(p *ListIpv4SubnetsForZoneParams) (*ListIpv4SubnetsForZoneResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListIpv4SubnetsForZone", p) + ret0, _ := ret[0].(*ListIpv4SubnetsForZoneResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListIpv4SubnetsForZone indicates an expected call of ListIpv4SubnetsForZone. +func (mr *MockZoneServiceIfaceMockRecorder) ListIpv4SubnetsForZone(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIpv4SubnetsForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).ListIpv4SubnetsForZone), p) +} + // ListVmwareDcVms mocks base method. func (m *MockZoneServiceIface) ListVmwareDcVms(p *ListVmwareDcVmsParams) (*ListVmwareDcVmsResponse, error) { m.ctrl.T.Helper() @@ -344,7 +431,7 @@ func (m *MockZoneServiceIface) ListVmwareDcVms(p *ListVmwareDcVmsParams) (*ListV } // ListVmwareDcVms indicates an expected call of ListVmwareDcVms. -func (mr *MockZoneServiceIfaceMockRecorder) ListVmwareDcVms(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) ListVmwareDcVms(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVmwareDcVms", reflect.TypeOf((*MockZoneServiceIface)(nil).ListVmwareDcVms), p) } @@ -359,7 +446,7 @@ func (m *MockZoneServiceIface) ListVmwareDcs(p *ListVmwareDcsParams) (*ListVmwar } // ListVmwareDcs indicates an expected call of ListVmwareDcs. -func (mr *MockZoneServiceIfaceMockRecorder) ListVmwareDcs(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) ListVmwareDcs(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVmwareDcs", reflect.TypeOf((*MockZoneServiceIface)(nil).ListVmwareDcs), p) } @@ -374,7 +461,7 @@ func (m *MockZoneServiceIface) ListZones(p *ListZonesParams) (*ListZonesResponse } // ListZones indicates an expected call of ListZones. -func (mr *MockZoneServiceIfaceMockRecorder) ListZones(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) ListZones(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListZones", reflect.TypeOf((*MockZoneServiceIface)(nil).ListZones), p) } @@ -389,7 +476,7 @@ func (m *MockZoneServiceIface) ListZonesMetrics(p *ListZonesMetricsParams) (*Lis } // ListZonesMetrics indicates an expected call of ListZonesMetrics. -func (mr *MockZoneServiceIfaceMockRecorder) ListZonesMetrics(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) ListZonesMetrics(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListZonesMetrics", reflect.TypeOf((*MockZoneServiceIface)(nil).ListZonesMetrics), p) } @@ -403,11 +490,25 @@ func (m *MockZoneServiceIface) NewAddVmwareDcParams(name, vcenter, zoneid string } // NewAddVmwareDcParams indicates an expected call of NewAddVmwareDcParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewAddVmwareDcParams(name, vcenter, zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewAddVmwareDcParams(name, vcenter, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewAddVmwareDcParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewAddVmwareDcParams), name, vcenter, zoneid) } +// NewCreateIpv4SubnetForZoneParams mocks base method. +func (m *MockZoneServiceIface) NewCreateIpv4SubnetForZoneParams(subnet, zoneid string) *CreateIpv4SubnetForZoneParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewCreateIpv4SubnetForZoneParams", subnet, zoneid) + ret0, _ := ret[0].(*CreateIpv4SubnetForZoneParams) + return ret0 +} + +// NewCreateIpv4SubnetForZoneParams indicates an expected call of NewCreateIpv4SubnetForZoneParams. +func (mr *MockZoneServiceIfaceMockRecorder) NewCreateIpv4SubnetForZoneParams(subnet, zoneid any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateIpv4SubnetForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewCreateIpv4SubnetForZoneParams), subnet, zoneid) +} + // NewCreateZoneParams mocks base method. func (m *MockZoneServiceIface) NewCreateZoneParams(dns1, internaldns1, name, networktype string) *CreateZoneParams { m.ctrl.T.Helper() @@ -417,11 +518,25 @@ func (m *MockZoneServiceIface) NewCreateZoneParams(dns1, internaldns1, name, net } // NewCreateZoneParams indicates an expected call of NewCreateZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewCreateZoneParams(dns1, internaldns1, name, networktype interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewCreateZoneParams(dns1, internaldns1, name, networktype any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewCreateZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewCreateZoneParams), dns1, internaldns1, name, networktype) } +// NewDedicateIpv4SubnetForZoneParams mocks base method. +func (m *MockZoneServiceIface) NewDedicateIpv4SubnetForZoneParams(id string) *DedicateIpv4SubnetForZoneParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDedicateIpv4SubnetForZoneParams", id) + ret0, _ := ret[0].(*DedicateIpv4SubnetForZoneParams) + return ret0 +} + +// NewDedicateIpv4SubnetForZoneParams indicates an expected call of NewDedicateIpv4SubnetForZoneParams. +func (mr *MockZoneServiceIfaceMockRecorder) NewDedicateIpv4SubnetForZoneParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicateIpv4SubnetForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewDedicateIpv4SubnetForZoneParams), id) +} + // NewDedicateZoneParams mocks base method. func (m *MockZoneServiceIface) NewDedicateZoneParams(domainid, zoneid string) *DedicateZoneParams { m.ctrl.T.Helper() @@ -431,11 +546,25 @@ func (m *MockZoneServiceIface) NewDedicateZoneParams(domainid, zoneid string) *D } // NewDedicateZoneParams indicates an expected call of NewDedicateZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewDedicateZoneParams(domainid, zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewDedicateZoneParams(domainid, zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDedicateZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewDedicateZoneParams), domainid, zoneid) } +// NewDeleteIpv4SubnetForZoneParams mocks base method. +func (m *MockZoneServiceIface) NewDeleteIpv4SubnetForZoneParams(id string) *DeleteIpv4SubnetForZoneParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewDeleteIpv4SubnetForZoneParams", id) + ret0, _ := ret[0].(*DeleteIpv4SubnetForZoneParams) + return ret0 +} + +// NewDeleteIpv4SubnetForZoneParams indicates an expected call of NewDeleteIpv4SubnetForZoneParams. +func (mr *MockZoneServiceIfaceMockRecorder) NewDeleteIpv4SubnetForZoneParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteIpv4SubnetForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewDeleteIpv4SubnetForZoneParams), id) +} + // NewDeleteZoneParams mocks base method. func (m *MockZoneServiceIface) NewDeleteZoneParams(id string) *DeleteZoneParams { m.ctrl.T.Helper() @@ -445,7 +574,7 @@ func (m *MockZoneServiceIface) NewDeleteZoneParams(id string) *DeleteZoneParams } // NewDeleteZoneParams indicates an expected call of NewDeleteZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewDeleteZoneParams(id interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewDeleteZoneParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDeleteZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewDeleteZoneParams), id) } @@ -459,7 +588,7 @@ func (m *MockZoneServiceIface) NewDisableHAForZoneParams(zoneid string) *Disable } // NewDisableHAForZoneParams indicates an expected call of NewDisableHAForZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewDisableHAForZoneParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewDisableHAForZoneParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableHAForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewDisableHAForZoneParams), zoneid) } @@ -473,7 +602,7 @@ func (m *MockZoneServiceIface) NewDisableOutOfBandManagementForZoneParams(zoneid } // NewDisableOutOfBandManagementForZoneParams indicates an expected call of NewDisableOutOfBandManagementForZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewDisableOutOfBandManagementForZoneParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewDisableOutOfBandManagementForZoneParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewDisableOutOfBandManagementForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewDisableOutOfBandManagementForZoneParams), zoneid) } @@ -487,7 +616,7 @@ func (m *MockZoneServiceIface) NewEnableHAForZoneParams(zoneid string) *EnableHA } // NewEnableHAForZoneParams indicates an expected call of NewEnableHAForZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewEnableHAForZoneParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewEnableHAForZoneParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableHAForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewEnableHAForZoneParams), zoneid) } @@ -501,7 +630,7 @@ func (m *MockZoneServiceIface) NewEnableOutOfBandManagementForZoneParams(zoneid } // NewEnableOutOfBandManagementForZoneParams indicates an expected call of NewEnableOutOfBandManagementForZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewEnableOutOfBandManagementForZoneParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewEnableOutOfBandManagementForZoneParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewEnableOutOfBandManagementForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewEnableOutOfBandManagementForZoneParams), zoneid) } @@ -520,6 +649,20 @@ func (mr *MockZoneServiceIfaceMockRecorder) NewListDedicatedZonesParams() *gomoc return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListDedicatedZonesParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewListDedicatedZonesParams)) } +// NewListIpv4SubnetsForZoneParams mocks base method. +func (m *MockZoneServiceIface) NewListIpv4SubnetsForZoneParams() *ListIpv4SubnetsForZoneParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewListIpv4SubnetsForZoneParams") + ret0, _ := ret[0].(*ListIpv4SubnetsForZoneParams) + return ret0 +} + +// NewListIpv4SubnetsForZoneParams indicates an expected call of NewListIpv4SubnetsForZoneParams. +func (mr *MockZoneServiceIfaceMockRecorder) NewListIpv4SubnetsForZoneParams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListIpv4SubnetsForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewListIpv4SubnetsForZoneParams)) +} + // NewListVmwareDcVmsParams mocks base method. func (m *MockZoneServiceIface) NewListVmwareDcVmsParams() *ListVmwareDcVmsParams { m.ctrl.T.Helper() @@ -543,7 +686,7 @@ func (m *MockZoneServiceIface) NewListVmwareDcsParams(zoneid string) *ListVmware } // NewListVmwareDcsParams indicates an expected call of NewListVmwareDcsParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewListVmwareDcsParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewListVmwareDcsParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewListVmwareDcsParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewListVmwareDcsParams), zoneid) } @@ -585,11 +728,25 @@ func (m *MockZoneServiceIface) NewReleaseDedicatedZoneParams(zoneid string) *Rel } // NewReleaseDedicatedZoneParams indicates an expected call of NewReleaseDedicatedZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewReleaseDedicatedZoneParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewReleaseDedicatedZoneParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseDedicatedZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewReleaseDedicatedZoneParams), zoneid) } +// NewReleaseIpv4SubnetForZoneParams mocks base method. +func (m *MockZoneServiceIface) NewReleaseIpv4SubnetForZoneParams(id string) *ReleaseIpv4SubnetForZoneParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewReleaseIpv4SubnetForZoneParams", id) + ret0, _ := ret[0].(*ReleaseIpv4SubnetForZoneParams) + return ret0 +} + +// NewReleaseIpv4SubnetForZoneParams indicates an expected call of NewReleaseIpv4SubnetForZoneParams. +func (mr *MockZoneServiceIfaceMockRecorder) NewReleaseIpv4SubnetForZoneParams(id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewReleaseIpv4SubnetForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewReleaseIpv4SubnetForZoneParams), id) +} + // NewRemoveVmwareDcParams mocks base method. func (m *MockZoneServiceIface) NewRemoveVmwareDcParams(zoneid string) *RemoveVmwareDcParams { m.ctrl.T.Helper() @@ -599,11 +756,25 @@ func (m *MockZoneServiceIface) NewRemoveVmwareDcParams(zoneid string) *RemoveVmw } // NewRemoveVmwareDcParams indicates an expected call of NewRemoveVmwareDcParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewRemoveVmwareDcParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewRemoveVmwareDcParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewRemoveVmwareDcParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewRemoveVmwareDcParams), zoneid) } +// NewUpdateIpv4SubnetForZoneParams mocks base method. +func (m *MockZoneServiceIface) NewUpdateIpv4SubnetForZoneParams(id, subnet string) *UpdateIpv4SubnetForZoneParams { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewUpdateIpv4SubnetForZoneParams", id, subnet) + ret0, _ := ret[0].(*UpdateIpv4SubnetForZoneParams) + return ret0 +} + +// NewUpdateIpv4SubnetForZoneParams indicates an expected call of NewUpdateIpv4SubnetForZoneParams. +func (mr *MockZoneServiceIfaceMockRecorder) NewUpdateIpv4SubnetForZoneParams(id, subnet any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateIpv4SubnetForZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewUpdateIpv4SubnetForZoneParams), id, subnet) +} + // NewUpdateVmwareDcParams mocks base method. func (m *MockZoneServiceIface) NewUpdateVmwareDcParams(zoneid string) *UpdateVmwareDcParams { m.ctrl.T.Helper() @@ -613,7 +784,7 @@ func (m *MockZoneServiceIface) NewUpdateVmwareDcParams(zoneid string) *UpdateVmw } // NewUpdateVmwareDcParams indicates an expected call of NewUpdateVmwareDcParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewUpdateVmwareDcParams(zoneid interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewUpdateVmwareDcParams(zoneid any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateVmwareDcParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewUpdateVmwareDcParams), zoneid) } @@ -627,7 +798,7 @@ func (m *MockZoneServiceIface) NewUpdateZoneParams(id string) *UpdateZoneParams } // NewUpdateZoneParams indicates an expected call of NewUpdateZoneParams. -func (mr *MockZoneServiceIfaceMockRecorder) NewUpdateZoneParams(id interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) NewUpdateZoneParams(id any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUpdateZoneParams", reflect.TypeOf((*MockZoneServiceIface)(nil).NewUpdateZoneParams), id) } @@ -642,11 +813,26 @@ func (m *MockZoneServiceIface) ReleaseDedicatedZone(p *ReleaseDedicatedZoneParam } // ReleaseDedicatedZone indicates an expected call of ReleaseDedicatedZone. -func (mr *MockZoneServiceIfaceMockRecorder) ReleaseDedicatedZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) ReleaseDedicatedZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseDedicatedZone", reflect.TypeOf((*MockZoneServiceIface)(nil).ReleaseDedicatedZone), p) } +// ReleaseIpv4SubnetForZone mocks base method. +func (m *MockZoneServiceIface) ReleaseIpv4SubnetForZone(p *ReleaseIpv4SubnetForZoneParams) (*ReleaseIpv4SubnetForZoneResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReleaseIpv4SubnetForZone", p) + ret0, _ := ret[0].(*ReleaseIpv4SubnetForZoneResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReleaseIpv4SubnetForZone indicates an expected call of ReleaseIpv4SubnetForZone. +func (mr *MockZoneServiceIfaceMockRecorder) ReleaseIpv4SubnetForZone(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseIpv4SubnetForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).ReleaseIpv4SubnetForZone), p) +} + // RemoveVmwareDc mocks base method. func (m *MockZoneServiceIface) RemoveVmwareDc(p *RemoveVmwareDcParams) (*RemoveVmwareDcResponse, error) { m.ctrl.T.Helper() @@ -657,11 +843,26 @@ func (m *MockZoneServiceIface) RemoveVmwareDc(p *RemoveVmwareDcParams) (*RemoveV } // RemoveVmwareDc indicates an expected call of RemoveVmwareDc. -func (mr *MockZoneServiceIfaceMockRecorder) RemoveVmwareDc(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) RemoveVmwareDc(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVmwareDc", reflect.TypeOf((*MockZoneServiceIface)(nil).RemoveVmwareDc), p) } +// UpdateIpv4SubnetForZone mocks base method. +func (m *MockZoneServiceIface) UpdateIpv4SubnetForZone(p *UpdateIpv4SubnetForZoneParams) (*UpdateIpv4SubnetForZoneResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateIpv4SubnetForZone", p) + ret0, _ := ret[0].(*UpdateIpv4SubnetForZoneResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateIpv4SubnetForZone indicates an expected call of UpdateIpv4SubnetForZone. +func (mr *MockZoneServiceIfaceMockRecorder) UpdateIpv4SubnetForZone(p any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIpv4SubnetForZone", reflect.TypeOf((*MockZoneServiceIface)(nil).UpdateIpv4SubnetForZone), p) +} + // UpdateVmwareDc mocks base method. func (m *MockZoneServiceIface) UpdateVmwareDc(p *UpdateVmwareDcParams) (*UpdateVmwareDcResponse, error) { m.ctrl.T.Helper() @@ -672,7 +873,7 @@ func (m *MockZoneServiceIface) UpdateVmwareDc(p *UpdateVmwareDcParams) (*UpdateV } // UpdateVmwareDc indicates an expected call of UpdateVmwareDc. -func (mr *MockZoneServiceIfaceMockRecorder) UpdateVmwareDc(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) UpdateVmwareDc(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVmwareDc", reflect.TypeOf((*MockZoneServiceIface)(nil).UpdateVmwareDc), p) } @@ -687,7 +888,7 @@ func (m *MockZoneServiceIface) UpdateZone(p *UpdateZoneParams) (*UpdateZoneRespo } // UpdateZone indicates an expected call of UpdateZone. -func (mr *MockZoneServiceIfaceMockRecorder) UpdateZone(p interface{}) *gomock.Call { +func (mr *MockZoneServiceIfaceMockRecorder) UpdateZone(p any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateZone", reflect.TypeOf((*MockZoneServiceIface)(nil).UpdateZone), p) } diff --git a/cloudstack/cloudstack.go b/cloudstack/cloudstack.go index 4b51101d..56fcfe09 100644 --- a/cloudstack/cloudstack.go +++ b/cloudstack/cloudstack.go @@ -39,7 +39,7 @@ import ( "strings" "time" - gomock "github.com/golang/mock/gomock" + "go.uber.org/mock/gomock" ) // UnlimitedResourceID is a special ID to define an unlimited resource @@ -99,85 +99,98 @@ type CloudStackClient struct { options []OptionFunc // A list of option functions to apply to all API calls timeout int64 // Max waiting timeout in seconds for async jobs to finish; defaults to 300 seconds - APIDiscovery APIDiscoveryServiceIface - Account AccountServiceIface - Address AddressServiceIface - AffinityGroup AffinityGroupServiceIface - Alert AlertServiceIface - Annotation AnnotationServiceIface - Asyncjob AsyncjobServiceIface - Authentication AuthenticationServiceIface - AutoScale AutoScaleServiceIface - Baremetal BaremetalServiceIface - BigSwitchBCF BigSwitchBCFServiceIface - BrocadeVCS BrocadeVCSServiceIface - Certificate CertificateServiceIface - CloudIdentifier CloudIdentifierServiceIface - Cluster ClusterServiceIface - Configuration ConfigurationServiceIface - ConsoleEndpoint ConsoleEndpointServiceIface - Custom CustomServiceIface - Diagnostics DiagnosticsServiceIface - DiskOffering DiskOfferingServiceIface - Domain DomainServiceIface - Event EventServiceIface - Firewall FirewallServiceIface - GuestOS GuestOSServiceIface - Host HostServiceIface - Hypervisor HypervisorServiceIface - ISO ISOServiceIface - ImageStore ImageStoreServiceIface - InfrastructureUsage InfrastructureUsageServiceIface - InternalLB InternalLBServiceIface - Kubernetes KubernetesServiceIface - LDAP LDAPServiceIface - Limit LimitServiceIface - LoadBalancer LoadBalancerServiceIface - Management ManagementServiceIface - Metrics MetricsServiceIface - NAT NATServiceIface - NetworkACL NetworkACLServiceIface - NetworkDevice NetworkDeviceServiceIface - NetworkOffering NetworkOfferingServiceIface - Network NetworkServiceIface - Nic NicServiceIface - NiciraNVP NiciraNVPServiceIface - Oauth OauthServiceIface - ObjectStore ObjectStoreServiceIface - OutofbandManagement OutofbandManagementServiceIface - OvsElement OvsElementServiceIface - Pod PodServiceIface - Pool PoolServiceIface - PortableIP PortableIPServiceIface - Project ProjectServiceIface - Quota QuotaServiceIface - Region RegionServiceIface - Registration RegistrationServiceIface - Resourcemetadata ResourcemetadataServiceIface - Resourcetags ResourcetagsServiceIface - Role RoleServiceIface - Router RouterServiceIface - SSH SSHServiceIface - SecurityGroup SecurityGroupServiceIface - ServiceOffering ServiceOfferingServiceIface - Shutdown ShutdownServiceIface - Snapshot SnapshotServiceIface - StoragePool StoragePoolServiceIface - StratosphereSSP StratosphereSSPServiceIface - Swift SwiftServiceIface - SystemCapacity SystemCapacityServiceIface - SystemVM SystemVMServiceIface - Template TemplateServiceIface - UCS UCSServiceIface - Usage UsageServiceIface - User UserServiceIface - VLAN VLANServiceIface - VMGroup VMGroupServiceIface - VPC VPCServiceIface - VPN VPNServiceIface - VirtualMachine VirtualMachineServiceIface - Volume VolumeServiceIface - Zone ZoneServiceIface + APIDiscovery APIDiscoveryServiceIface + ASNumberRange ASNumberRangeServiceIface + ASNumber ASNumberServiceIface + Account AccountServiceIface + Address AddressServiceIface + AffinityGroup AffinityGroupServiceIface + Alert AlertServiceIface + Annotation AnnotationServiceIface + Asyncjob AsyncjobServiceIface + Authentication AuthenticationServiceIface + AutoScale AutoScaleServiceIface + BGPPeer BGPPeerServiceIface + Baremetal BaremetalServiceIface + BigSwitchBCF BigSwitchBCFServiceIface + BrocadeVCS BrocadeVCSServiceIface + Certificate CertificateServiceIface + CloudIdentifier CloudIdentifierServiceIface + Cloudian CloudianServiceIface + Cluster ClusterServiceIface + Configuration ConfigurationServiceIface + ConsoleEndpoint ConsoleEndpointServiceIface + Custom CustomServiceIface + Diagnostics DiagnosticsServiceIface + DiskOffering DiskOfferingServiceIface + Domain DomainServiceIface + Event EventServiceIface + Firewall FirewallServiceIface + GuestOS GuestOSServiceIface + Host HostServiceIface + Hypervisor HypervisorServiceIface + IPQuarantine IPQuarantineServiceIface + ISO ISOServiceIface + ImageStore ImageStoreServiceIface + InfrastructureUsage InfrastructureUsageServiceIface + InternalLB InternalLBServiceIface + Kubernetes KubernetesServiceIface + LDAP LDAPServiceIface + Limit LimitServiceIface + LoadBalancer LoadBalancerServiceIface + Management ManagementServiceIface + Metrics MetricsServiceIface + Misc MiscServiceIface + NAT NATServiceIface + Netscaler NetscalerServiceIface + NetworkACL NetworkACLServiceIface + NetworkDevice NetworkDeviceServiceIface + NetworkOffering NetworkOfferingServiceIface + Network NetworkServiceIface + Nic NicServiceIface + NiciraNVP NiciraNVPServiceIface + Oauth OauthServiceIface + ObjectStore ObjectStoreServiceIface + OutofbandManagement OutofbandManagementServiceIface + OvsElement OvsElementServiceIface + Pod PodServiceIface + Pool PoolServiceIface + PortableIP PortableIPServiceIface + Project ProjectServiceIface + Quota QuotaServiceIface + Region RegionServiceIface + Registration RegistrationServiceIface + ResourceIcon ResourceIconServiceIface + Resource ResourceServiceIface + Resourcemetadata ResourcemetadataServiceIface + Resourcetags ResourcetagsServiceIface + Role RoleServiceIface + RollingMaintenance RollingMaintenanceServiceIface + Router RouterServiceIface + SSH SSHServiceIface + SecurityGroup SecurityGroupServiceIface + ServiceOffering ServiceOfferingServiceIface + SharedFileSystem SharedFileSystemServiceIface + Snapshot SnapshotServiceIface + SolidFire SolidFireServiceIface + StoragePool StoragePoolServiceIface + StratosphereSSP StratosphereSSPServiceIface + Swift SwiftServiceIface + SystemCapacity SystemCapacityServiceIface + SystemVM SystemVMServiceIface + Template TemplateServiceIface + UCS UCSServiceIface + Usage UsageServiceIface + User UserServiceIface + VLAN VLANServiceIface + VMGroup VMGroupServiceIface + VPC VPCServiceIface + VPN VPNServiceIface + VirtualMachine VirtualMachineServiceIface + VirtualNetworkFunctions VirtualNetworkFunctionsServiceIface + Volume VolumeServiceIface + Webhook WebhookServiceIface + Zone ZoneServiceIface } // Creates a new client for communicating with CloudStack @@ -214,6 +227,8 @@ func newClient(apiurl string, apikey string, secret string, async bool, verifyss } cs.APIDiscovery = NewAPIDiscoveryService(cs) + cs.ASNumberRange = NewASNumberRangeService(cs) + cs.ASNumber = NewASNumberService(cs) cs.Account = NewAccountService(cs) cs.Address = NewAddressService(cs) cs.AffinityGroup = NewAffinityGroupService(cs) @@ -222,11 +237,13 @@ func newClient(apiurl string, apikey string, secret string, async bool, verifyss cs.Asyncjob = NewAsyncjobService(cs) cs.Authentication = NewAuthenticationService(cs) cs.AutoScale = NewAutoScaleService(cs) + cs.BGPPeer = NewBGPPeerService(cs) cs.Baremetal = NewBaremetalService(cs) cs.BigSwitchBCF = NewBigSwitchBCFService(cs) cs.BrocadeVCS = NewBrocadeVCSService(cs) cs.Certificate = NewCertificateService(cs) cs.CloudIdentifier = NewCloudIdentifierService(cs) + cs.Cloudian = NewCloudianService(cs) cs.Cluster = NewClusterService(cs) cs.Configuration = NewConfigurationService(cs) cs.ConsoleEndpoint = NewConsoleEndpointService(cs) @@ -239,6 +256,7 @@ func newClient(apiurl string, apikey string, secret string, async bool, verifyss cs.GuestOS = NewGuestOSService(cs) cs.Host = NewHostService(cs) cs.Hypervisor = NewHypervisorService(cs) + cs.IPQuarantine = NewIPQuarantineService(cs) cs.ISO = NewISOService(cs) cs.ImageStore = NewImageStoreService(cs) cs.InfrastructureUsage = NewInfrastructureUsageService(cs) @@ -249,7 +267,9 @@ func newClient(apiurl string, apikey string, secret string, async bool, verifyss cs.LoadBalancer = NewLoadBalancerService(cs) cs.Management = NewManagementService(cs) cs.Metrics = NewMetricsService(cs) + cs.Misc = NewMiscService(cs) cs.NAT = NewNATService(cs) + cs.Netscaler = NewNetscalerService(cs) cs.NetworkACL = NewNetworkACLService(cs) cs.NetworkDevice = NewNetworkDeviceService(cs) cs.NetworkOffering = NewNetworkOfferingService(cs) @@ -267,15 +287,19 @@ func newClient(apiurl string, apikey string, secret string, async bool, verifyss cs.Quota = NewQuotaService(cs) cs.Region = NewRegionService(cs) cs.Registration = NewRegistrationService(cs) + cs.ResourceIcon = NewResourceIconService(cs) + cs.Resource = NewResourceService(cs) cs.Resourcemetadata = NewResourcemetadataService(cs) cs.Resourcetags = NewResourcetagsService(cs) cs.Role = NewRoleService(cs) + cs.RollingMaintenance = NewRollingMaintenanceService(cs) cs.Router = NewRouterService(cs) cs.SSH = NewSSHService(cs) cs.SecurityGroup = NewSecurityGroupService(cs) cs.ServiceOffering = NewServiceOfferingService(cs) - cs.Shutdown = NewShutdownService(cs) + cs.SharedFileSystem = NewSharedFileSystemService(cs) cs.Snapshot = NewSnapshotService(cs) + cs.SolidFire = NewSolidFireService(cs) cs.StoragePool = NewStoragePoolService(cs) cs.StratosphereSSP = NewStratosphereSSPService(cs) cs.Swift = NewSwiftService(cs) @@ -290,7 +314,9 @@ func newClient(apiurl string, apikey string, secret string, async bool, verifyss cs.VPC = NewVPCService(cs) cs.VPN = NewVPNService(cs) cs.VirtualMachine = NewVirtualMachineService(cs) + cs.VirtualNetworkFunctions = NewVirtualNetworkFunctionsService(cs) cs.Volume = NewVolumeService(cs) + cs.Webhook = NewWebhookService(cs) cs.Zone = NewZoneService(cs) return cs @@ -301,6 +327,8 @@ func newMockClient(ctrl *gomock.Controller) *CloudStackClient { cs := &CloudStackClient{} cs.APIDiscovery = NewMockAPIDiscoveryServiceIface(ctrl) + cs.ASNumberRange = NewMockASNumberRangeServiceIface(ctrl) + cs.ASNumber = NewMockASNumberServiceIface(ctrl) cs.Account = NewMockAccountServiceIface(ctrl) cs.Address = NewMockAddressServiceIface(ctrl) cs.AffinityGroup = NewMockAffinityGroupServiceIface(ctrl) @@ -309,11 +337,13 @@ func newMockClient(ctrl *gomock.Controller) *CloudStackClient { cs.Asyncjob = NewMockAsyncjobServiceIface(ctrl) cs.Authentication = NewMockAuthenticationServiceIface(ctrl) cs.AutoScale = NewMockAutoScaleServiceIface(ctrl) + cs.BGPPeer = NewMockBGPPeerServiceIface(ctrl) cs.Baremetal = NewMockBaremetalServiceIface(ctrl) cs.BigSwitchBCF = NewMockBigSwitchBCFServiceIface(ctrl) cs.BrocadeVCS = NewMockBrocadeVCSServiceIface(ctrl) cs.Certificate = NewMockCertificateServiceIface(ctrl) cs.CloudIdentifier = NewMockCloudIdentifierServiceIface(ctrl) + cs.Cloudian = NewMockCloudianServiceIface(ctrl) cs.Cluster = NewMockClusterServiceIface(ctrl) cs.Configuration = NewMockConfigurationServiceIface(ctrl) cs.ConsoleEndpoint = NewMockConsoleEndpointServiceIface(ctrl) @@ -326,6 +356,7 @@ func newMockClient(ctrl *gomock.Controller) *CloudStackClient { cs.GuestOS = NewMockGuestOSServiceIface(ctrl) cs.Host = NewMockHostServiceIface(ctrl) cs.Hypervisor = NewMockHypervisorServiceIface(ctrl) + cs.IPQuarantine = NewMockIPQuarantineServiceIface(ctrl) cs.ISO = NewMockISOServiceIface(ctrl) cs.ImageStore = NewMockImageStoreServiceIface(ctrl) cs.InfrastructureUsage = NewMockInfrastructureUsageServiceIface(ctrl) @@ -336,7 +367,9 @@ func newMockClient(ctrl *gomock.Controller) *CloudStackClient { cs.LoadBalancer = NewMockLoadBalancerServiceIface(ctrl) cs.Management = NewMockManagementServiceIface(ctrl) cs.Metrics = NewMockMetricsServiceIface(ctrl) + cs.Misc = NewMockMiscServiceIface(ctrl) cs.NAT = NewMockNATServiceIface(ctrl) + cs.Netscaler = NewMockNetscalerServiceIface(ctrl) cs.NetworkACL = NewMockNetworkACLServiceIface(ctrl) cs.NetworkDevice = NewMockNetworkDeviceServiceIface(ctrl) cs.NetworkOffering = NewMockNetworkOfferingServiceIface(ctrl) @@ -354,15 +387,19 @@ func newMockClient(ctrl *gomock.Controller) *CloudStackClient { cs.Quota = NewMockQuotaServiceIface(ctrl) cs.Region = NewMockRegionServiceIface(ctrl) cs.Registration = NewMockRegistrationServiceIface(ctrl) + cs.ResourceIcon = NewMockResourceIconServiceIface(ctrl) + cs.Resource = NewMockResourceServiceIface(ctrl) cs.Resourcemetadata = NewMockResourcemetadataServiceIface(ctrl) cs.Resourcetags = NewMockResourcetagsServiceIface(ctrl) cs.Role = NewMockRoleServiceIface(ctrl) + cs.RollingMaintenance = NewMockRollingMaintenanceServiceIface(ctrl) cs.Router = NewMockRouterServiceIface(ctrl) cs.SSH = NewMockSSHServiceIface(ctrl) cs.SecurityGroup = NewMockSecurityGroupServiceIface(ctrl) cs.ServiceOffering = NewMockServiceOfferingServiceIface(ctrl) - cs.Shutdown = NewMockShutdownServiceIface(ctrl) + cs.SharedFileSystem = NewMockSharedFileSystemServiceIface(ctrl) cs.Snapshot = NewMockSnapshotServiceIface(ctrl) + cs.SolidFire = NewMockSolidFireServiceIface(ctrl) cs.StoragePool = NewMockStoragePoolServiceIface(ctrl) cs.StratosphereSSP = NewMockStratosphereSSPServiceIface(ctrl) cs.Swift = NewMockSwiftServiceIface(ctrl) @@ -377,7 +414,9 @@ func newMockClient(ctrl *gomock.Controller) *CloudStackClient { cs.VPC = NewMockVPCServiceIface(ctrl) cs.VPN = NewMockVPNServiceIface(ctrl) cs.VirtualMachine = NewMockVirtualMachineServiceIface(ctrl) + cs.VirtualNetworkFunctions = NewMockVirtualNetworkFunctionsServiceIface(ctrl) cs.Volume = NewMockVolumeServiceIface(ctrl) + cs.Webhook = NewMockWebhookServiceIface(ctrl) cs.Zone = NewMockZoneServiceIface(ctrl) return cs @@ -771,6 +810,22 @@ func NewAPIDiscoveryService(cs *CloudStackClient) APIDiscoveryServiceIface { return &APIDiscoveryService{cs: cs} } +type ASNumberRangeService struct { + cs *CloudStackClient +} + +func NewASNumberRangeService(cs *CloudStackClient) ASNumberRangeServiceIface { + return &ASNumberRangeService{cs: cs} +} + +type ASNumberService struct { + cs *CloudStackClient +} + +func NewASNumberService(cs *CloudStackClient) ASNumberServiceIface { + return &ASNumberService{cs: cs} +} + type AccountService struct { cs *CloudStackClient } @@ -835,6 +890,14 @@ func NewAutoScaleService(cs *CloudStackClient) AutoScaleServiceIface { return &AutoScaleService{cs: cs} } +type BGPPeerService struct { + cs *CloudStackClient +} + +func NewBGPPeerService(cs *CloudStackClient) BGPPeerServiceIface { + return &BGPPeerService{cs: cs} +} + type BaremetalService struct { cs *CloudStackClient } @@ -875,6 +938,14 @@ func NewCloudIdentifierService(cs *CloudStackClient) CloudIdentifierServiceIface return &CloudIdentifierService{cs: cs} } +type CloudianService struct { + cs *CloudStackClient +} + +func NewCloudianService(cs *CloudStackClient) CloudianServiceIface { + return &CloudianService{cs: cs} +} + type ClusterService struct { cs *CloudStackClient } @@ -971,6 +1042,14 @@ func NewHypervisorService(cs *CloudStackClient) HypervisorServiceIface { return &HypervisorService{cs: cs} } +type IPQuarantineService struct { + cs *CloudStackClient +} + +func NewIPQuarantineService(cs *CloudStackClient) IPQuarantineServiceIface { + return &IPQuarantineService{cs: cs} +} + type ISOService struct { cs *CloudStackClient } @@ -1051,6 +1130,14 @@ func NewMetricsService(cs *CloudStackClient) MetricsServiceIface { return &MetricsService{cs: cs} } +type MiscService struct { + cs *CloudStackClient +} + +func NewMiscService(cs *CloudStackClient) MiscServiceIface { + return &MiscService{cs: cs} +} + type NATService struct { cs *CloudStackClient } @@ -1059,6 +1146,14 @@ func NewNATService(cs *CloudStackClient) NATServiceIface { return &NATService{cs: cs} } +type NetscalerService struct { + cs *CloudStackClient +} + +func NewNetscalerService(cs *CloudStackClient) NetscalerServiceIface { + return &NetscalerService{cs: cs} +} + type NetworkACLService struct { cs *CloudStackClient } @@ -1195,6 +1290,22 @@ func NewRegistrationService(cs *CloudStackClient) RegistrationServiceIface { return &RegistrationService{cs: cs} } +type ResourceIconService struct { + cs *CloudStackClient +} + +func NewResourceIconService(cs *CloudStackClient) ResourceIconServiceIface { + return &ResourceIconService{cs: cs} +} + +type ResourceService struct { + cs *CloudStackClient +} + +func NewResourceService(cs *CloudStackClient) ResourceServiceIface { + return &ResourceService{cs: cs} +} + type ResourcemetadataService struct { cs *CloudStackClient } @@ -1219,6 +1330,14 @@ func NewRoleService(cs *CloudStackClient) RoleServiceIface { return &RoleService{cs: cs} } +type RollingMaintenanceService struct { + cs *CloudStackClient +} + +func NewRollingMaintenanceService(cs *CloudStackClient) RollingMaintenanceServiceIface { + return &RollingMaintenanceService{cs: cs} +} + type RouterService struct { cs *CloudStackClient } @@ -1251,12 +1370,12 @@ func NewServiceOfferingService(cs *CloudStackClient) ServiceOfferingServiceIface return &ServiceOfferingService{cs: cs} } -type ShutdownService struct { +type SharedFileSystemService struct { cs *CloudStackClient } -func NewShutdownService(cs *CloudStackClient) ShutdownServiceIface { - return &ShutdownService{cs: cs} +func NewSharedFileSystemService(cs *CloudStackClient) SharedFileSystemServiceIface { + return &SharedFileSystemService{cs: cs} } type SnapshotService struct { @@ -1267,6 +1386,14 @@ func NewSnapshotService(cs *CloudStackClient) SnapshotServiceIface { return &SnapshotService{cs: cs} } +type SolidFireService struct { + cs *CloudStackClient +} + +func NewSolidFireService(cs *CloudStackClient) SolidFireServiceIface { + return &SolidFireService{cs: cs} +} + type StoragePoolService struct { cs *CloudStackClient } @@ -1379,6 +1506,14 @@ func NewVirtualMachineService(cs *CloudStackClient) VirtualMachineServiceIface { return &VirtualMachineService{cs: cs} } +type VirtualNetworkFunctionsService struct { + cs *CloudStackClient +} + +func NewVirtualNetworkFunctionsService(cs *CloudStackClient) VirtualNetworkFunctionsServiceIface { + return &VirtualNetworkFunctionsService{cs: cs} +} + type VolumeService struct { cs *CloudStackClient } @@ -1387,6 +1522,14 @@ func NewVolumeService(cs *CloudStackClient) VolumeServiceIface { return &VolumeService{cs: cs} } +type WebhookService struct { + cs *CloudStackClient +} + +func NewWebhookService(cs *CloudStackClient) WebhookServiceIface { + return &WebhookService{cs: cs} +} + type ZoneService struct { cs *CloudStackClient } diff --git a/examples/mock_test.go b/examples/mock_test.go index b965c3ad..da50adb3 100644 --- a/examples/mock_test.go +++ b/examples/mock_test.go @@ -23,7 +23,7 @@ import ( "testing" "github.com/apache/cloudstack-go/v2/cloudstack" - "github.com/golang/mock/gomock" + "go.uber.org/mock/gomock" ) func Test_Mock(t *testing.T) { diff --git a/generate/layout.go b/generate/layout.go index 518276ea..d399ba93 100644 --- a/generate/layout.go +++ b/generate/layout.go @@ -20,12 +20,19 @@ package main var layout = apiInfo{ + "BGPPeerService": { + "changeBgpPeersForVpc", + "createBgpPeer", + "dedicateBgpPeer", + "deleteBgpPeer", + "listBgpPeers", + "releaseBgpPeer", + "updateBgpPeer", + }, "LoadBalancerService": { - "addNetscalerLoadBalancer", "assignCertToLoadBalancer", "assignToGlobalLoadBalancerRule", "assignToLoadBalancerRule", - "configureNetscalerLoadBalancer", "createGlobalLoadBalancerRule", "createLBHealthCheckPolicy", "createLBStickinessPolicy", @@ -36,19 +43,21 @@ var layout = apiInfo{ "deleteLBStickinessPolicy", "deleteLoadBalancer", "deleteLoadBalancerRule", - "deleteNetscalerLoadBalancer", + "deleteServicePackageOffering", "deleteSslCert", + "deployNetscalerVpx", "listGlobalLoadBalancerRules", "listLBHealthCheckPolicies", "listLBStickinessPolicies", "listLoadBalancerRuleInstances", "listLoadBalancerRules", "listLoadBalancers", - "listNetscalerLoadBalancers", + "listRegisteredServicePackages", "listSslCerts", "removeCertFromLoadBalancer", "removeFromGlobalLoadBalancerRule", "removeFromLoadBalancerRule", + "stopNetScalerVpx", "updateGlobalLoadBalancerRule", "updateLBHealthCheckPolicy", "updateLBStickinessPolicy", @@ -59,18 +68,22 @@ var layout = apiInfo{ "NetworkService": { "addNetworkServiceProvider", "addOpenDaylightController", + "changeBgpPeersForNetwork", + "createIpv4SubnetForGuestNetwork", "createNetwork", "createPhysicalNetwork", "createServiceInstance", "createStorageNetworkIpRange", "dedicatePublicIpRange", + "deleteIpv4SubnetForGuestNetwork", "deleteNetwork", "deleteNetworkServiceProvider", "deleteOpenDaylightController", "deletePhysicalNetwork", "deleteStorageNetworkIpRange", - "listNetscalerLoadBalancerNetworks", + "listIpv4SubnetsForGuestNetwork", "listNetworkIsolationMethods", + "listNetworkProtocols", "listNetworkServiceProviders", "listNetworks", "listNiciraNvpDeviceNetworks", @@ -79,6 +92,7 @@ var layout = apiInfo{ "listPhysicalNetworks", "listStorageNetworkIpRange", "listSupportedNetworkServices", + "migrateNetwork", "releasePublicIpRange", "restartNetwork", "updateNetwork", @@ -104,12 +118,14 @@ var layout = apiInfo{ "getVMPassword", "listVirtualMachines", "listVirtualMachinesMetrics", + "listVmsForImport", "migrateVirtualMachine", "migrateVirtualMachineWithVolume", "rebootVirtualMachine", "recoverVirtualMachine", "removeNicFromVirtualMachine", "resetPasswordForVirtualMachine", + "resetUserDataForVirtualMachine", "restoreVirtualMachine", "scaleVirtualMachine", "startVirtualMachine", @@ -154,14 +170,17 @@ var layout = apiInfo{ "createEgressFirewallRule", "createFirewallRule", "createPortForwardingRule", + "createRoutingFirewallRule", "deleteEgressFirewallRule", "deleteFirewallRule", "deletePaloAltoFirewall", "deletePortForwardingRule", + "deleteRoutingFirewallRule", "listEgressFirewallRules", "listFirewallRules", "listPaloAltoFirewalls", "listPortForwardingRules", + "listRoutingFirewallRules", "updateEgressFirewallRule", "updateFirewallRule", "updatePortForwardingRule", @@ -169,6 +188,7 @@ var layout = apiInfo{ "createIpv6FirewallRule", "updateIpv6FirewallRule", "deleteIpv6FirewallRule", + "updateRoutingFirewallRule", }, "AutoScaleService": { "createAutoScalePolicy", @@ -191,6 +211,7 @@ var layout = apiInfo{ "updateAutoScalePolicy", "updateAutoScaleVmGroup", "updateAutoScaleVmProfile", + "updateCondition", }, "HostService": { "addBaremetalHost", @@ -202,6 +223,7 @@ var layout = apiInfo{ "enableHAForHost", "dedicateHost", "deleteHost", + "disableHAForHost", "disableOutOfBandManagementForHost", "enableOutOfBandManagementForHost", "findHostsForMigration", @@ -227,23 +249,27 @@ var layout = apiInfo{ }, "VolumeService": { "attachVolume", + "changeOfferingForVolume", + "checkVolume", "createVolume", "deleteVolume", "destroyVolume", "detachVolume", "extractVolume", "getPathForVolume", - "getSolidFireVolumeSize", "getUploadParamsForVolume", "getVolumeiScsiName", + "importVolume", + "listElastistorVolume", "listVolumes", + "listVolumesForImport", "listVolumesMetrics", "migrateVolume", "recoverVolume", "resizeVolume", + "unmanageVolume", "updateVolume", "uploadVolume", - "changeOfferingForVolume", "listVolumesUsageHistory", "assignVolume", }, @@ -260,6 +286,7 @@ var layout = apiInfo{ "listStaticRoutes", "listVPCOfferings", "listVPCs", + "migrateVPC", "restartVPC", "updateVPC", "updateVPCOffering", @@ -277,8 +304,6 @@ var layout = apiInfo{ "updateTemplate", "updateTemplatePermissions", "upgradeRouterTemplate", - "listTemplateDirectDownloadCertificates", - "provisionTemplateDirectDownloadCertificate", "linkUserDataToTemplate", }, "AccountService": { @@ -286,7 +311,8 @@ var layout = apiInfo{ "deleteAccount", "disableAccount", "enableAccount", - "getSolidFireAccountId", + "isAccountAllowedToCreateOfferingsWithTags", + "linkAccountToLdap", "listAccounts", "listProjectAccounts", "lockAccount", @@ -294,23 +320,29 @@ var layout = apiInfo{ "updateAccount", }, "ZoneService": { + "createIpv4SubnetForZone", "createZone", + "dedicateIpv4SubnetForZone", "dedicateZone", "deleteZone", + "deleteIpv4SubnetForZone", "disableOutOfBandManagementForZone", "enableOutOfBandManagementForZone", "disableHAForZone", "enableHAForZone", "listDedicatedZones", + "listIpv4SubnetsForZone", "listZones", "listZonesMetrics", "releaseDedicatedZone", + "releaseIpv4SubnetForZone", "updateZone", "listVmwareDcVms", "addVmwareDc", "listVmwareDcs", - "updateVmwareDc", "removeVmwareDc", + "updateIpv4SubnetForZone", + "updateVmwareDc", }, "UsageService": { "addTrafficMonitor", @@ -328,12 +360,16 @@ var layout = apiInfo{ "listUsageServerMetrics", }, "SnapshotService": { + "archiveSnapshot", + "copySnapshot", "createSnapshot", + "createSnapshotFromVMSnapshot", "createSnapshotPolicy", "createVMSnapshot", "deleteSnapshot", "deleteSnapshotPolicies", "deleteVMSnapshot", + "extractSnapshot", "listSnapshotPolicies", "listSnapshots", "listVMSnapshot", @@ -349,6 +385,7 @@ var layout = apiInfo{ "getUser", "getUserKeys", "getVirtualMachineUserData", + "listUserTwoFactorAuthenticatorProviders", "listUsers", "lockUser", "registerUserKeys", @@ -358,6 +395,8 @@ var layout = apiInfo{ "registerUserData", "moveUser", "setupUserTwoFactorAuthentication", + "validateUserTwoFactorAuthenticationCode", + "verifyOAuthCodeAndGetUser", }, "LDAPService": { "addLdapConfiguration", @@ -377,17 +416,24 @@ var layout = apiInfo{ "deleteIso", "detachIso", "extractIso", + "getUploadParamsForIso", "listIsoPermissions", "listIsos", "registerIso", "updateIso", "updateIsoPermissions", }, + "IPQuarantineService": { + "listQuarantinedIps", + "removeQuarantinedIp", + "updateQuarantinedIp", + }, "RouterService": { "changeServiceForRouter", "configureVirtualRouterElement", "createVirtualRouterElement", "destroyRouter", + "getRouterHealthCheckResults", "listRouters", "listVirtualRouterElements", "rebootRouter", @@ -420,6 +466,7 @@ var layout = apiInfo{ "createStoragePool", "deleteStoragePool", "findStoragePoolsForMigration", + "listElastistorPool", "listStoragePools", "syncStoragePool", "updateStoragePool", @@ -431,6 +478,7 @@ var layout = apiInfo{ "deleteNetworkACLList", "listNetworkACLLists", "listNetworkACLs", + "moveNetworkAclItem", "replaceNetworkACLList", "updateNetworkACLItem", "updateNetworkACLList", @@ -454,8 +502,11 @@ var layout = apiInfo{ "disableOutOfBandManagementForCluster", "enableOutOfBandManagementForCluster", "enableHAForCluster", + "executeClusterDrsPlan", + "generateClusterDrsPlan", "disableHAForCluster", "listClusters", + "listClusterDrsPlan", "listClustersMetrics", "listDedicatedClusters", "releaseDedicatedCluster", @@ -476,6 +527,7 @@ var layout = apiInfo{ "changeServiceForSystemVm", "destroySystemVm", "listSystemVms", + "listSystemVmsUsageHistory", "migrateSystemVm", "rebootSystemVm", "scaleSystemVm", @@ -488,6 +540,8 @@ var layout = apiInfo{ "createRolePermission", "deleteRole", "deleteRolePermission", + "disableRole", + "enableRole", "importRole", "listRolePermissions", "listRoles", @@ -503,6 +557,7 @@ var layout = apiInfo{ "deleteSecondaryStagingStore", "listImageStores", "listSecondaryStagingStores", + "migrateResourceToAnotherSecondaryStorage", "updateCloudToUseObjectStore", "listImageStoreObjects", "updateImageStore", @@ -511,6 +566,7 @@ var layout = apiInfo{ "AuthenticationService": { "login", "logout", + "oauthlogin", }, "SecurityGroupService": { "authorizeSecurityGroupEgress", @@ -520,13 +576,16 @@ var layout = apiInfo{ "listSecurityGroups", "revokeSecurityGroupEgress", "revokeSecurityGroupIngress", + "updateSecurityGroup", }, "QuotaService": { "quotaIsEnabled", }, "PodService": { + "createManagementNetworkIpRange", "createPod", "dedicatePod", + "deleteManagementNetworkIpRange", "deletePod", "listDedicatedPods", "listPods", @@ -586,6 +645,7 @@ var layout = apiInfo{ "deleteDomain", "listDomainChildren", "listDomains", + "moveDomain", "updateDomain", }, "AffinityGroupService": { @@ -615,6 +675,7 @@ var layout = apiInfo{ }, "ResourcemetadataService": { "addResourceDetail", + "listDetailOptions", "getVolumeSnapshotDetails", "listResourceDetails", "removeResourceDetail", @@ -651,6 +712,7 @@ var layout = apiInfo{ }, "ConfigurationService": { "listCapabilities", + "listConfigurationGroups", "listConfigurations", "listDeploymentPlanners", "updateConfiguration", @@ -668,17 +730,23 @@ var layout = apiInfo{ "deleteAlerts", "generateAlert", "listAlerts", + "listAlertTypes", }, "AddressService": { + "acquirePodIpAddress", "associateIpAddress", "disassociateIpAddress", "listPublicIpAddresses", "updateIpAddress", "releaseIpAddress", + "releasePodIpAddress", + "reserveIpAddress", }, "StoragePoolService": { "cancelStorageMaintenance", + "changeStoragePoolScope", "enableStorageMaintenance", + "listAffectedVmsForStorageScopeChange", "listStorageProviders", "listObjectStoragePools", "listStoragePoolObjects", @@ -740,9 +808,16 @@ var layout = apiInfo{ "getCloudIdentifier", }, "CertificateService": { - "uploadCustomCertificate", + "issueCertificate", "listCAProviders", + "listCaCertificate", + "listTemplateDirectDownloadCertificates", "provisionCertificate", + "provisionTemplateDirectDownloadCertificate", + "revokeCertificate", + "revokeTemplateDirectDownloadCertificate", + "uploadCustomCertificate", + "uploadTemplateDirectDownloadCertificate", }, "APIDiscoveryService": { "listApis", @@ -770,7 +845,6 @@ var layout = apiInfo{ "removeVirtualMachinesFromKubernetesCluster", }, "InfrastructureUsageService": { - "listManagementServersMetrics", "listDbMetrics", }, "ConsoleEndpointService": { @@ -790,16 +864,92 @@ var layout = apiInfo{ "RegistrationService": { "registerOauthProvider", }, - "ShutdownService": { - "readyForShutdown", - }, "DiagnosticsService": { "getDiagnosticsData", + "runDiagnostics", }, "MetricsService": { "listInfrastructure", }, + "ASNumberService": { + "listASNumbers", + "releaseASNumber", + }, + "ASNumberRangeService": { + "createASNRange", + "deleteASNRange", + "listASNRanges", + }, + "CloudianService": { + "cloudianIsEnabled", + }, "ManagementService": { + "cancelShutdown", "listManagementServers", + "listManagementServersMetrics", + "prepareForShutdown", + "readyForShutdown", + "triggerShutdown", + }, + "MiscService": { + "listElastistorInterface", + }, + "NetscalerService": { + "addNetscalerLoadBalancer", + "configureNetscalerLoadBalancer", + "deleteNetscalerControlCenter", + "deleteNetscalerLoadBalancer", + "listNetscalerControlCenter", + "listNetscalerLoadBalancerNetworks", + "listNetscalerLoadBalancers", + "registerNetscalerControlCenter", + "registerNetscalerServicePackage", + }, + "ResourceIconService": { + "deleteResourceIcon", + "listResourceIcon", + "uploadResourceIcon", + }, + "ResourceService": { + "purgeExpungedResources", + }, + "RollingMaintenanceService": { + "startRollingMaintenance", + }, + "SharedFileSystemService": { + "changeSharedFileSystemDiskOffering", + "changeSharedFileSystemServiceOffering", + "createSharedFileSystem", + "destroySharedFileSystem", + "expungeSharedFileSystem", + "listSharedFileSystemProviders", + "listSharedFileSystems", + "recoverSharedFileSystem", + "restartSharedFileSystem", + "startSharedFileSystem", + "stopSharedFileSystem", + "updateSharedFileSystem", + }, + "SolidFireService": { + "getSolidFireAccountId", + "getSolidFireVolumeAccessGroupIds", + "getSolidFireVolumeSize", + }, + "VirtualNetworkFunctionsService": { + "deleteVnfTemplate", + "deployVnfAppliance", + "listVnfAppliances", + "listVnfTemplates", + "registerVnfTemplate", + "updateVnfTemplate", + }, + "WebhookService": { + "createWebhook", + "deleteWebhook", + "deleteWebhookDelivery", + "executeWebhookDelivery", + "listWebhookDeliveries", + "listWebhooks", + "updateWebhook", }, } diff --git a/generate/listApis.json b/generate/listApis.json index 48b52664..90ae158d 100644 --- a/generate/listApis.json +++ b/generate/listApis.json @@ -1,18 +1,78 @@ { "api": [ + { + "description": "Lists the resource icon for the specified resource(s)", + "isasync": false, + "name": "listResourceIcon", + "params": [ + { + "description": "list of resources to upload the icon/image for", + "length": 255, + "name": "resourceids", + "required": true, + "type": "list" + }, + { + "description": "type of the resource", + "length": 255, + "name": "resourcetype", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "resourceobjecttype" + }, + {}, + { + "description": "base64 representation of resource icon", + "name": "base64image", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.16.0.0" + }, { "description": "Creates VPC offering", "isasync": true, "name": "createVPCOffering", "params": [ { - "description": "true if network offering is meant to be used for NSX, false otherwise.", + "description": "set to true if the offering is to be enabled during creation. Default is false", "length": 255, - "name": "fornsx", + "name": "enable", "required": false, - "since": "4.20.0", + "since": "4.16", "type": "boolean" }, + { + "description": "The internet protocol of the offering. Options are ipv4 and dualstack. Default is ipv4. dualstack will create an offering that supports both IPv4 and IPv6", + "length": 255, + "name": "internetprotocol", + "required": false, + "since": "4.17.0", + "type": "string" + }, { "description": "the ID of the service offering for the VPC router appliance", "length": 255, @@ -22,11 +82,12 @@ "type": "uuid" }, { - "description": "the display text of the vpc offering, defaults to the 'name'", + "description": "desired service capabilities as part of vpc offering", "length": 255, - "name": "displaytext", + "name": "servicecapabilitylist", "required": false, - "type": "string" + "since": "4.4", + "type": "map" }, { "description": "the ID of the containing domain(s), null for public offerings", @@ -37,181 +98,162 @@ "type": "list" }, { - "description": "The internet protocol of the offering. Options are ipv4 and dualstack. Default is ipv4. dualstack will create an offering that supports both IPv4 and IPv6", + "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": "internetprotocol", + "name": "serviceproviderlist", "required": false, - "since": "4.17.0", - "type": "string" + "type": "map" }, { - "description": "services supported by the vpc offering", + "description": "true if network offering for NSX VPC offering supports Load balancer service.", "length": 255, - "name": "supportedservices", + "name": "nsxsupportlb", "required": false, - "type": "list" + "since": "4.20.0", + "type": "boolean" }, { - "description": "the name of the vpc offering", + "description": "the routing mode for the VPC offering. Supported types are: Static or Dynamic.", "length": 255, - "name": "name", - "required": true, + "name": "routingmode", + "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "set to true if the offering is to be enabled during creation. Default is false", + "description": "Indicates the mode with which the network will operate. Valid option: NATTED or ROUTED", "length": 255, - "name": "enable", + "name": "networkmode", "required": false, - "since": "4.16", - "type": "boolean" + "since": "4.20.0", + "type": "string" }, { - "description": "the ID of the containing zone(s), null for public offerings", + "description": "services supported by the vpc offering", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "supportedservices", "required": false, - "since": "4.13", "type": "list" }, { - "description": "Indicates the mode with which the network will operate. Valid option: NATTED or ROUTED", + "description": "true if the VPC offering supports choosing AS number", "length": 255, - "name": "networkmode", + "name": "specifyasnumber", "required": false, "since": "4.20.0", - "type": "string" + "type": "boolean" }, { - "description": "the routing mode for the VPC offering. Supported types are: Static or Dynamic.", + "description": "the display text of the vpc offering, defaults to the 'name'", "length": 255, - "name": "routingmode", + "name": "displaytext", "required": false, - "since": "4.20.0", "type": "string" }, { - "description": "true if network offering for NSX VPC offering supports Load balancer service.", + "description": "the name of the vpc offering", "length": 255, - "name": "nsxsupportlb", - "required": false, - "since": "4.20.0", - "type": "boolean" + "name": "name", + "required": true, + "type": "string" }, { - "description": "true if the VPC offering supports choosing AS number", + "description": "true if network offering is meant to be used for NSX, false otherwise.", "length": 255, - "name": "specifyasnumber", + "name": "fornsx", "required": false, "since": "4.20.0", "type": "boolean" }, { - "description": "desired service capabilities as part of vpc offering", - "length": 255, - "name": "servicecapabilitylist", - "required": false, - "since": "4.4", - "type": "map" - }, - { - "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network", + "description": "the ID of the containing zone(s), null for public offerings", "length": 255, - "name": "serviceproviderlist", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "map" + "since": "4.13", + "type": "list" } ], "related": "updateVPCOffering,listVPCOfferings", "response": [ { - "description": "the routing mode for the network offering, supported types are Static or Dynamic.", - "name": "routingmode", + "description": "an alternate display text of the vpc offering.", + "name": "displaytext", "type": "string" }, - {}, - { - "description": "true if network offering supports choosing AS numbers", - "name": "specifyasnumber", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, { - "description": "an alternate display text of the vpc offering.", - "name": "displaytext", + "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zoneid", "type": "string" }, { - "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", - "name": "networkmode", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "true if vpc offering is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the routing mode for the network offering, supported types are Static or Dynamic.", + "name": "routingmode", + "type": "string" }, { - "description": "indicated if the offering can support region level vpc", - "name": "supportsregionLevelvpc", + "description": " indicates if the vpc offering supports distributed router for one-hop forwarding", + "name": "distributedvpcrouter", "type": "boolean" }, { - "description": "state of the vpc offering. Can be Disabled/Enabled", - "name": "state", + "description": "the id of the vpc offering", + "name": "id", "type": "string" }, - { - "description": "true if vpc offering can be used by NSX networks only", - "name": "fornsx", - "type": "boolean" - }, { "description": "the internet protocol of the vpc offering", "name": "internetprotocol", "type": "string" }, { - "description": "the name of the vpc offering", - "name": "name", + "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zone", "type": "string" }, { - "description": " indicates if the vpc offering supports distributed router for one-hop forwarding", - "name": "distributedvpcrouter", + "description": "true if vpc offering is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", - "type": "string" - }, - { - "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 current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "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 can be used by NSX networks only", + "name": "fornsx", + "type": "boolean" }, - {}, { - "description": "the id of the vpc offering", - "name": "id", - "type": "string" + "description": "true if network offering supports choosing AS numbers", + "name": "specifyasnumber", + "type": "boolean" }, { "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", "name": "domainid", "type": "string" }, + { + "description": "the date this vpc offering was created", + "name": "created", + "type": "date" + }, + { + "description": "indicated if the offering can support region level vpc", + "name": "supportsregionLevelvpc", + "type": "boolean" + }, { "description": "the list of supported services", "name": "service", @@ -222,22 +264,34 @@ "type": "string" }, { - "description": "the service provider name", - "name": "provider", + "description": "the list of capabilities", + "name": "capability", "response": [ { - "description": "the provider name", + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", "name": "name", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the capability value", + "name": "value", "type": "string" - }, + } + ], + "type": "list" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ { - "description": "uuid of the network provider", - "name": "id", + "description": "the provider name", + "name": "name", "type": "string" }, { @@ -245,11 +299,6 @@ "name": "destinationphysicalnetworkid", "type": "string" }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, { "description": "state of the network provider", "name": "state", @@ -259,27 +308,20 @@ "description": "services for this provider", "name": "servicelist", "type": "list" - } - ], - "type": "list" - }, - { - "description": "the list of capabilities", - "name": "capability", - "response": [ + }, { - "description": "the capability value", - "name": "value", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", "type": "boolean" }, { - "description": "the capability name", - "name": "name", + "description": "uuid of the network provider", + "name": "id", "type": "string" } ], @@ -289,416 +331,560 @@ "type": "list" }, { - "description": "the date this vpc offering was created", - "name": "created", - "type": "date" + "description": "state of the vpc offering. Can be Disabled/Enabled", + "name": "state", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" + }, + { + "description": "the name of the vpc offering", + "name": "name", + "type": "string" + }, + { + "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", + "name": "networkmode", + "type": "string" } ] }, { - "description": "Creates an account from an LDAP user", + "description": "Creates a new Pod.", "isasync": false, - "name": "ldapCreateAccount", + "name": "createPod", "params": [ { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", - "length": 255, - "name": "timezone", - "required": false, - "type": "string" - }, - { - "description": "Account UUID, required for adding account from external provisioning system", + "description": "the gateway for the Pod", "length": 255, - "name": "accountid", + "name": "gateway", "required": false, "type": "string" }, { - "description": "Creates the user under the specified domain.", + "description": "the Zone ID in which the Pod will be created", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, "type": "uuid" }, { - "description": "User UUID, required for adding account from external provisioning system", + "description": "the starting IP address for the Pod", "length": 255, - "name": "userid", + "name": "startip", "required": false, "type": "string" }, { - "description": "Unique username.", + "description": "the name of the Pod", "length": 255, - "name": "username", + "name": "name", "required": true, "type": "string" }, { - "description": "Network domain for the account's networks", + "description": "Allocation state of this Pod for allocation of new resources", "length": 255, - "name": "networkdomain", + "name": "allocationstate", "required": false, "type": "string" }, { - "description": "details for account used to store specific parameters", - "length": 255, - "name": "accountdetails", - "required": false, - "type": "map" - }, - { - "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.", + "description": "the netmask for the Pod", "length": 255, - "name": "account", + "name": "netmask", "required": false, "type": "string" }, { - "description": "Type of the account. Specify 0 for user, 1 for root admin, and 2 for domain admin", - "length": 255, - "name": "accounttype", - "required": false, - "type": "integer" - }, - { - "description": "Creates the account under the specified role.", + "description": "the ending IP address for the Pod", "length": 255, - "name": "roleid", - "related": "createRole,importRole,listRoles,updateRole", + "name": "endip", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "related": "listPods,updatePod,createManagementNetworkIpRange", "response": [ { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", + "description": "the ID of the Pod", + "name": "id", "type": "string" }, { - "description": "the list of acl groups that account belongs to", - "name": "groups", + "description": "the Zone ID of the Pod", + "name": "zoneid", + "type": "string" + }, + { + "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", + "name": "endip", "type": "list" }, { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" + "description": "the IP ranges for the Pod", + "name": "ipranges", + "response": [ + { + "description": "the starting IP for the range", + "name": "startip", + "type": "string" + }, + { + "description": "the CIDR for the range", + "name": "cidr", + "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": "indicates Vlan ID for the range", + "name": "vlanid", + "type": "string" + }, + { + "description": "the gateway for the range", + "name": "gateway", + "type": "string" + } + ], + "type": "list" }, { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", + "description": "the allocation state of the Pod", + "name": "allocationstate", "type": "string" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the state of the account", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", - "type": "boolean" + "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 account", - "name": "name", - "type": "string" + "description": "the capacity of the Pod", + "name": "capacity", + "response": [ + { + "description": "the Cluster ID", + "name": "clusterid", + "type": "string" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + }, + { + "description": "the Pod name", + "name": "podname", + "type": "string" + }, + { + "description": "the Cluster name", + "name": "clustername", + "type": "string" + }, + { + "description": "the Pod ID", + "name": "podid", + "type": "string" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + } + ], + "type": "list" }, + {}, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "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 ID of the role", - "name": "roleid", + "description": "the gateway of the Pod", + "name": "gateway", "type": "string" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", - "type": "integer" + "description": "the name of the Pod", + "name": "name", + "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "the netmask of the Pod", + "name": "netmask", + "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", + "description": "the Zone name of the Pod", + "name": "zonename", "type": "string" }, { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", + "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", + "name": "vlanid", + "type": "list" + } + ] + }, + { + "description": "Creates an account from an LDAP user", + "isasync": false, + "name": "ldapCreateAccount", + "params": [ + { + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "length": 255, + "name": "timezone", + "required": false, "type": "string" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "Creates the user under the specified domain.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "required": false, + "type": "uuid" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "Creates the account under the specified role.", + "length": 255, + "name": "roleid", + "related": "createRole,importRole,listRoles,updateRole", + "required": false, + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.", + "length": 255, + "name": "account", + "required": false, + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "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": "integer" }, { - "description": "the id of the account", - "name": "id", + "description": "Unique username.", + "length": 255, + "name": "username", + "required": true, "type": "string" }, - {}, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" + "description": "details for account used to store specific parameters", + "length": 255, + "name": "accountdetails", + "required": false, + "type": "map" }, { - "description": "the total volume available for this account", - "name": "volumeavailable", + "description": "Account UUID, required for adding account from external provisioning system", + "length": 255, + "name": "accountid", + "required": false, "type": "string" }, { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", - "type": "integer" + "description": "User UUID, required for adding account from external provisioning system", + "length": 255, + "name": "userid", + "required": false, + "type": "string" }, { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" - }, + "description": "Network domain for the account's networks", + "length": 255, + "name": "networkdomain", + "required": false, + "type": "string" + } + ], + "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "response": [ { "description": "the total number of projects available for administration by this account", "name": "projectavailable", "type": "string" }, { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" + "description": "the ID of the role", + "name": "roleid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of vpcs the account can own", + "name": "vpclimit", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" + "description": "details for the account", + "name": "accountdetails", + "type": "map" }, { - "description": "the name of the role", - "name": "rolename", + "description": "the id of the account", + "name": "id", "type": "string" }, { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" + "description": "name of the Domain the account belongs to", + "name": "domain", + "type": "string" }, { - "description": "the total number of networks the account can own", - "name": "networklimit", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" + "description": "the network domain", + "name": "networkdomain", + "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" + "description": "the total number of networks the account can own", + "name": "networklimit", + "type": "string" }, { - "description": "the date when this account was created", - "name": "created", - "type": "date" + "description": "the total volume which can be used by this account", + "name": "volumelimit", + "type": "string" }, { - "description": "details for the account", - "name": "accountdetails", - "type": "map" + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", + "type": "string" }, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", + "description": "the total number of vpcs owned by account", + "name": "vpctotal", "type": "long" }, { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", + "description": "the total volume being used by this account", + "name": "volumetotal", "type": "long" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" }, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", "type": "string" }, - {}, { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", + "description": "the total number of projects the account can own", + "name": "projectlimit", "type": "string" }, { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", - "type": "string" + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" }, { - "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 primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", "type": "string" }, { - "description": "path of the Domain the account belongs to", - "name": "domainpath", + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the default zone of the account", - "name": "defaultzoneid", - "type": "string" + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", - "type": "integer" + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", + "type": "string" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", - "type": "string" + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", + "type": "boolean" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", "type": "string" }, { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", - "type": "string" + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" }, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", - "type": "string" + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", - "type": "string" + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", + "type": "integer" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", "type": "string" }, { - "description": "id of the Domain the account belongs to", - "name": "domainid", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", - "type": "string" + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" }, { "description": "the list of users associated with account", "name": "user", "response": [ { - "description": "the account ID of the user", - "name": "accountid", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", "type": "boolean" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "the user name", - "name": "username", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "the user email address", - "name": "email", + "description": "the user firstname", + "name": "firstname", "type": "string" }, { @@ -707,68 +893,58 @@ "type": "string" }, { - "description": "the account name of the user", - "name": "account", + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "the domain name of the user", - "name": "domain", - "type": "string" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { "description": "the user state", "name": "state", "type": "string" }, - { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, { "description": "the source type of the user in lowercase, such as native, ldap, saml2", "name": "usersource", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the type of the role", + "name": "roletype", + "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", - "type": "string" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "the domain ID of the user", - "name": "domainid", - "type": "string" + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" + "description": "the api key of the user", + "name": "apikey", + "type": "string" }, { - "description": "the user firstname", - "name": "firstname", - "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", + "description": "the user name", + "name": "username", "type": "string" }, { @@ -777,233 +953,121 @@ "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the user ID", - "name": "id", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" + "description": "the account ID of the user", + "name": "accountid", + "type": "string" } ], "type": "list" }, { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", "type": "string" }, { - "description": "name of the Domain the account belongs to", - "name": "domain", - "type": "string" + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", + "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" - } - ], - "since": "4.2.0" - }, - { - "description": "Copies an iso from one zone to another.", - "isasync": true, - "name": "copyIso", - "params": [ - { - "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.", - "length": 255, - "name": "sourcezoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" }, { - "description": "Template ID.", - "length": 255, - "name": "id", - "related": "prepareTemplate,copyIso,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "the name of the account", + "name": "name", + "type": "string" }, { - "description": "ID of the zone the template is being copied to.", - "length": 255, - "name": "destzoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "id of the Domain the account belongs to", + "name": "domainid", + "type": "string" }, { - "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": "destzoneids", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "list" - } - ], - "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "response": [ + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" + }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "the total number of networks owned by account", + "name": "networktotal", + "type": "long" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", "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 current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "CPU Arch of the template", - "name": "arch", - "type": "string" + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", + "type": "long" }, { - "description": "the template name", - "name": "name", + "description": "the total volume available for this account", + "name": "volumeavailable", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", + "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" - }, - {}, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "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": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", "type": "string" }, - {}, { - "description": "the template display text", - "name": "displaytext", + "description": "the state of the account", + "name": "state", "type": "string" }, { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "the template ID", - "name": "id", + "description": "path of the Domain the account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, { @@ -1011,114 +1075,158 @@ "name": "icon", "type": "resourceiconresponse" }, + {}, { - "description": "the name of the domain to which the template belongs", - "name": "domain", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the project name of the template", - "name": "project", - "type": "string" + "description": "the date when this account was created", + "name": "created", + "type": "date" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", - "type": "string" + "description": "true if account is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, + {}, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "the default zone of the account", + "name": "defaultzoneid", "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", - "type": "string" + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ], + "since": "4.2.0" + }, + { + "description": "Safely removes raw records from cloud_usage table", + "isasync": false, + "name": "removeRawUsageRecords", + "params": [ { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", - "type": "string" - }, + "description": "Specify the number of days (greater than zero) to remove records that are older than those number of days from today. For example, specifying 10 would result in removing all the records created before 10 days from today", + "length": 255, + "name": "interval", + "required": true, + "type": "integer" + } + ], + "response": [ { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {} + ], + "since": "4.6.0" + }, + { + "description": "Copies an iso from one zone to another.", + "isasync": true, + "name": "copyIso", + "params": [ { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" + "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": "destzoneids", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "list" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" + "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.", + "length": 255, + "name": "sourcezoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", - "type": "string" + "description": "ID of the zone the template is being copied to.", + "length": 255, + "name": "destzoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "Template ID.", + "length": 255, + "name": "id", + "related": "prepareTemplate,copyIso,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" + } + ], + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ + { + "description": "the template display text", + "name": "displaytext", + "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 processor bit size", - "name": "bits", - "type": "int" + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "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": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "the ID of the OS type for this template.", + "name": "ostypeid", + "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", - "type": "string" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { @@ -1127,23 +1235,13 @@ "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - }, - { - "description": "the project id of the template", - "name": "projectid", - "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": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", + "name": "deployasis", "type": "boolean" }, { @@ -1151,25 +1249,20 @@ "name": "removed", "type": "date" }, - { - "description": "the size of the template", - "name": "size", - "type": "long" - }, { "description": "path of the Domain the template belongs to", "name": "domainpath", "type": "string" }, { - "description": "checksum of the template", - "name": "checksum", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { "description": "the account name to which the template belongs", @@ -1177,114 +1270,63 @@ "type": "string" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "the status of the template", - "name": "status", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Deletes a autoscale vm profile.", - "isasync": true, - "name": "deleteAutoScaleVmProfile", - "params": [ - { - "description": "the ID of the autoscale profile", - "length": 255, - "name": "id", - "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the project name of the template", + "name": "project", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, - {} - ] - }, - { - "description": "List storage pools compatible with a vSphere storage policy", - "isasync": false, - "name": "listVsphereStoragePolicyCompatiblePools", - "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "ID of the storage policy", - "length": 255, - "name": "policyid", - "related": "importVsphereStoragePolicies,listVsphereStoragePolicies", - "required": false, - "type": "uuid" - }, - { - "description": "ID of the zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "response": [ - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", "type": "boolean" }, { @@ -1293,404 +1335,469 @@ "type": "string" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, + {}, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "the ID of the storage pool", - "name": "id", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, - {}, { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "the status of the template", + "name": "status", "type": "string" }, + {}, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "the storage pool type", - "name": "type", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", + "description": "the size of the template", + "name": "size", "type": "long" }, { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" }, { - "description": "the name of the storage pool", - "name": "name", - "type": "string" - }, - { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" }, - {}, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the date and time the storage pool was created", + "description": "the date this template was created", "name": "created", "type": "date" }, { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", + "description": "the physical size of the template", + "name": "physicalsize", "type": "long" }, { - "description": "the Zone name of the storage pool", - "name": "zonename", - "type": "string" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "Storage provider for this pool", - "name": "provider", - "type": "string" + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" }, { - "description": "the storage pool path", - "name": "path", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the Pod name of the storage pool", - "name": "podname", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "the scope of the storage pool", - "name": "scope", - "type": "string" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" } ] }, { - "description": "Reboots a system VM.", + "description": "Issues and propagates client certificate on a connected host/agent using configured CA plugin", "isasync": true, - "name": "rebootSystemVm", + "name": "provisionCertificate", "params": [ { - "description": "The ID of the system virtual machine", + "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", "length": 255, - "name": "id", - "related": "destroySystemVm,listSystemVms,migrateSystemVm,rebootSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", - "required": true, - "type": "uuid" + "name": "provider", + "required": false, + "type": "string" }, { - "description": "Force reboot the system VM (System VM is Stopped and then Started)", + "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": "forced", + "name": "reconnect", "required": false, - "since": "4.16.0", "type": "boolean" + }, + { + "description": "The host/agent uuid to which the certificate has to be provisioned (issued and propagated)", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost", + "required": true, + "type": "uuid" } ], - "related": "destroySystemVm,listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", "response": [ { - "description": "the private netmask for the system VM", - "name": "privatenetmask", - "type": "string" - }, - { - "description": "the state of the system VM", - "name": "state", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the network domain for the system VM", - "name": "networkdomain", - "type": "string" - }, - { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" - }, - { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", - "type": "string" - }, - { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the system VM type", - "name": "systemvmtype", - "type": "string" - }, - { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "the private IP address for the system VM", - "name": "privateip", - "type": "string" - }, - { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" - }, - { - "description": "the template ID for the system VM", - "name": "templateid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the host ID for the system VM", - "name": "hostid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {} + ], + "since": "4.11.0" + }, + { + "description": "Deletes a autoscale vm profile.", + "isasync": true, + "name": "deleteAutoScaleVmProfile", + "params": [ { - "description": "guest vlan range", - "name": "guestvlan", - "type": "string" - }, + "description": "the ID of the autoscale profile", + "length": 255, + "name": "id", + "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "the agent state of the system VM", - "name": "agentstate", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, + {}, { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the public IP address for the system VM", - "name": "publicip", + "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": "the second DNS for the system VM", - "name": "dns2", - "type": "string" - }, + } + ] + }, + { + "description": "Lists VM metrics", + "isasync": false, + "name": "listVirtualMachinesMetrics", + "params": [ { - "description": "the Pod name for the system VM", - "name": "podname", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "required": false, + "type": "uuid" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "flag to display the resource icon for VMs", + "length": 255, + "name": "showicon", + "required": false, + "since": "4.16.0.0", + "type": "boolean" }, { - "description": "the public netmask for the system VM", - "name": "publicnetmask", - "type": "string" + "description": "list by network id", + "length": 255, + "name": "networkid", + "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", + "description": "the target hypervisor for the template", + "length": 255, + "name": "hypervisor", + "required": false, "type": "string" }, { - "description": "the hostname for the system VM", - "name": "hostname", + "description": "list vms by ssh keypair name", + "length": 255, + "name": "keypair", + "required": false, "type": "string" }, { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", - "type": "string" + "description": "Whether to return the VMs' user data or not. By default, user data will not be returned.", + "length": 255, + "name": "userdata", + "required": false, + "since": "4.18.0.0", + "type": "boolean" }, { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", - "type": "string" + "description": "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, - {}, { - "description": "the name of the system VM", - "name": "name", - "type": "string" + "description": "the ID of AutoScaling VM Group", + "length": 255, + "name": "autoscalevmgroupid", + "related": "createAutoScaleVmGroup,disableAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", + "required": false, + "since": "4.18.0", + "type": "uuid" }, { - "description": "the systemvm agent version", - "name": "version", - "type": "string" + "description": "makes the API's response contains only the resource count", + "length": 255, + "name": "retrieveonlyresourcecount", + "required": false, + "type": "boolean" }, { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" + "description": "list by the backup offering", + "length": 255, + "name": "backupofferingid", + "required": false, + "since": "4.17", + "type": "uuid" }, { - "description": "the ID of the system VM", - "name": "id", - "type": "string" + "description": "list vms by iso", + "length": 255, + "name": "isoid", + "required": false, + "type": "uuid" }, { - "description": "the gateway for the system VM", - "name": "gateway", - "type": "string" + "description": "the host ID", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost", + "required": false, + "type": "uuid" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the cluster ID", + "length": 255, + "name": "clusterid", + "related": "addCluster,listClusters,updateCluster", + "required": false, + "type": "uuid" }, { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" + "description": "the group ID", + "length": 255, + "name": "groupid", + "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup", + "required": false, + "type": "uuid" }, - {}, { - "description": "the date and time the system VM was created", - "name": "created", - "type": "date" + "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": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "the link local IP address for the system vm", - "name": "linklocalip", - "type": "string" - }, - { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "the template name for the system VM", - "name": "templatename", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the Pod ID for the system VM", - "name": "podid", - "type": "string" + "description": "the IDs of the virtual machines, mutually exclusive with id", + "length": 255, + "name": "ids", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "since": "4.4", + "type": "list" }, { - "description": "the first DNS for the system VM", - "name": "dns1", - "type": "string" + "description": "comma separated list of vm details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, backoff, iso, volume, min, affgrp]. When no parameters are passed, all the details are returned if list.vm.default.details.stats is true (default), otherwise when list.vm.default.details.stats is false the API response will exclude the stats details.", + "length": 255, + "name": "details", + "required": false, + "type": "list" }, { - "description": "the Zone name for the system VM", - "name": "zonename", + "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "flag to list vms created from VNF templates (as known as VNF appliances) or not; true if need to list VNF appliances, false otherwise.", + "length": 255, + "name": "isvnf", + "required": false, + "since": "4.19.0", "type": "boolean" - } - ] - }, - { - "description": "List dedicated zones.", - "isasync": false, - "name": "listDedicatedZones", - "params": [ + }, { - "description": "the ID of the Zone", + "description": "the availability zone ID", "length": 255, "name": "zoneid", "related": "createZone,updateZone,listZones,listZones", @@ -1698,39 +1805,47 @@ "type": "uuid" }, { - "description": "list dedicated zones by affinity group", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "affinitygroupid", - "related": "createAffinityGroup,listAffinityGroups", + "name": "tags", + "required": false, + "type": "map" + }, + { + "description": "the pod ID", + "length": 255, + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", "required": false, "type": "uuid" }, { - "description": "the name of the account associated with the zone. Must be used with domainId.", + "description": "the ID of the virtual machine", "length": 255, - "name": "account", + "name": "id", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "list by network type; true if need to list vms using Virtual Network, false otherwise", "length": 255, - "name": "pagesize", + "name": "forvirtualnetwork", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "page", + "name": "isrecursive", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "the ID of the domain associated with the zone", + "description": "list vms by vpc", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC,createVPC,listVPCs,updateVPC,migrateVPC", "required": false, "type": "uuid" }, @@ -1740,8740 +1855,2286 @@ "name": "keyword", "required": false, "type": "string" - } - ], - "related": "dedicateZone", - "response": [ - { - "description": "the Name of the Zone", - "name": "zonename", - "type": "string" }, - {}, { - "description": "the Dedication Affinity Group ID of the zone", - "name": "affinitygroupid", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the domain ID to which the Zone is dedicated", - "name": "domainid", - "type": "string" + "description": "Accumulates the VM metrics data instead of returning only the most recent data collected. The default behavior is set by the global configuration vm.stats.increment.metrics.", + "length": 255, + "name": "accumulate", + "required": false, + "since": "4.17.0", + "type": "boolean" }, - {}, { - "description": "the ID of the Zone", - "name": "zoneid", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "displayvm", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "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": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list by the service offering", + "length": 255, + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "required": false, + "since": "4.4", + "type": "uuid" }, { - "description": "the ID of the dedicated resource", - "name": "id", - "type": "string" + "description": "list vms by affinity group", + "length": 255, + "name": "affinitygroupid", + "related": "createAffinityGroup,listAffinityGroups", + "required": false, + "type": "uuid" }, { - "description": "the Account Id to which the Zone is dedicated", - "name": "accountid", - "type": "string" - } - ] - }, - { - "description": "Lists the pools of elastistor", - "isasync": false, - "name": "listElastistorPool", - "params": [ + "description": "list by the High Availability offering; true if filtering VMs with HA enabled; false for VMs with HA disabled", + "length": 255, + "name": "haenable", + "required": false, + "since": "4.15", + "type": "boolean" + }, { - "description": "the ID of the Pool", + "description": "the storage ID where vm's volumes belong to", "length": 255, - "name": "id", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", "required": false, - "type": "long" + "type": "uuid" + }, + { + "description": "list vms by template", + "length": 255, + "name": "templateid", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "type": "uuid" + }, + { + "description": "the security group ID", + "length": 255, + "name": "securitygroupid", + "related": "createSecurityGroup,listSecurityGroups,updateSecurityGroup", + "required": false, + "since": "4.15", + "type": "uuid" } ], - "related": "", + "related": "listVirtualMachinesMetrics", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" }, { - "description": "the current available space of the pool", - "name": "size", - "type": "long" + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "the ID of the storage pool", - "name": "id", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, - {}, { - "description": "the name of the storage pool", - "name": "name", + "description": "the total memory capacity in GiB", + "name": "memorytotal", "type": "string" }, { - "description": "available iops of the pool", - "name": "maxiops", - "type": "long" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "default gateway of the pool", - "name": "gateway", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "controller of the pool", - "name": "controllerid", - "type": "string" - } - ] - }, - { - "description": "Change the BGP peers for a network.", - "isasync": true, - "name": "changeBgpPeersForNetwork", - "params": [ + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + } + ], + "type": "set" + } + ], + "type": "set" + }, { - "description": "Ids of the Bgp Peer. If it is empty, all BGP peers will be unlinked.", - "length": 255, - "name": "bgppeerids", - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForNetwork,changeBgpPeersForVpc", - "required": false, - "type": "list" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, { - "description": "UUID of the network which the Bgp Peers are associated to.", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" - } - ], - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", - "response": [ + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" + }, { - "description": "date when this bgp peer was created.", - "name": "created", - "type": "date" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the project id of the bgp peer", - "name": "projectid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the project name of the bgp peer", - "name": "project", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, + {}, { - "description": "AS number of bgp peer", - "name": "asnumber", + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the account of the bgp peer", - "name": "account", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the domain ID of the bgp peer", - "name": "domainid", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the domain name of the bgp peer", - "name": "domain", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "password of bgp peer", - "name": "password", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" + "description": "network write in MiB", + "name": "networkwrite", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "id of the bgp peer", - "name": "id", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, - {} - ], - "since": "4.20.0" - }, - { - "description": "list Tungsten-Fabric LB health monitor", - "isasync": false, - "name": "listTungstenFabricLBHealthMonitor", - "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the ID of lb rule", - "length": 255, - "name": "lbruleid", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - } - ], - "related": "updateTungstenFabricLBHealthMonitor", - "response": [ + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" + }, { - "description": "the health monitor timeout", - "name": "timeout", - "type": "int" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, { - "description": "the health monitor UUID", - "name": "uuid", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the health monitor expected code", - "name": "expectedcode", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the health monitor interval", - "name": "interval", - "type": "int" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, - {}, { - "description": "the health monitor url path", - "name": "urlpath", + "description": "disk write in MiB", + "name": "diskwrite", "type": "string" }, { - "description": "the health monitor type", - "name": "type", - "type": "string" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the health monitor ID", - "name": "id", - "type": "long" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the health monitor http method", - "name": "httpmethod", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the health monitor retry", - "name": "retry", - "type": "int" - } - ] - }, - { - "description": "Deletes account from the project", - "isasync": true, - "name": "deleteAccountFromProject", - "params": [ + "description": "disk read in MiB", + "name": "diskread", + "type": "string" + }, { - "description": "name of the account to be removed from the project", - "length": 255, - "name": "account", - "required": true, + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "ID of the project to remove the account from", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", + "type": "string" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the total cpu capacity in Ghz", + "name": "cputotal", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "3.0.0" - }, - { - "description": "Updates the information about Guest OS", - "isasync": true, - "name": "updateGuestOs", - "params": [ + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, { - "description": "UUID of the Guest OS", - "length": 255, - "name": "id", - "related": "listOsTypes,addGuestOs,updateGuestOs", - "required": true, - "type": "uuid" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "Unique display name for Guest OS", - "length": 255, - "name": "osdisplayname", - "required": true, + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "Map of (key/value pairs)", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "whether this guest OS is available for end users", - "length": 255, - "name": "forDisplay", - "required": false, - "type": "boolean" - } - ], - "related": "listOsTypes,addGuestOs", - "response": [ - { - "description": "the name/description of the OS type", - "name": "description", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, - {}, - {}, { - "description": "the name of the OS category", - "name": "oscategoryname", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the ID of the OS category", - "name": "oscategoryid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "is the guest OS user defined", - "name": "isuserdefined", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "the name of the OS type", + "description": "the name of the virtual machine", "name": "name", "type": "string" }, { - "description": "is the guest OS visible for the users", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the ID of the OS type", - "name": "id", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" - } - ], - "since": "4.4.0" - }, - { - "description": "Lists all guest vlans", - "isasync": false, - "name": "listGuestVlans", - "params": [ + }, { - "description": "limits search results to allocated guest vlan. false by default.", - "length": 255, - "name": "allocatedonly", - "required": false, - "type": "boolean" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "list guest vlan by zone", - "length": 255, + "description": "the ID of the availability zone for the virtual machine", "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "list guest vlan by vnet", - "length": 255, - "name": "vnet", - "required": false, "type": "string" }, { - "description": "list guest vlan by physical network", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" + "description": "the password (if exists) of the virtual machine", + "name": "password", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "list guest vlan by id", - "length": 255, - "name": "id", - "required": false, + "description": "the total disk iops", + "name": "diskiopstotal", "type": "long" - } - ], - "related": "", - "response": [ + }, { - "description": "the project name of the guest VLAN range", + "description": "the project name of the vm", "name": "project", "type": "string" }, - {}, { - "description": "path of the domain to which the guest VLAN range belongs", - "name": "domainpath", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, + {}, + {}, { - "description": "the list of networks who use this guest VLAN", - "name": "network", - "type": "list" + "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", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the guest VLAN", - "name": "vlan", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the domain ID of the guest VLAN range", + "description": "the ID of the domain in which the virtual machine exists", "name": "domainid", "type": "string" }, - {}, { - "description": "the domain name of the guest VLAN range", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the allocation state of the guest VLAN", - "name": "allocationstate", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the zone ID of the guest VLAN range", - "name": "zoneid", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "true if the guest VLAN is dedicated to the account", - "name": "isdedicated", - "type": "boolean" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, { - "description": "the project id of the guest VLAN range", - "name": "projectid", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the zone name of the guest VLAN range", - "name": "zonename", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the guest VLAN id", - "name": "id", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "the physical network ID of the guest VLAN range", - "name": "physicalnetworkid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the physical network name of the guest VLAN range", - "name": "physicalnetworkname", - "type": "string" - }, - { - "description": "date the guest VLAN was taken", - "name": "taken", - "type": "date" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the account of the guest VLAN range", - "name": "account", - "type": "string" - } - ], - "since": "4.17.0" - }, - { - "description": "Updates resource limits for an account or domain.", - "isasync": false, - "name": "updateResourceLimit", - "params": [ - { - "description": " Maximum resource limit.", - "length": 255, - "name": "max", - "required": false, - "type": "long" - }, - { - "description": "Type of resource to update. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 5 - Project. Number of projects a user can create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", - "length": 255, - "name": "resourcetype", - "required": true, - "type": "integer" - }, - { - "description": "Tag for the resource type", - "length": 255, - "name": "tag", - "required": false, - "since": "4.20.0", - "type": "string" - }, - { - "description": "Update resource for a specified account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "Update resource limits for all accounts in specified domain. If used with the account parameter, updates resource limits for a specified account in specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "Update resource limits for project", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - } - ], - "related": "listResourceLimits", - "response": [ - { - "description": "the domain name of the resource limit", - "name": "domain", - "type": "string" - }, - { - "description": "the project id of the resource limit", - "name": "projectid", - "type": "string" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the domain ID of the resource limit", - "name": "domainid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the project name of the resource limit", - "name": "project", - "type": "string" - }, - { - "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.", - "name": "resourcetype", - "type": "string" - }, - { - "description": "The tag for the resource limit", - "name": "tag", - "type": "string" - }, - {}, - { - "description": "path of the domain to which the resource limit belongs", - "name": "domainpath", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.", - "name": "resourcetypename", + "description": "network read in MiB", + "name": "networkread", "type": "string" }, { - "description": "the maximum number of the resource. A -1 means the resource currently has no limit.", - "name": "max", - "type": "long" - }, - { - "description": "the account of the resource limit", - "name": "account", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" - } - ] - }, - { - "description": "Deletes a static route", - "isasync": true, - "name": "deleteStaticRoute", - "params": [ - { - "description": "the ID of the static route", - "length": 255, - "name": "id", - "related": "createStaticRoute,listStaticRoutes", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "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", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "get load balancer certificate", - "isasync": false, - "name": "getLoadBalancerSslCertificate", - "params": [ - { - "description": "the ID of Lb", - "length": 255, - "name": "id", - "related": "getLoadBalancerSslCertificate", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "chain", - "name": "chain", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "crt", - "name": "crt", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "key", - "name": "key", - "type": "string" - } - ] - }, - { - "description": "Destroys a l2tp/ipsec remote access vpn", - "isasync": true, - "name": "deleteRemoteAccessVpn", - "params": [ - { - "description": "public ip address id of the vpn server", - "length": 255, - "name": "publicipid", - "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" - } - ], - "response": [ { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "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", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {} - ] - }, - { - "description": "Start rolling maintenance", - "isasync": true, - "name": "startRollingMaintenance", - "params": [ - { - "description": "the IDs of the clusters to start maintenance on", - "length": 255, - "name": "clusterids", - "related": "addCluster,listClusters,updateCluster", - "required": false, - "type": "list" - }, - { - "description": "the command to execute while hosts are on maintenance", - "length": 255, - "name": "payload", - "required": false, + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "optional operation timeout (in seconds) that overrides the global timeout setting", - "length": 255, - "name": "timeout", - "required": false, - "type": "integer" - }, - { - "description": "the IDs of the hosts to start maintenance on", - "length": 255, - "name": "hostids", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost", - "required": false, - "type": "list" - }, - { - "description": "if rolling mechanism should continue in case of an error", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" - }, - { - "description": "the IDs of the pods to start maintenance on", - "length": 255, - "name": "podids", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "list" - }, - { - "description": "the IDs of the zones to start maintenance on", - "length": 255, - "name": "zoneids", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "list" - } - ], - "related": "", - "response": [ - { - "description": "the hosts skipped", - "name": "hostsskipped", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the ID of the skipped host", - "name": "hostid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the reason to skip the host", - "name": "reason", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the name of the skipped host", - "name": "hostname", + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], - "type": "list" + "type": "set" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the hosts updated", - "name": "hostsupdated", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "end date of the update on the host", - "name": "enddate", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the name of the updated host", - "name": "hostname", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the ID of the updated host", - "name": "hostid", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "start date of the update on the host", - "name": "startdate", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "output of the maintenance script on the host", - "name": "output", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" } ], - "type": "list" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "indicates if the rolling maintenance operation was successful", - "name": "success", - "type": "boolean" + "type": "set" }, { - "description": "in case of failure, details are displayed", - "name": "details", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" } ] }, { - "description": "list Tungsten-Fabric application policy set", + "description": "Lists hosts.", "isasync": false, - "name": "listTungstenFabricApplicationPolicySet", + "name": "listHosts", "params": [ { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the uuid of Tungsten-Fabric application policy set", + "description": "the state of the host", "length": 255, - "name": "applicationpolicysetuuid", + "name": "state", "required": false, "type": "string" }, { - "description": "", + "description": "the Pod ID for the host", "length": 255, - "name": "page", + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "List by keyword", + "description": "the name of the host", "length": 255, - "name": "keyword", + "name": "name", "required": false, "type": "string" }, { - "description": "", + "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]", "length": 255, - "name": "pagesize", + "name": "outofbandmanagementpowerstate", "required": false, - "type": "integer" - } - ], - "related": "createTungstenFabricApplicationPolicySet", - "response": [ - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Tungsten-Fabric policy name", - "name": "name", "type": "string" }, { - "description": "list Tungsten-Fabric firewall policy", - "name": "firewallpolicy", - "type": "list" - }, - { - "description": "list Tungsten-Fabric tag", - "name": "tag", - "type": "list" + "description": "if true, list only hosts dedicated to HA", + "length": 255, + "name": "hahost", + "required": false, + "type": "boolean" }, { - "description": "Tungsten-Fabric provider zone id", + "description": "the Zone ID for the host", + "length": 255, "name": "zoneid", - "type": "long" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "Tungsten-Fabric application policy uuid", - "name": "uuid", + "description": "the host type", + "length": 255, + "name": "type", + "required": false, "type": "string" }, - {} - ] - }, - { - "description": "Updates network ACL list", - "isasync": true, - "name": "updateNetworkACLList", - "params": [ { - "description": "Name of the network ACL list", + "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator", "length": 255, - "name": "name", + "name": "hypervisor", "required": false, "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]", "length": 255, - "name": "customid", + "name": "resourcestate", "required": false, - "since": "4.4", "type": "string" }, { - "description": "an optional field, whether to the display the list to the end user or not", + "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM", "length": 255, - "name": "fordisplay", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "since": "4.4", - "type": "boolean" + "type": "uuid" }, { - "description": "the ID of the network ACL", + "description": "the id of the host", "length": 255, "name": "id", - "related": "createNetworkACLList,listNetworkACLLists", - "required": true, + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost", + "required": false, "type": "uuid" }, { - "description": "Description of the network ACL list", + "description": "List by keyword", "length": 255, - "name": "description", + "name": "keyword", "required": false, "type": "string" - } - ], - "response": [ - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - { - "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" - }, - {} - ], - "since": "4.4" - }, - { - "description": "Restore a VM to original template/ISO or new template/ISO", - "isasync": true, - "name": "restoreVirtualMachine", - "params": [ - { - "description": "Override root volume's size (in GB). Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided", - "length": 255, - "name": "rootdisksize", - "required": false, - "since": "4.19.1", - "type": "long" }, { - "description": "used to specify the custom parameters", + "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]", "length": 255, "name": "details", "required": false, - "since": "4.19.1", - "type": "map" + "type": "list" }, { - "description": "Override root volume's diskoffering.", + "description": "", "length": 255, - "name": "diskofferingid", - "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "name": "pagesize", "required": false, - "since": "4.19.1", - "type": "uuid" + "type": "integer" }, { - "description": "an optional template Id to restore vm from the new template. This can be an ISO id in case of restore vm deployed using ISO", + "description": "", "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "Optional field to expunge old root volume after restore.", + "description": "list hosts for which out-of-band management is enabled", "length": 255, - "name": "expunge", + "name": "outofbandmanagementenabled", "required": false, - "since": "4.19.1", "type": "boolean" }, { - "description": "Virtual Machine ID", + "description": "lists hosts existing in particular cluster", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, + "name": "clusterid", + "related": "addCluster,listClusters,updateCluster", + "required": false, "type": "uuid" } ], - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost,updateHost", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "GPU cards present in the host", + "name": "gpugroup", + "response": [ + { + "description": "GPU cards present in the host", + "name": "gpugroupname", + "type": "string" + }, + { + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + }, + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + } + ], + "type": "list" + } + ], + "type": "list" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", + "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the host version", + "name": "version", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, - {}, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", + "type": "long" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" + }, + { + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", "type": "long" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" + }, + { + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" + }, + { + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", "type": "long" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", "type": "boolean" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", "type": "boolean" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" + }, + { + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" + }, + { + "description": "the total disk size of the host", + "name": "disksizetotal", "type": "long" }, { - "description": "Vm details in key/value pairs.", + "description": "Host details in key/value pairs.", "name": "details", "type": "map" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the state of the host", + "name": "state", + "type": "status" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" + "description": "the date and time the host was created", + "name": "created", + "type": "date" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, + {}, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the cluster name of the host", + "name": "clustername", + "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" - }, - { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" - }, - { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" - }, - { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" - }, - {}, - { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" - }, - { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" - }, - { - "description": "the project name of the vm", - "name": "project", - "type": "string" - }, - { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" - }, - { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "User VM type", - "name": "vmtype", - "type": "string" - }, - { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - }, - { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" - }, - { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" - }, - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - } - ], - "type": "set" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - } - ], - "since": "3.0.0" - }, - { - "description": " delete a nicira nvp device", - "isasync": true, - "name": "deleteNiciraNvpDevice", - "params": [ - { - "description": "Nicira device ID", - "length": 255, - "name": "nvpdeviceid", - "related": "addNiciraNvpDevice,listNiciraNvpDevices", - "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", - "name": "jobid", - "type": "string" - }, - {}, - {}, - { - "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": "List ucs blades", - "isasync": false, - "name": "listUcsBlades", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "ucs manager id", - "length": 255, - "name": "ucsmanagerid", - "related": "listUcsManagers,addUcsManager", - "required": true, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "associateUcsProfileToBlade", - "response": [ - { - "description": "ucs manager id", - "name": "ucsmanagerid", - "type": "string" - }, - { - "description": "ucs blade dn", - "name": "bladedn", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "cloudstack host id this blade associates to", - "name": "hostid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "associated ucs profile dn", - "name": "profiledn", - "type": "string" - }, - { - "description": "ucs blade id", - "name": "id", - "type": "string" - }, - {} - ] - }, - { - "description": "Notify provision has been done on a host. This api is for baremetal virtual router service, not for end user", - "isasync": true, - "name": "notifyBaremetalProvisionDone", - "params": [ - { - "description": "mac of the nic used for provision", - "length": 255, - "name": "mac", - "required": true, - "type": "object" - } - ], - "response": [ - {}, - { - "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" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "Get Volume Snapshot Details", - "isasync": false, - "name": "getVolumeSnapshotDetails", - "params": [ - { - "description": "CloudStack Snapshot UUID", - "length": 255, - "name": "snapshotid", - "required": true, - "type": "string" - } - ], - "related": "getVolumeiScsiName", - "response": [ - {}, - { - "description": "Volume iSCSI Name", - "name": "volumeiScsiName", - "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", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Updates a host.", - "isasync": false, - "name": "updateHost", - "params": [ - { - "description": "Change the name of host", - "length": 255, - "name": "name", - "required": false, - "since": "4.15", - "type": "string" - }, - { - "description": "Add an annotation to this host", - "length": 255, - "name": "annotation", - "required": false, - "since": "4.11", - "type": "string" - }, - { - "description": "Change resource state of host, valid values are [Enable, Disable]. Operation may failed if host in states not allowing Enable/Disable", - "length": 255, - "name": "allocationstate", - "required": false, - "type": "string" - }, - { - "description": "the new uri for the secondary storage: nfs://host/path", - "length": 255, - "name": "url", - "required": false, - "type": "string" - }, - { - "description": "list of tags to be added to the host", - "length": 255, - "name": "hosttags", - "required": false, - "type": "list" - }, - { - "description": "the id of Os category to update the host with", - "length": 255, - "name": "oscategoryid", - "related": "listOsCategories", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the host to update", - "length": 255, - "name": "id", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,updateHost,addBaremetalHost", - "required": true, - "type": "uuid" - }, - { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "length": 255, - "name": "istagarule", - "required": false, - "type": "boolean" - } - ], - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "response": [ - { - "description": "the ID of the host", - "name": "id", - "type": "string" - }, - { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" - }, - { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", - "type": "string" - }, - { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", - "type": "string" - }, - { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" - }, - { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" - }, - { - "description": "CPU Arch of the host", - "name": "arch", - "type": "string" - }, - { - "description": "the host type", - "name": "type", - "type": "type" - }, - { - "description": "the name of the host", - "name": "name", - "type": "string" - }, - { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", - "type": "boolean" - }, - { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", - "type": "string" - }, - { - "description": "GPU cards present in the host", - "name": "gpugroup", - "response": [ - { - "description": "GPU cards present in the host", - "name": "gpugroupname", - "type": "string" - }, - { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - } - ], - "type": "list" - } - ], - "type": "list" - }, - { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" - }, - { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "the Pod name of the host", - "name": "podname", - "type": "string" - }, - { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", - "type": "long" - }, - { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" - }, - { - "description": "the last annotation set on this host by an admin", - "name": "annotation", - "type": "string" - }, - { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" - }, - { - "description": "the resource state of the host", - "name": "resourcestate", - "type": "string" - }, - { - "description": "comma-separated list of tags for the host", - "name": "hosttags", - "type": "string" - }, - { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", - "type": "string" - }, - { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" - }, - { - "description": "events available for the host", - "name": "events", - "type": "string" - }, - { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" - }, - { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", - "type": "string" - }, - { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", - "type": "string" - }, - { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" - }, - { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" - }, - { - "description": "the hypervisor version", - "name": "hypervisorversion", - "type": "string" - }, - { - "description": "the cluster ID of the host", - "name": "clusterid", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - }, - { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" - }, - { - "description": "the admin that annotated this host", - "name": "username", - "type": "string" - }, - { - "description": "the IP address of the host", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the Zone name of the host", - "name": "zonename", - "type": "string" - }, - { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", - "type": "string" - }, - { - "description": "the host hypervisor", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", - "type": "string" - }, - { - "description": "the OS category name of the host", - "name": "oscategoryname", - "type": "string" - }, - { - "description": "the Pod ID of the host", - "name": "podid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", - "type": "string" - }, - { - "description": "the OS category ID of the host", - "name": "oscategoryid", - "type": "string" - }, - { - "description": "the state of the host", - "name": "state", - "type": "status" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the date and time the host was created", - "name": "created", - "type": "date" - }, - { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" - }, - { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" - }, - { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", - "type": "string" - }, - { - "description": "the management server ID of the host", - "name": "managementserverid", - "type": "string" - }, - { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" - }, - {}, - { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" - }, - { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - { - "description": "capabilities of the host", - "name": "capabilities", - "type": "string" - }, - { - "description": "the Zone ID of the host", - "name": "zoneid", - "type": "string" - }, - { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", - "type": "long" - }, - { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" - }, - { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - {}, - { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" - }, - { - "description": "the host version", - "name": "version", - "type": "string" - }, - { - "description": "the cluster name of the host", - "name": "clustername", - "type": "string" - }, - { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" - } - ] - }, - { - "description": "Creates a egress firewall rule for a given network ", - "isasync": true, - "name": "createEgressFirewallRule", - "params": [ - { - "description": "the starting port of firewall rule", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" - }, - { - "description": "the network id of the port forwarding rule", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" - }, - { - "description": "the cidr list to forward traffic to. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "destcidrlist", - "required": false, - "type": "list" - }, - { - "description": "type of the icmp message being sent", - "length": 255, - "name": "icmptype", - "required": false, - "type": "integer" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" - }, - { - "description": "the ending port of firewall rule", - "length": 255, - "name": "endport", - "required": false, - "type": "integer" - }, - { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "type of firewallrule: system/user", - "length": 255, - "name": "type", - "required": false, - "type": "string" - }, - { - "description": "error code for this icmp message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" - }, - { - "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.", - "length": 255, - "name": "protocol", - "required": true, - "type": "string" - } - ], - "related": "createFirewallRule,listEgressFirewallRules,listFirewallRules,updateEgressFirewallRule,updateFirewallRule", - "response": [ - {}, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "the traffic type for the firewall rule", - "name": "traffictype", - "type": "string" - }, - { - "description": "the network id of the firewall rule", - "name": "networkid", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the starting port of firewall rule's port range", - "name": "startport", - "type": "integer" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" - }, - { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the public ip address id for the firewall rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the ID of the firewall rule", - "name": "id", - "type": "string" - }, - { - "description": "the ending port of firewall rule's port range", - "name": "endport", - "type": "integer" - }, - { - "description": "the public ip address for the firewall rule", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the protocol of the firewall rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", - "name": "destcidrlist", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Lists security groups", - "isasync": false, - "name": "listSecurityGroups", - "params": [ - { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "list the security group by the id provided", - "length": 255, - "name": "id", - "related": "createSecurityGroup,listSecurityGroups,updateSecurityGroup", - "required": false, - "type": "uuid" - }, - { - "description": "lists security groups by virtual machine id", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "type": "uuid" - }, - { - "description": "lists security groups by name", - "length": 255, - "name": "securitygroupname", - "required": false, - "type": "string" - }, - { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - } - ], - "related": "createSecurityGroup,updateSecurityGroup", - "response": [ - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - {}, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - {} - ] - }, - { - "description": "Enables a role", - "isasync": false, - "name": "enableRole", - "params": [ - { - "description": "ID of the role", - "length": 255, - "name": "id", - "related": "createRole,importRole,listRoles,updateRole", - "required": true, - "type": "uuid" - } - ], - "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.20.0" - }, - { - "description": "List OAuth providers registered", - "isasync": false, - "name": "listOauthProvider", - "params": [ - { - "description": "Name of the provider", - "length": 255, - "name": "provider", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the OAuth provider", - "length": 255, - "name": "id", - "related": "listOauthProvider,verifyOAuthCodeAndGetUser,updateOauthProvider", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "verifyOAuthCodeAndGetUser,updateOauthProvider", - "response": [ - {}, - { - "description": "Client ID registered in the OAuth provider", - "name": "clientid", - "type": "string" - }, - { - "description": "Redirect URI registered in the OAuth provider", - "name": "redirecturi", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "ID of the provider", - "name": "id", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Whether the OAuth provider is enabled or not", - "name": "enabled", - "type": "boolean" - }, - { - "description": "Description of the provider registered", - "name": "description", - "type": "string" - }, - { - "description": "Name of the provider", - "name": "provider", - "type": "string" - }, - { - "description": "Secret key registered in the OAuth provider", - "name": "secretkey", - "type": "string" - }, - { - "description": "Name of the provider", - "name": "name", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Delete Service Package", - "isasync": false, - "name": "deleteServicePackageOffering", - "params": [ - { - "description": "the service offering ID", - "length": 255, - "name": "id", - "related": "registerNetscalerServicePackage,listRegisteredServicePackages", - "required": true, - "type": "string" - } - ], - "response": [ - {}, - { - "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" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {} - ] - }, - { - "description": "Update a Shared FileSystem", - "isasync": false, - "name": "updateSharedFileSystem", - "params": [ - { - "description": "the ID of the shared filesystem", - "length": 255, - "name": "id", - "related": "createSharedFileSystem,listSharedFileSystems,updateSharedFileSystem,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": true, - "type": "uuid" - }, - { - "description": "the name of the shared filesystem.", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "the description for the shared filesystem.", - "length": 255, - "name": "description", - "required": false, - "type": "string" - } - ], - "related": "createSharedFileSystem,listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "response": [ - { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project name of the shared filesystem", - "name": "project", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" - }, - { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", - "type": "string" - }, - { - "description": "Network ID of the shared filesystem", - "name": "networkid", - "type": "string" - }, - { - "description": "the domain associated with the shared filesystem", - "name": "domain", - "type": "string" - }, - { - "description": "size of the shared filesystem", - "name": "size", - "type": "long" - }, - { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" - }, - { - "description": "the disk utilization", - "name": "utilization", - "type": "string" - }, - { - "description": "service offering ID for the shared filesystem", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the shared filesystem provider", - "name": "provider", - "type": "string" - }, - { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "disk offering for the shared filesystem", - "name": "diskofferingname", - "type": "string" - }, - { - "description": "the filesystem format", - "name": "filesystem", - "type": "string" - }, - {}, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the state of the shared filesystem", - "name": "state", - "type": "string" - }, - { - "description": "description of the shared filesystem", - "name": "description", - "type": "string" - }, - { - "description": "the shared filesystem's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" - }, - { - "description": "the list of nics associated with the shared filesystem", - "name": "nic", - "response": [ - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - } - ], - "type": "list" - }, - { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "name of the shared filesystem", - "name": "name", - "type": "string" - }, - { - "description": "the project ID of the shared filesystem", - "name": "projectid", - "type": "string" - }, - { - "description": "Name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "ID of the storage fs data volume", - "name": "volumeid", - "type": "string" - }, - { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", - "type": "string" - }, - {}, - { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", - "type": "string" - }, - { - "description": "path to mount the shared filesystem", - "name": "path", - "type": "string" - }, - { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", - "type": "string" - }, - { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" - }, - { - "description": "ID of the storage fs vm", - "name": "vmstate", - "type": "string" - }, - { - "description": "ID of the shared filesystem", - "name": "id", - "type": "string" - }, - { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", - "type": "string" - }, - { - "description": "Network name of the shared filesystem", - "name": "networkname", - "type": "string" - }, - { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", - "type": "string" - }, - { - "description": "name of the storage fs data volume", - "name": "volumename", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "name of the storage pool hosting the data volume", - "name": "storage", - "type": "string" - }, - { - "description": "the account associated with the shared filesystem", - "name": "account", - "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Updates an existing IPv4 subnet for a zone.", - "isasync": true, - "name": "updateIpv4SubnetForZone", - "params": [ - { - "description": "The new CIDR of the IPv4 subnet.", - "length": 255, - "name": "subnet", - "required": true, - "type": "string" - }, - { - "description": "Id of the guest network IPv4 subnet", - "length": 255, - "name": "id", - "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,updateIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", - "required": true, - "type": "uuid" - } - ], - "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", - "response": [ - { - "description": "the project id of the IPv4 subnet", - "name": "projectid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the domain ID of the IPv4 subnet", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name of the IPv4 subnet", - "name": "project", - "type": "string" - }, - { - "description": "id of the guest IPv4 subnet", - "name": "id", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "date when this IPv4 subnet was created.", - "name": "created", - "type": "date" - }, - {}, - {}, - { - "description": "guest IPv4 subnet", - "name": "subnet", - "type": "string" - }, - { - "description": "the domain name of the IPv4 subnet", - "name": "domain", - "type": "string" - }, - { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", - "type": "string" - }, - { - "description": "name of zone to which the IPv4 subnet belongs to.", - "name": "zonename", - "type": "string" - }, - { - "description": "the account of the IPv4 subnet", - "name": "account", - "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Destroys a system virtual machine.", - "isasync": true, - "name": "destroySystemVm", - "params": [ - { - "description": "The ID of the system virtual machine", - "length": 255, - "name": "id", - "related": "destroySystemVm,listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", - "required": true, - "type": "uuid" - } - ], - "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", - "response": [ - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", - "type": "string" - }, - { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" - }, - { - "description": "the hostname for the system VM", - "name": "hostname", - "type": "string" - }, - { - "description": "the host ID for the system VM", - "name": "hostid", - "type": "string" - }, - { - "description": "the systemvm agent version", - "name": "version", - "type": "string" - }, - { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" - }, - { - "description": "the system VM type", - "name": "systemvmtype", - "type": "string" - }, - { - "description": "the first DNS for the system VM", - "name": "dns1", - "type": "string" - }, - { - "description": "the gateway for the system VM", - "name": "gateway", - "type": "string" - }, - { - "description": "the template ID for the system VM", - "name": "templateid", - "type": "string" - }, - { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" - }, - {}, - { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", - "type": "string" - }, - { - "description": "the public netmask for the system VM", - "name": "publicnetmask", - "type": "string" - }, - {}, - { - "description": "the Zone name for the system VM", - "name": "zonename", - "type": "string" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the second DNS for the system VM", - "name": "dns2", - "type": "string" - }, - { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", - "type": "string" - }, - { - "description": "the date and time the system VM was created", - "name": "created", - "type": "date" - }, - { - "description": "the name of the system VM", - "name": "name", - "type": "string" - }, - { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", - "type": "string" - }, - { - "description": "the Pod name for the system VM", - "name": "podname", - "type": "string" - }, - { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" - }, - { - "description": "the private netmask for the system VM", - "name": "privatenetmask", - "type": "string" - }, - { - "description": "the Pod ID for the system VM", - "name": "podid", - "type": "string" - }, - { - "description": "the agent state of the system VM", - "name": "agentstate", - "type": "string" - }, - { - "description": "the state of the system VM", - "name": "state", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the template name for the system VM", - "name": "templatename", - "type": "string" - }, - { - "description": "the link local IP address for the system vm", - "name": "linklocalip", - "type": "string" - }, - { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" - }, - { - "description": "the ID of the system VM", - "name": "id", - "type": "string" - }, - { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" - }, - { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the private IP address for the system VM", - "name": "privateip", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the network domain for the system VM", - "name": "networkdomain", - "type": "string" - }, - { - "description": "guest vlan range", - "name": "guestvlan", - "type": "string" - } - ] - }, - { - "description": "Archive one or more events.", - "isasync": false, - "name": "archiveEvents", - "params": [ - { - "description": "start date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, - "type": "date" - }, - { - "description": "archive by event type", - "length": 255, - "name": "type", - "required": false, - "type": "string" - }, - { - "description": "the IDs of the events", - "length": 255, - "name": "ids", - "related": "listEvents", - "required": false, - "type": "list" - }, - { - "description": "end date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" - } - ], - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {}, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "List Autonomous Systems Numbers", - "isasync": false, - "name": "listASNumbers", - "params": [ - { - "description": "the zone ID", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the AS Number range ID", - "length": 255, - "name": "asnrangeid", - "related": "createASNRange,listASNRanges", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "domain id", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "AS number", - "length": 255, - "name": "asnumber", - "related": "listASNumbers", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "account name", - "length": 255, - "name": "account", - "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, - "type": "string" - }, - { - "description": "the vpc id", - "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,updateVPC,createVPC,listVPCs,updateVPC,migrateVPC", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "to indicate if the AS number is allocated to any network", - "length": 255, - "name": "isallocated", - "required": false, - "type": "boolean" - }, - { - "description": "the network id", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Allocation state", - "name": "allocationstate", - "type": "string" - }, - { - "description": "Created Date", - "name": "created", - "type": "date" - }, - { - "description": "AS Number", - "name": "asnumber", - "type": "long" - }, - { - "description": "Domain ID", - "name": "domainid", - "type": "string" - }, - { - "description": "the zone name of the AS Number range", - "name": "zonename", - "type": "string" - }, - { - "description": "Allocated Date", - "name": "allocated", - "type": "date" - }, - { - "description": "Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "VPC ID", - "name": "vpcid", - "type": "string" - }, - { - "description": "Network Name", - "name": "associatednetworkname", - "type": "string" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "VPC Name", - "name": "vpcname", - "type": "string" - }, - { - "description": "the domain name", - "name": "domain", - "type": "string" - }, - { - "description": "AS Number ID", - "name": "asnrangeid", - "type": "string" - }, - { - "description": "Network ID", - "name": "associatednetworkid", - "type": "string" - }, - { - "description": "AS Number Range", - "name": "asnrange", - "type": "string" - }, - { - "description": "the account name", - "name": "account", - "type": "string" - }, - {}, - { - "description": "ID of the AS Number", - "name": "id", - "type": "string" - }, - { - "description": "Account ID", - "name": "accountid", - "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Deletes a secondary staging store .", - "isasync": false, - "name": "deleteSecondaryStagingStore", - "params": [ - { - "description": "the staging store ID", - "length": 255, - "name": "id", - "related": "addSecondaryStorage,addSwift,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,listSecondaryStagingStores,updateCloudToUseObjectStore", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "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": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "List registered userdatas", - "isasync": false, - "name": "listUserData", - "params": [ - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "the ID of the Userdata", - "length": 255, - "name": "id", - "related": "listUserData", - "required": false, - "type": "uuid" - }, - { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - }, - { - "description": "Userdata name to look for", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the domain name of the userdata owner", - "name": "domain", - "type": "string" - }, - { - "description": "Name of the userdata", - "name": "name", - "type": "string" - }, - { - "description": "the owner of the userdata", - "name": "account", - "type": "string" - }, - { - "description": "the project id of the userdata", - "name": "projectid", - "type": "string" - }, - {}, - { - "description": "path of the domain to which the userdata owner belongs", - "name": "domainpath", - "type": "string" - }, - {}, - { - "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": "the project name of the userdata", - "name": "project", - "type": "string" - }, - { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "params", - "type": "string" - }, - { - "description": "the owner id of the userdata", - "name": "accountid", - "type": "string" - }, - { - "description": "ID of the ssh keypair", - "name": "id", - "type": "string" - }, - { - "description": "the domain id of the userdata owner", - "name": "domainid", - "type": "string" - }, - { - "description": "base64 encoded userdata content", - "name": "userdata", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - } - ], - "since": "4.18" - }, - { - "description": "Updates an internal load balancer", - "isasync": true, - "name": "updateLoadBalancer", - "params": [ - { - "description": "the ID of the load balancer", - "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - }, - { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", - "type": "string" - } - ], - "related": "createLoadBalancer,listLoadBalancers", - "response": [ - { - "description": "Load Balancer network id", - "name": "networkid", - "type": "string" - }, - { - "description": "the domain of the Load Balancer", - "name": "domain", - "type": "string" - }, - { - "description": "path of the domain to which the Load Balancer belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name of the Load Balancer", - "name": "project", - "type": "string" - }, - { - "description": "the list of resource tags associated with the Load Balancer", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", - "type": "string" - }, - { - "description": "the project id of the Load Balancer", - "name": "projectid", - "type": "string" - }, - { - "description": "the name of the Load Balancer", - "name": "name", - "type": "string" - }, - { - "description": "the domain ID of the Load Balancer", - "name": "domainid", - "type": "string" - }, - { - "description": "the account of the Load Balancer", - "name": "account", - "type": "string" - }, - { - "description": "Load Balancer source ip network id", - "name": "sourceipaddressnetworkid", - "type": "string" - }, - {}, - { - "description": "the Load Balancer ID", - "name": "id", - "type": "string" - }, - { - "description": "the list of instances associated with the Load Balancer", - "name": "loadbalancerinstance", - "response": [ - { - "description": "the instance ID", - "name": "id", - "type": "string" - }, - { - "description": "the ip address of the instance", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the state of the instance", - "name": "state", - "type": "string" - }, - { - "description": "the name of the instance", - "name": "name", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the list of rules associated with the Load Balancer", - "name": "loadbalancerrule", - "response": [ - { - "description": "the state of the load balancer rule", - "name": "state", - "type": "string" - }, - { - "description": "instance port of the load balancer rule", - "name": "instanceport", - "type": "integer" - }, - { - "description": "source port of the load balancer rule", - "name": "sourceport", - "type": "integer" - } - ], - "type": "list" - }, - { - "description": "the description of the Load Balancer", - "name": "description", - "type": "string" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Load Balancer source ip", - "name": "sourceipaddress", - "type": "string" - } - ], - "since": "4.4.0" - }, - { - "description": "Scale the service offering for a system vm (console proxy or secondary storage). The system vm must be in a \"Stopped\" state for this command to take effect.", - "isasync": true, - "name": "scaleSystemVm", - "params": [ - { - "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", - "length": 255, - "name": "details", - "required": false, - "type": "map" - }, - { - "description": "The ID of the system vm", - "length": 255, - "name": "id", - "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", - "required": true, - "type": "uuid" - }, - { - "description": "the service offering ID to apply to the system vm", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" - } - ], - "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm", - "response": [ - { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the host ID for the system VM", - "name": "hostid", - "type": "string" - }, - { - "description": "the Zone name for the system VM", - "name": "zonename", - "type": "string" - }, - { - "description": "the Pod ID for the system VM", - "name": "podid", - "type": "string" - }, - {}, - { - "description": "the public netmask for the system VM", - "name": "publicnetmask", - "type": "string" - }, - { - "description": "the systemvm agent version", - "name": "version", - "type": "string" - }, - { - "description": "the Pod name for the system VM", - "name": "podname", - "type": "string" - }, - { - "description": "the network domain for the system VM", - "name": "networkdomain", - "type": "string" - }, - { - "description": "the hostname for the system VM", - "name": "hostname", - "type": "string" - }, - { - "description": "the agent state of the system VM", - "name": "agentstate", - "type": "string" - }, - { - "description": "guest vlan range", - "name": "guestvlan", - "type": "string" - }, - {}, - { - "description": "the first DNS for the system VM", - "name": "dns1", - "type": "string" - }, - { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the template ID for the system VM", - "name": "templateid", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the private netmask for the system VM", - "name": "privatenetmask", - "type": "string" - }, - { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", - "type": "string" - }, - { - "description": "the name of the system VM", - "name": "name", - "type": "string" - }, - { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", - "type": "string" - }, - { - "description": "the state of the system VM", - "name": "state", - "type": "string" - }, - { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" - }, - { - "description": "the private IP address for the system VM", - "name": "privateip", - "type": "string" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" - }, - { - "description": "the template name for the system VM", - "name": "templatename", - "type": "string" - }, - { - "description": "the date and time the system VM was created", - "name": "created", - "type": "date" - }, - { - "description": "the link local IP address for the system vm", - "name": "linklocalip", - "type": "string" - }, - { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" - }, - { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" - }, - { - "description": "the ID of the system VM", - "name": "id", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the second DNS for the system VM", - "name": "dns2", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "the system VM type", - "name": "systemvmtype", - "type": "string" - }, - { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", - "type": "string" - }, - { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" - }, - { - "description": "the gateway for the system VM", - "name": "gateway", - "type": "string" - }, - { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", - "type": "string" - }, - { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" - } - ] - }, - { - "description": "Verify the OAuth Code and fetch the corresponding user from provider", - "isasync": false, - "name": "verifyOAuthCodeAndGetUser", - "params": [ - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "Code that is provided by OAuth provider (Eg. google, github) after successful login", - "length": 255, - "name": "secretcode", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "Name of the provider", - "length": 255, - "name": "provider", - "required": true, - "type": "string" - } - ], - "related": "updateOauthProvider", - "response": [ - { - "description": "Secret key registered in the OAuth provider", - "name": "secretkey", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Redirect URI registered in the OAuth provider", - "name": "redirecturi", - "type": "string" - }, - { - "description": "ID of the provider", - "name": "id", - "type": "string" - }, - {}, - { - "description": "Name of the provider", - "name": "provider", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Name of the provider", - "name": "name", - "type": "string" - }, - { - "description": "Whether the OAuth provider is enabled or not", - "name": "enabled", - "type": "boolean" - }, - { - "description": "Description of the provider registered", - "name": "description", - "type": "string" - }, - {}, - { - "description": "Client ID registered in the OAuth provider", - "name": "clientid", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "List DRS plans for a clusters", - "isasync": false, - "name": "listClusterDrsPlan", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "ID of the cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,listClusters,updateCluster", - "required": false, - "type": "uuid" - }, - { - "description": "ID of the drs plan", - "length": 255, - "name": "id", - "related": "listClusterDrsPlan,generateClusterDrsPlan,executeClusterDrsPlan", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "generateClusterDrsPlan,executeClusterDrsPlan", - "response": [ - { - "description": "Id of the cluster", - "name": "clusterid", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "unique ID of the drs plan for cluster", - "name": "id", - "type": "string" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Type of DRS Plan (Automated or Manual))", - "name": "type", - "type": "type" - }, - {}, - { - "description": "List of migrations", - "name": "migrations", - "type": "list" - }, - { - "description": "Status of DRS Plan", - "name": "status", - "type": "status" - }, - { - "description": "Start event Id of the DRS Plan", - "name": "eventid", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Lists clusters.", - "isasync": false, - "name": "listClusters", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "lists clusters by cluster type", - "length": 255, - "name": "clustertype", - "required": false, - "type": "string" - }, - { - "description": "whether this cluster is managed by cloudstack", - "length": 255, - "name": "managedstate", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by Zone ID", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "lists clusters by allocation state", - "length": 255, - "name": "allocationstate", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by the cluster name", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by the cluster ID", - "length": 255, - "name": "id", - "related": "addCluster,listClusters,updateCluster", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "lists clusters by hypervisor type", - "length": 255, - "name": "hypervisor", - "required": false, - "type": "string" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by Pod ID", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, - { - "description": "flag to display the capacity of the clusters", - "length": 255, - "name": "showcapacities", - "required": false, - "type": "boolean" - } - ], - "related": "addCluster,updateCluster", - "response": [ - { - "description": "the type of the cluster", - "name": "clustertype", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "whether this cluster is managed by cloudstack", - "name": "managedstate", - "type": "string" - }, - { - "description": "the Pod ID of the cluster", - "name": "podid", - "type": "string" - }, - { - "description": "The cpu overcommit ratio of the cluster", - "name": "cpuovercommitratio", - "type": "string" - }, - { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" - }, - { - "description": "the Zone ID of the cluster", - "name": "zoneid", - "type": "string" - }, - { - "description": "The memory overcommit ratio of the cluster", - "name": "memoryovercommitratio", - "type": "string" - }, - { - "description": "the Pod name of the cluster", - "name": "podname", - "type": "string" - }, - {}, - { - "description": "the allocation state of the cluster", - "name": "allocationstate", - "type": "string" - }, - { - "description": "the capacity of the Cluster", - "name": "capacity", - "response": [ - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "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 Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the capacity name", - "name": "name", - "type": "string" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - } - ], - "type": "list" - }, - { - "description": "the hypervisor type of the cluster", - "name": "hypervisortype", - "type": "string" - }, - { - "description": "the Zone name of the cluster", - "name": "zonename", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the cluster ID", - "name": "id", - "type": "string" - }, - { - "description": "CPU Arch of the hosts in the cluster", - "name": "arch", - "type": "string" - }, - { - "description": "the cluster name", - "name": "name", - "type": "string" - }, - { - "description": "Ovm3 VIP to use for pooling and/or clustering", - "name": "ovm3vip", - "type": "string" - }, - {} - ] - }, - { - "description": "Lists project invitations and provides detailed information for listed invitations", - "isasync": false, - "name": "listProjectInvitations", - "params": [ - { - "description": "list invitation by user ID", - "length": 255, - "name": "userid", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", - "required": false, - "type": "uuid" - }, - { - "description": "if true, list only active invitations - having Pending state and ones that are not timed out yet", - "length": 255, - "name": "activeonly", - "required": false, - "type": "boolean" - }, - { - "description": "list invitations by state", - "length": 255, - "name": "state", - "required": false, - "type": "string" - }, - { - "description": "list invitations by id", - "length": 255, - "name": "id", - "related": "listProjectInvitations", - "required": false, - "type": "uuid" - }, - { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "list by project id", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - } - ], - "related": "", - "response": [ - {}, - { - "description": "the id of the invitation", - "name": "id", - "type": "string" - }, - { - "description": "the User ID", - "name": "userid", - "type": "string" - }, - { - "description": "the domain name where the project belongs to", - "name": "domain", - "type": "string" - }, - { - "description": "the id of the project", - "name": "projectid", - "type": "string" - }, - { - "description": "the name of the project", - "name": "project", - "type": "string" - }, - { - "description": "the email the invitation was sent to", - "name": "email", - "type": "string" - }, - { - "description": "path of the Domain the project belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the domain id the project belongs to", - "name": "domainid", - "type": "string" - }, - {}, - { - "description": "the invitation state", - "name": "state", - "type": "string" - }, - { - "description": "the account name of the project's owner", - "name": "account", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "3.0.0" - }, - { - "description": "Lists all egress firewall rules for network ID.", - "isasync": false, - "name": "listEgressFirewallRules", - "params": [ - { - "description": "the ID of IP address of the firewall services", - "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "Lists rule with the specified ID.", - "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "the network ID for the egress firewall services", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - } - ], - "related": "createFirewallRule,listFirewallRules,updateEgressFirewallRule,updateFirewallRule", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the ending port of firewall rule's port range", - "name": "endport", - "type": "integer" - }, - { - "description": "the traffic type for the firewall rule", - "name": "traffictype", - "type": "string" - }, - { - "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", - "name": "destcidrlist", - "type": "string" - }, - { - "description": "the ID of the firewall rule", - "name": "id", - "type": "string" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the public ip address id for the firewall rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the public ip address for the firewall rule", - "name": "ipaddress", - "type": "string" - }, - { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" - }, - {}, - { - "description": "the starting port of firewall rule's port range", - "name": "startport", - "type": "integer" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the protocol of the firewall rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the network id of the firewall rule", - "name": "networkid", - "type": "string" - }, - {} - ] - }, - { - "description": "Lists clusters metrics", - "isasync": false, - "name": "listClustersMetrics", - "params": [ - { - "description": "lists clusters by allocation state", - "length": 255, - "name": "allocationstate", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by Zone ID", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "lists clusters by cluster type", - "length": 255, - "name": "clustertype", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by the cluster ID", - "length": 255, - "name": "id", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" - }, - { - "description": "lists clusters by Pod ID", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "lists clusters by the cluster name", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "flag to display the capacity of the clusters", - "length": 255, - "name": "showcapacities", - "required": false, - "type": "boolean" - }, - { - "description": "whether this cluster is managed by cloudstack", - "length": 255, - "name": "managedstate", - "required": false, - "type": "string" - }, - { - "description": "lists clusters by hypervisor type", - "length": 255, - "name": "hypervisor", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "state of the cluster", - "name": "state", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "cpu usage disable threshold exceeded", - "name": "cpudisablethreshold", - "type": "boolean" - }, - { - "description": "memory allocated disable threshold exceeded", - "name": "memoryallocateddisablethreshold", - "type": "boolean" - }, - { - "description": "the maximum memory deviation", - "name": "memorymaxdeviation", - "type": "string" - }, - { - "description": "the Zone ID of the cluster", - "name": "zoneid", - "type": "string" - }, - { - "description": "the Zone name of the cluster", - "name": "zonename", - "type": "string" - }, - { - "description": "memory usage notification threshold exceeded", - "name": "memorythreshold", - "type": "boolean" - }, - { - "description": "the cluster name", - "name": "name", - "type": "string" - }, - {}, - { - "description": "the total cpu used in Ghz", - "name": "cpuused", - "type": "string" - }, - { - "description": "the allocation state of the cluster", - "name": "allocationstate", - "type": "string" - }, - { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the total cpu allocated in Ghz", - "name": "cpuallocated", - "type": "string" - }, - { - "description": "the total cpu used in GiB", - "name": "memoryused", - "type": "string" - }, - { - "description": "the Pod ID of the cluster", - "name": "podid", - "type": "string" - }, - { - "description": "cpu allocated disable threshold exceeded", - "name": "cpuallocateddisablethreshold", - "type": "boolean" - }, - { - "description": "the capacity of the Cluster", - "name": "capacity", - "response": [ - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the capacity name", - "name": "name", - "type": "string" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - } - ], - "type": "list" - }, - { - "description": "cpu allocated notification threshold exceeded", - "name": "cpuallocatedthreshold", - "type": "boolean" - }, - { - "description": "memory usage disable threshold exceeded", - "name": "memorydisablethreshold", - "type": "boolean" - }, - { - "description": "the total cpu capacity in Ghz", - "name": "cputotal", - "type": "string" - }, - { - "description": "whether this cluster is managed by cloudstack", - "name": "managedstate", - "type": "string" - }, - { - "description": "the total cpu allocated in GiB", - "name": "memoryallocated", - "type": "string" - }, - { - "description": "Ovm3 VIP to use for pooling and/or clustering", - "name": "ovm3vip", - "type": "string" - }, - {}, - { - "description": "cpu usage notification threshold exceeded", - "name": "cputhreshold", - "type": "boolean" - }, - { - "description": "The memory overcommit ratio of the cluster", - "name": "memoryovercommitratio", - "type": "string" - }, - { - "description": "the Pod name of the cluster", - "name": "podname", - "type": "string" - }, - { - "description": "the hypervisor type of the cluster", - "name": "hypervisortype", - "type": "string" - }, - { - "description": "the type of the cluster", - "name": "clustertype", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the total cpu capacity in GiB", - "name": "memorytotal", - "type": "string" - }, - { - "description": "CPU Arch of the hosts in the cluster", - "name": "arch", - "type": "string" - }, - { - "description": "the cluster ID", - "name": "id", - "type": "string" - }, - { - "description": "The cpu overcommit ratio of the cluster", - "name": "cpuovercommitratio", - "type": "string" - }, - { - "description": "running / total hosts in the cluster", - "name": "hosts", - "type": "string" - }, - { - "description": "DRS imbalance for the cluster", - "name": "drsimbalance", - "type": "string" - }, - { - "description": "the maximum cpu deviation", - "name": "cpumaxdeviation", - "type": "string" - }, - { - "description": "memory allocated notification threshold exceeded", - "name": "memoryallocatedthreshold", - "type": "boolean" - } - ], - "since": "4.9.3" - }, - { - "description": "Lists objects at specified path on a storage pool.", - "isasync": false, - "name": "listStoragePoolObjects", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "id of the storage pool", - "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": true, - "type": "uuid" - }, - { - "description": "path to list on storage pool", - "length": 255, - "name": "path", - "required": false, - "type": "string" - } - ], - "related": "listImageStoreObjects", - "response": [ - { - "description": "Size is in Bytes.", - "name": "size", - "type": "long" - }, - { - "description": "Template ID associated with the data store object.", - "name": "templateid", - "type": "string" - }, - { - "description": "Snapshot Name associated with the data store object.", - "name": "snapshotname", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Volume Name associated with the data store object.", - "name": "volumename", - "type": "string" - }, - { - "description": "Template Name associated with the data store object.", - "name": "templatename", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Last modified date of the file/directory.", - "name": "lastupdated", - "type": "date" - }, - { - "description": "Is it a directory.", - "name": "isdirectory", - "type": "boolean" - }, - { - "description": "Snapshot ID associated with the data store object.", - "name": "snapshotid", - "type": "string" - }, - { - "description": "Volume ID associated with the data store object.", - "name": "volumeid", - "type": "string" - }, - {}, - { - "description": "Name of the data store object.", - "name": "name", - "type": "string" - }, - {}, - { - "description": "Format of template associated with the data store object.", - "name": "format", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Lists secondary staging stores.", - "isasync": false, - "name": "listSecondaryStagingStores", - "params": [ - { - "description": "the ID of the staging store", - "length": 255, - "name": "id", - "related": "addSecondaryStorage,addSwift,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,listSecondaryStagingStores,updateCloudToUseObjectStore", - "required": false, - "type": "uuid" - }, - { - "description": "the staging store protocol", - "length": 255, - "name": "protocol", - "required": false, - "type": "string" - }, - { - "description": "the staging store provider", - "length": 255, - "name": "provider", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the Zone ID for the staging store", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the name of the staging store", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "addSecondaryStorage,addSwift,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,updateCloudToUseObjectStore", - "response": [ - { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" - }, - { - "description": "the ID of the image store", - "name": "id", - "type": "string" - }, - {}, - { - "description": "the provider name of the image store", - "name": "providername", - "type": "string" - }, - { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the Zone name of the image store", - "name": "zonename", - "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 protocol of the image store", - "name": "protocol", - "type": "string" - }, - {}, - { - "description": "the url of the image store", - "name": "url", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" - }, - { - "description": "the name of the image store", - "name": "name", - "type": "string" - }, - { - "description": "the Zone ID of the image store", - "name": "zoneid", - "type": "string" - }, - { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - } - ], - "since": "4.2.0" - }, - { - "description": "Starts a router.", - "isasync": true, - "name": "startRouter", - "params": [ - { - "description": "the ID of the router", - "length": 255, - "name": "id", - "related": "destroyRouter,listRouters,rebootRouter,startRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "required": true, - "type": "uuid" - } - ], - "related": "destroyRouter,listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "response": [ - { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" - }, - { - "description": "the host ID for the router", - "name": "hostid", - "type": "string" - }, - { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", - "type": "string" - }, - { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", - "type": "string" - }, - { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", - "type": "string" - }, - { - "description": "the second DNS for the router", - "name": "dns2", - "type": "string" - }, - { - "description": "the id of the router", - "name": "id", - "type": "string" - }, - { - "description": "the Pod ID for the router", + "description": "the Pod ID of the host", "name": "podid", "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", - "type": "string" - }, - { - "description": "the version of template", - "name": "version", - "type": "string" - }, - { - "description": "the Zone ID for the router", - "name": "zoneid", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the template ID for the router", - "name": "templateid", - "type": "string" - }, - { - "description": "the first DNS for the router", - "name": "dns1", - "type": "string" - }, - { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", - "type": "string" - }, - { - "description": "the version of the code / software in the router", - "name": "softwareversion", - "type": "string" - }, - {}, - { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" - }, - { - "description": "the name of the router", - "name": "name", - "type": "string" - }, - { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", - "type": "string" - }, - { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", - "type": "string" - }, - { - "description": "the name of VPC the router belongs to", - "name": "vpcname", - "type": "string" - }, - { - "description": "the list of nics associated with the router", - "name": "nic", - "response": [ - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - } - ], - "type": "set" - }, - { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - }, - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - }, - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - } - ], - "type": "list" - }, - {}, - { - "description": "the guest IP address for the router", - "name": "guestipaddress", - "type": "string" - }, - { - "description": "the domain ID associated with the router", - "name": "domainid", - "type": "string" - }, - { - "description": "the Zone name for the router", - "name": "zonename", - "type": "string" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the link local IP address for the router", - "name": "linklocalip", - "type": "string" - }, - { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", - "type": "string" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", - "type": "string" - }, - { - "description": "the guest netmask for the router", - "name": "guestnetmask", - "type": "string" - }, - { - "description": "the project name of the address", - "name": "project", - "type": "string" - }, - { - "description": "the Pod name for the router", - "name": "podname", - "type": "string" - }, - { - "description": "the hostname for the router", - "name": "hostname", - "type": "string" - }, - { - "description": "path of the Domain the router belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the template name for the router", - "name": "templatename", - "type": "string" - }, - { - "description": "the gateway for the router", - "name": "gateway", - "type": "string" - }, - { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" - }, - { - "description": "the public IP address for the router", - "name": "publicip", - "type": "string" - }, - { - "description": "the state of the router", - "name": "state", - "type": "state" - }, - { - "description": "VPC the router belongs to", - "name": "vpcid", - "type": "string" - }, - { - "description": "the domain associated with the router", - "name": "domain", - "type": "string" - }, - { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", - "type": "string" - }, - { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "the public MAC address for the router", - "name": "publicmacaddress", - "type": "string" - }, - { - "description": "the account associated with the router", - "name": "account", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the version of scripts", - "name": "scriptsversion", - "type": "string" - }, - { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" - }, - { - "description": "the date and time the router was created", - "name": "created", - "type": "date" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the state of redundant virtual router", - "name": "redundantstate", - "type": "string" - }, - { - "description": "role of the domain router", - "name": "role", - "type": "string" - }, - { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", - "type": "string" - }, - { - "description": "the public netmask for the router", - "name": "publicnetmask", - "type": "string" - } - ] - }, - { - "description": "Resets a configuration. The configuration will be set to default value for global setting, and removed from account_details or domain_details for Account/Domain settings", - "isasync": false, - "name": "resetConfiguration", - "params": [ - { - "description": "the ID of the Account to reset the parameter value for corresponding account", - "length": 255, - "name": "accountid", - "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Storage pool to reset the parameter value for corresponding storage pool", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Zone to reset the parameter value for corresponding zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the name of the configuration", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "the ID of the Domain to reset the parameter value for corresponding domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Image Store to reset the parameter value for corresponding image store", - "length": 255, - "name": "imagestoreid", - "related": "addSecondaryStorage,addSwift,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,updateCloudToUseObjectStore", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Cluster to reset the parameter value for corresponding cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" - } - ], - "related": "listConfigurations,updateConfiguration", - "response": [ - { - "description": "the subgroup of the configuration", - "name": "subgroup", - "type": "string" - }, - { - "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated", - "name": "scope", - "type": "string" - }, - {}, - { - "description": "the type of the configuration value", - "name": "type", - "type": "string" - }, - { - "description": "the value of the configuration", - "name": "value", - "type": "string" - }, - { - "description": "the default value of the configuration", - "name": "defaultvalue", - "type": "string" - }, - { - "description": "the description of the configuration", - "name": "description", + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "true if the configuration is dynamic", - "name": "isdynamic", + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", "type": "boolean" }, { - "description": "the component of the configuration", - "name": "component", - "type": "string" - }, - {}, - { - "description": "the group of the configuration", - "name": "group", - "type": "string" - }, - { - "description": "the name of the configuration", - "name": "name", - "type": "string" - }, - { - "description": "the possible options of the configuration value", - "name": "options", - "type": "string" - }, - { - "description": "the category of the configuration", - "name": "category", - "type": "string" - }, - { - "description": "the value of the configuration", - "name": "id", - "type": "long" - }, - { - "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": "the display text of the configuration", - "name": "displaytext", - "type": "string" - }, - { - "description": "the name of the parent configuration", - "name": "parent", - "type": "string" - } - ], - "since": "4.16.0" - }, - { - "description": "Creates an autoscale policy for a provision or deprovision action, the action is taken when the all the conditions evaluates to true for the specified duration. The policy is in effect once it is attached to a autscale vm group.", - "isasync": true, - "name": "createAutoScalePolicy", - "params": [ - { - "description": "the name of the autoscale policy", - "length": 255, - "name": "name", - "required": false, - "since": "4.18.0", - "type": "string" - }, - { - "description": "the cool down period in which the policy should not be evaluated after the action has been taken", - "length": 255, - "name": "quiettime", - "required": false, - "type": "integer" - }, - { - "description": "the list of IDs of the conditions that are being evaluated on every interval", - "length": 255, - "name": "conditionids", - "related": "createCondition,listConditions", - "required": true, - "type": "list" - }, - { - "description": "the duration in which the conditions have to be true before action is taken", - "length": 255, - "name": "duration", - "required": true, - "type": "integer" - }, - { - "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", - "length": 255, - "name": "action", - "required": true, - "type": "string" - } - ], - "related": "listAutoScalePolicies,updateAutoScalePolicy", - "response": [ - { - "description": "the duration for which the conditions have to be true before action is taken", - "name": "duration", - "type": "integer" - }, - { - "description": "the account owning the autoscale policy", - "name": "account", - "type": "string" - }, - { - "description": "the domain name of the autoscale policy", - "name": "domain", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the autoscale policy ID", - "name": "id", - "type": "string" - }, - { - "description": "the project id autoscale policy", - "name": "projectid", - "type": "string" - }, - { - "description": "name of the autoscale policy", - "name": "name", - "type": "string" - }, - { - "description": "the project name of the autoscale policy", - "name": "project", - "type": "string" - }, - { - "description": "path of the domain to which the autoscale policy belongs", - "name": "domainpath", - "type": "string" - }, - {}, - { - "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", - "name": "action", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the domain ID of the autoscale policy", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of IDs of the conditions that are being evaluated on every interval", - "name": "conditions", - "type": "list" - }, - {}, - { - "description": "the cool down period for which the policy should not be evaluated after the action has been taken", - "name": "quiettime", - "type": "integer" - } - ] - }, - { - "description": "Removes stratosphere ssp server", - "isasync": false, - "name": "deleteStratosphereSsp", - "params": [ - { - "description": "the host ID of ssp server", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "CPU Arch of the host", + "name": "arch", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" - } - ] - }, - { - "description": "Lists Usage Server metrics", - "isasync": false, - "name": "listUsageServerMetrics", - "params": [], - "related": "", - "response": [ + }, { - "description": "the time these statistics were collected", - "name": "collectiontime", + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" + }, + { + "description": "the date and time the host was last pinged", + "name": "lastpinged", "type": "date" }, {}, { - "description": "the name of the active usage server", - "name": "hostname", + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "the last time a usage job successfully completed", - "name": "lastsuccessfuljob", - "type": "date" + "description": "the Pod name of the host", + "name": "podname", + "type": "string" }, - {}, { - "description": "the last time this Usage Server checked for jobs", - "name": "lastheartbeat", - "type": "date" + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the cluster ID of the host", + "name": "clusterid", + "type": "string" }, { - "description": "the state of the usage server", - "name": "state", - "type": "state" + "description": "the amount of the host's CPU currently used", + "name": "cpuused", + "type": "string" } - ], - "since": "4.17.0" + ] }, { - "description": "Enables HA for a zone", - "isasync": true, - "name": "enableHAForZone", + "description": "Deletes a storage pool.", + "isasync": false, + "name": "deleteStoragePool", "params": [ { - "description": "ID of the zone", + "description": "Storage pool id", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", "required": true, "type": "uuid" + }, + { + "description": "Force destroy storage pool (force expunge volumes in Destroyed state as a part of pool removal)", + "length": 255, + "name": "forced", + "required": false, + "type": "boolean" } ], "response": [ - { - "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": "any text associated with the success or failure", "name": "displaytext", "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ], - "since": "4.11" - }, - { - "description": "Cleanups VM reservations in the database.", - "isasync": true, - "name": "cleanVMReservations", - "params": [], - "response": [ - { - "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": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {}, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" } ] }, { - "description": "Updates Routing firewall rule with specified ID", + "description": "Deletes an existing guest network IPv6 prefix.", "isasync": true, - "name": "updateRoutingFirewallRule", + "name": "deleteGuestNetworkIpv6Prefix", "params": [ { - "description": "an optional field, whether to the display the Routing firewall rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "type": "boolean" - }, - { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", - "type": "string" - }, - { - "description": "the ID of the Routing firewall rule", + "description": "Id of the guest network IPv6 prefix", "length": 255, "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", + "related": "createGuestNetworkIpv6Prefix,listGuestNetworkIpv6Prefixes", "required": true, "type": "uuid" } ], - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", "response": [ - {}, - { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", - "type": "string" - }, {}, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", - "type": "string" - }, - { - "description": "the state of the rule", - "name": "state", - "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": "the VM name for the port forwarding rule", - "name": "virtualmachinename", - "type": "string" - }, - { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", - "type": "string" - }, - { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the ID of the port forwarding rule", - "name": "id", - "type": "string" - }, - { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the protocol of the port forwarding rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", - "type": "string" - }, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, - { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" } ], - "since": "4.20.0" + "since": "4.17.0.0" }, { - "description": "Lists object storage pools.", + "description": "Updates a storage pool.", "isasync": false, - "name": "listObjectStoragePools", + "name": "updateStoragePool", "params": [ { - "description": "List by keyword", + "description": "the Id of the storage pool", "length": 255, - "name": "keyword", + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", + "required": true, + "type": "uuid" + }, + { + "description": "the details for the storage pool", + "length": 255, + "name": "details", "required": false, - "type": "string" + "since": "4.19.0", + "type": "map" }, { - "description": "the name of the object store", + "description": "Change the name of the storage pool", "length": 255, "name": "name", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", "required": false, + "since": "4.15", "type": "string" }, { - "description": "the object store provider", + "description": "IOPS CloudStack can provision from this storage pool", "length": 255, - "name": "provider", + "name": "capacityiops", + "required": false, + "type": "long" + }, + { + "description": "comma-separated list of tags for the storage pool", + "length": 255, + "name": "tags", + "required": false, + "type": "list" + }, + { + "description": "the URL of the storage pool", + "length": 255, + "name": "url", "required": false, + "since": "4.19.0", "type": "string" }, { - "description": "the ID of the storage pool", + "description": "Whether the informed tag is a JS interpretable rule or not.", "length": 255, - "name": "id", - "related": "addObjectStoragePool,listObjectStoragePools,updateObjectStoragePool", + "name": "istagarule", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "", + "description": "false to disable the pool for allocation of new volumes, true to enable it back.", "length": 255, - "name": "page", + "name": "enabled", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "", + "description": "bytes CloudStack can provision from this storage pool", "length": 255, - "name": "pagesize", + "name": "capacitybytes", "required": false, - "type": "integer" + "type": "long" } ], - "related": "addObjectStoragePool,updateObjectStoragePool", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "response": [ { - "description": "the provider name of the object store", - "name": "providername", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" }, { - "description": "the url of the object store", - "name": "url", + "description": "the Pod ID of the storage pool", + "name": "podid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Storage provider for this pool", + "name": "provider", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the Zone ID of the storage pool", + "name": "zoneid", + "type": "string" }, { - "description": "the object store currently used size", - "name": "storageused", + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", "type": "long" }, { - "description": "the total size of the object store", - "name": "storagetotal", + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", + "type": "boolean" + }, + { + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", "type": "long" }, { - "description": "the ID of the object store", - "name": "id", + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "the name of the object store", - "name": "name", + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the storage pool type", + "name": "type", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "create secondary staging store.", - "isasync": false, - "name": "createSecondaryStagingStore", - "params": [ + }, { - "description": "the URL for the staging store", - "length": 2048, - "name": "url", - "required": true, + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" + }, + {}, + { + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, { - "description": "the scope of the staging store: zone only for now", - "length": 255, - "name": "scope", - "required": false, + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" + }, + { + "description": "the name of the storage pool", + "name": "name", "type": "string" }, { - "description": "the staging store provider name", - "length": 255, - "name": "provider", - "required": false, + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "the Zone ID for the staging store", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", + "type": "string" }, { - "description": "the details for the staging store", - "length": 255, - "name": "details", - "required": false, + "description": "the storage pool custom stats", + "name": "storagecustomstats", "type": "map" - } - ], - "related": "addSecondaryStorage,addSwift,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", - "response": [ + }, { "description": "the host's currently used disk size", "name": "disksizeused", "type": "long" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" }, { - "description": "the url of the image store", - "name": "url", + "description": "the storage pool path", + "name": "path", "type": "string" }, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", "type": "string" }, - {}, { - "description": "the name of the image store", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" - }, - {}, - { - "description": "the ID of the image store", - "name": "id", - "type": "string" + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" }, { - "description": "the Zone ID of the image store", - "name": "zoneid", + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", "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", - "name": "jobid", - "type": "string" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the tags for the storage pool", + "name": "tags", + "type": "string" }, { - "description": "the protocol of the image store", - "name": "protocol", + "description": "the scope of the storage pool", + "name": "scope", "type": "string" } - ] + ], + "since": "3.0.0" }, { - "description": "Remove a VMware datacenter from a zone.", - "isasync": false, - "name": "removeVmwareDc", + "description": "Reboots a system VM.", + "isasync": true, + "name": "rebootSystemVm", "params": [ { - "description": "The id of Zone from which VMware datacenter has to be removed.", + "description": "The ID of the system virtual machine", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "id", + "related": "destroySystemVm,listSystemVms,migrateSystemVm,rebootSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", "required": true, "type": "uuid" + }, + { + "description": "Force reboot the system VM (System VM is Stopped and then Started)", + "length": 255, + "name": "forced", + "required": false, + "since": "4.16.0", + "type": "boolean" } ], + "related": "destroySystemVm,listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", "response": [ - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the system VM", + "name": "name", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the Pod name for the system VM", + "name": "podname", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the network domain for the system VM", + "name": "networkdomain", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the private IP address for the system VM", + "name": "privateip", + "type": "string" }, - {} - ] - }, - { - "description": "Updates load balancer health check policy", - "isasync": true, - "name": "updateLBHealthCheckPolicy", - "params": [ { - "description": "ID of load balancer health check policy", - "length": 255, - "name": "id", - "related": "createLBHealthCheckPolicy,listLBHealthCheckPolicies,updateLBHealthCheckPolicy", - "required": true, - "type": "uuid" + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", + "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", "type": "string" }, { - "description": "an optional field, whether to the display the policy to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - } - ], - "related": "createLBHealthCheckPolicy,listLBHealthCheckPolicies", - "response": [ - { - "description": "the domain of the HealthCheck policy", - "name": "domain", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the public netmask for the system VM", + "name": "publicnetmask", + "type": "string" }, { - "description": "the account of the HealthCheck policy", - "name": "account", + "description": "the template ID for the system VM", + "name": "templateid", "type": "string" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "the template name for the system VM", + "name": "templatename", "type": "string" }, { - "description": "the id of the zone the HealthCheck policy belongs to", - "name": "zoneid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, - {}, { - "description": "the domain ID of the HealthCheck policy", - "name": "domainid", + "description": "the second DNS for the system VM", + "name": "dns2", "type": "string" }, - {}, { - "description": "the list of healthcheckpolicies", - "name": "healthcheckpolicy", - "response": [ - { - "description": "Number of consecutive health check failures before declaring an instance unhealthy.", - "name": "unhealthcheckthresshold", - "type": "int" - }, - { - "description": "the description of the healthcheck policy", - "name": "description", - "type": "string" - }, - { - "description": "Time to wait when receiving a response from the health check", - "name": "responsetime", - "type": "int" - }, - { - "description": "the state of the policy", - "name": "state", - "type": "string" - }, - { - "description": "is policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "Amount of time between health checks", - "name": "healthcheckinterval", - "type": "int" - }, - { - "description": "the LB HealthCheck policy ID", - "name": "id", - "type": "string" - }, - { - "description": "the pingpath of the healthcheck policy", - "name": "pingpath", - "type": "string" - }, - { - "description": "Number of consecutive health check success before declaring an instance healthy", - "name": "healthcheckthresshold", - "type": "int" - } - ], - "type": "list" + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", "type": "string" - } - ], - "since": "4.4" - }, - { - "description": "remove Tungsten-Fabric policy", - "isasync": true, - "name": "removeTungstenFabricPolicyRule", - "params": [ + }, { - "description": "the Uuid of Tungsten-Fabric policy rule", - "length": 255, - "name": "ruleuuid", - "required": true, + "description": "the Zone name for the system VM", + "name": "zonename", "type": "string" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, - "type": "uuid" + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", + "type": "integer" }, { - "description": "the Uuid of Tungsten-Fabric policy", - "length": 255, - "name": "policyuuid", - "required": true, - "type": "string" - } - ], - "related": "createTungstenFabricPolicy,listTungstenFabricPolicy,applyTungstenFabricPolicy,removeTungstenFabricPolicy", - "response": [ - { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "the state of the system VM", + "name": "state", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", "type": "string" }, { - "description": "Tungsten-Fabric policy name", - "name": "name", + "description": "guest vlan range", + "name": "guestvlan", "type": "string" }, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "the link local IP address for the system vm", + "name": "linklocalip", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the systemvm agent version", + "name": "version", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", + "description": "the Zone ID for the system VM", "name": "zoneid", - "type": "long" + "type": "string" }, - {}, - {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Creates a load balancer rule", - "isasync": true, - "name": "createLoadBalancerRule", - "params": [ + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" + }, { - "description": "load balancer algorithm (source, roundrobin, leastconn)", - "length": 255, - "name": "algorithm", - "required": true, + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, { - "description": "the description of the load balancer rule", - "length": 4096, - "name": "description", - "required": false, + "description": "the agent state of the system VM", + "name": "agentstate", "type": "string" }, { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,). By default, all CIDRs are allowed.", - "length": 255, - "name": "cidrlist", - "required": false, - "since": "4.18.0.0", - "type": "list" + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", + "type": "string" }, { - "description": "The protocol for the LB such as tcp, udp or tcp-proxy.", - "length": 255, - "name": "protocol", - "required": false, - "type": "string" + "description": "public vlan range", + "name": "publicvlan", + "type": "list" }, + {}, { - "description": "The guest network this rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the domain ID associated with the load balancer", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" + "description": "the ID of the system VM", + "name": "id", + "type": "string" }, { - "description": "the public port from where the network traffic will be load balanced from", - "length": 255, - "name": "publicport", - "required": true, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the account associated with the load balancer. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the private port of the private IP address/virtual machine where the network traffic will be load balanced to", - "length": 255, - "name": "privateport", - "required": true, + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", "type": "integer" }, { - "description": "zone where the load balancer is going to be created. This parameter is required when LB service provider is ElasticLoadBalancerVm", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the Pod ID for the system VM", + "name": "podid", + "type": "string" }, { - "description": "public IP address ID from where the network traffic will be load balanced from", - "length": 255, - "name": "publicipid", - "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" + "description": "the host ID for the system VM", + "name": "hostid", + "type": "string" }, { - "description": "name of the load balancer rule", - "length": 255, - "name": "name", - "required": true, + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" }, { - "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. If not specified 1) defaulted to false when LB rule is being created for VPC guest network 2) in all other cases defaulted to true", - "length": 255, - "name": "openfirewall", - "required": false, - "type": "boolean" - } - ], - "related": "listLoadBalancerRules,updateLoadBalancerRule", - "response": [ - { - "description": "the list of resource tags associated with load balancer", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "list" + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", + "type": "string" }, + {}, { - "description": "the load balancer rule ID", - "name": "id", - "type": "string" + "description": "the date and time the system VM was created", + "name": "created", + "type": "date" }, { "description": "the UUID of the latest async job acting on this object", @@ -10481,605 +4142,681 @@ "type": "string" }, { - "description": "the domain ID of the load balancer rule", - "name": "domainid", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, { - "description": "the name of the load balancer", - "name": "name", + "description": "the private netmask for the system VM", + "name": "privatenetmask", "type": "string" }, { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", - "name": "cidrlist", + "description": "the public IP address for the system VM", + "name": "publicip", "type": "string" - }, + } + ] + }, + { + "description": "Import LDAP users", + "isasync": false, + "name": "importLdapUsers", + "params": [ { - "description": "the domain of the load balancer rule", - "name": "domain", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "length": 255, + "name": "timezone", + "required": false, "type": "string" }, - {}, { - "description": "the project id of the load balancer", - "name": "projectid", - "type": "string" + "description": "Creates the account under the specified role.", + "length": 255, + "name": "roleid", + "related": "createRole,importRole,listRoles,updateRole", + "required": false, + "type": "uuid" }, { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", + "description": "Specifies the group name from which the ldap users are to be imported. If no group is specified, all the users will be imported.", + "length": 255, + "name": "group", + "required": false, "type": "string" }, { - "description": "the id of the guest network the lb rule belongs to", - "name": "networkid", + "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the protocol of the loadbalanacer rule", - "name": "protocol", - "type": "string" + "description": "details for account used to store specific parameters", + "length": 255, + "name": "accountdetails", + "required": false, + "type": "map" }, { - "description": "the id of the zone the rule belongs to", - "name": "zoneid", + "description": "Specifies the domain to which the ldap users are to be imported. If no domain is specified, a domain will created using group parameter. If the group is also not specified, a domain name based on the OU information will be created. If no OU hierarchy exists, will be defaulted to ROOT domain", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "required": false, + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, - {}, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "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": "integer" }, { - "description": "the name of the zone the load balancer rule belongs to", - "name": "zonename", + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "searchLdap,listLdapUsers", + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the description of the load balancer", - "name": "description", + "description": "The authentication source for this user as known to the system or empty if the user is not yet in cloudstack.", + "name": "conflictingusersource", "type": "string" }, { - "description": "the public ip address", - "name": "publicip", + "description": "The user's principle", + "name": "principal", "type": "string" }, + {}, { - "description": "the private port", - "name": "privateport", + "description": "The user's email", + "name": "email", "type": "string" }, { - "description": "the account of the load balancer rule", - "name": "account", + "description": "The user's firstname", + "name": "firstname", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "The user's lastname", + "name": "lastname", "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "the public port", - "name": "publicport", - "type": "string" - }, - { - "description": "the public ip address id", - "name": "publicipid", + "description": "The user's username", + "name": "username", "type": "string" }, { - "description": "the project name of the load balancer", - "name": "project", + "description": "The user's domain", + "name": "domain", "type": "string" } - ] + ], + "since": "4.3.0" }, { - "description": "Import vSphere storage policies", + "description": "Moves a domain and its children to a new parent domain.", "isasync": false, - "name": "importVsphereStoragePolicies", + "name": "moveDomain", "params": [ { - "description": "ID of the zone", + "description": "The ID of the domain to be moved.", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "required": true, + "type": "uuid" + }, + { + "description": "The ID of the new parent domain of the domain to be moved.", + "length": 255, + "name": "parentdomainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "required": true, "type": "uuid" } ], - "related": "listVsphereStoragePolicies", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "response": [ { - "description": "the name of the Storage Policy", - "name": "name", + "description": "the domain ID of the parent domain", + "name": "parentdomainid", "type": "string" }, { - "description": "the ID of the Zone", - "name": "zoneid", + "description": "the total number of virtual machines available for this domain to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the ID of the Storage Policy", - "name": "id", + "description": "the total memory (in MB) owned by domain", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the path of the domain", + "name": "path", "type": "string" }, { - "description": "the identifier of the Storage Policy in vSphere DataCenter", - "name": "policyid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "the description of the Storage Policy", - "name": "description", + "description": "the total number of projects the domain can own", + "name": "projectlimit", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of cpu cores available to be created for this domain", + "name": "cpuavailable", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Disables out-of-band management for a zone", - "isasync": true, - "name": "disableOutOfBandManagementForZone", - "params": [ + "description": "The tagged resource limit and count for the domain", + "name": "taggedresources", + "type": "list" + }, { - "description": "the ID of the zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, - "type": "uuid" - } - ], - "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,enableOutOfBandManagementForZone,configureOutOfBandManagement,issueOutOfBandManagementPowerAction,changeOutOfBandManagementPassword", - "response": [ + "description": "the total number of networks available to be created for this domain", + "name": "networkavailable", + "type": "string" + }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the total primary storage space (in GiB) available to be used for this domain", + "name": "primarystorageavailable", "type": "string" }, - {}, { - "description": "the out-of-band management interface address", - "name": "address", + "description": "the total number of snapshots which can be stored by this domain", + "name": "snapshotlimit", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" + "description": "the total number of snapshots available for this domain", + "name": "snapshotavailable", + "type": "string" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the total number of cpu cores the domain can own", + "name": "cpulimit", "type": "string" }, - {}, + { + "description": "the total number of virtual machines that can be deployed by this domain", + "name": "vmlimit", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the operation result", - "name": "status", + "description": "whether the domain has one or more sub-domains", + "name": "haschild", "type": "boolean" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the total number of public ip addresses allocated for this domain", + "name": "iptotal", + "type": "long" + }, + { + "description": "the total number of templates available to be created by this domain", + "name": "templateavailable", "type": "string" }, { - "description": "the operation result description", - "name": "description", + "description": "the total volume available for this domain", + "name": "volumeavailable", "type": "string" }, { - "description": "the out-of-band management interface password", - "name": "password", + "description": "the total secondary storage space (in GiB) the domain can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "the total number of snapshots stored by this domain", + "name": "snapshottotal", + "type": "long" }, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the domain name of the parent domain", + "name": "parentdomainname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the domain", + "name": "id", "type": "string" }, { - "description": "the out-of-band management driver for the host", - "name": "driver", + "description": "the total number of vpcs available to be created for this domain", + "name": "vpcavailable", "type": "string" - } - ], - "since": "4.9.0" - }, - { - "description": "Stops a system VM.", - "isasync": true, - "name": "stopSystemVm", - "params": [ + }, { - "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" + "description": "the total number of public ip addresses this domain can acquire", + "name": "iplimit", + "type": "string" }, { - "description": "The ID of the system virtual machine", - "length": 255, - "name": "id", - "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm", - "required": true, - "type": "uuid" - } - ], - "related": "listSystemVms,migrateSystemVm,startSystemVm,changeServiceForSystemVm", - "response": [ + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" + "description": "the total number of projects being administrated by this domain", + "name": "projecttotal", + "type": "long" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by domain", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" + "description": "the total number of virtual machines deployed by this domain", + "name": "vmtotal", + "type": "long" }, {}, + {}, { - "description": "the public netmask for the system VM", - "name": "publicnetmask", - "type": "string" + "description": "the total number of templates which have been created by this domain", + "name": "templatetotal", + "type": "long" }, { - "description": "the Zone name for the system VM", - "name": "zonename", + "description": "the total secondary storage space (in GiB) available to be used for this domain", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the systemvm agent version", - "name": "version", + "description": "the total number of public ip addresses available for this domain to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", + "description": "the total number of projects available for administration by this domain", + "name": "projectavailable", "type": "string" }, { - "description": "the host ID for the system VM", - "name": "hostid", - "type": "string" + "description": "the total number of networks owned by domain", + "name": "networktotal", + "type": "long" }, { - "description": "the Pod name for the system VM", - "name": "podname", + "description": "the total number of cpu cores owned by domain", + "name": "cputotal", + "type": "long" + }, + { + "description": "the total primary storage space (in GiB) the domain can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the state of the system VM", + "description": "the state of the domain", "name": "state", "type": "string" }, { - "description": "the private netmask for the system VM", - "name": "privatenetmask", + "description": "the total memory (in MB) available to be created for this domain", + "name": "memoryavailable", "type": "string" }, { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", + "description": "the total volume which can be used by this domain", + "name": "volumelimit", "type": "string" }, { - "description": "the network domain for the system VM", - "name": "networkdomain", - "type": "string" + "description": "the date when this domain was created", + "name": "created", + "type": "date" }, { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", + "description": "the network domain", + "name": "networkdomain", "type": "string" }, - {}, { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobstatus", + "description": "the level of the domain", + "name": "level", "type": "integer" }, { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", + "description": "the total number of networks the domain can own", + "name": "networklimit", "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", - "name": "jobid", + "description": "the total number of vpcs the domain can own", + "name": "vpclimit", "type": "string" }, { - "description": "the name of the system VM", - "name": "name", - "type": "string" + "description": "details for the domain", + "name": "domaindetails", + "type": "map" }, { - "description": "the agent state of the system VM", - "name": "agentstate", + "description": "the name of the domain", + "name": "name", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the total primary storage space (in GiB) owned by domain", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" + "description": "the total volume being used by this domain", + "name": "volumetotal", + "type": "long" }, { - "description": "the system VM type", - "name": "systemvmtype", + "description": "the total number of templates which can be created by this domain", + "name": "templatelimit", "type": "string" }, { - "description": "the second DNS for the system VM", - "name": "dns2", + "description": "the total memory (in MB) the domain can own", + "name": "memorylimit", "type": "string" }, { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" + "description": "the total number of vpcs owned by domain", + "name": "vpctotal", + "type": "long" + } + ], + "since": "4.19.0.0" + }, + { + "description": "Lists all available networks.", + "isasync": false, + "name": "listNetworks", + "params": [ + { + "description": "list networks by restartRequired", + "length": 255, + "name": "restartrequired", + "required": false, + "type": "boolean" }, { - "description": "the ID of the system VM", - "name": "id", - "type": "string" + "description": "the network belongs to VPC", + "length": 255, + "name": "forvpc", + "required": false, + "type": "boolean" }, { - "description": "the private IP address for the system VM", - "name": "privateip", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "guest vlan range", - "name": "guestvlan", - "type": "string" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "the date and time the system VM was created", - "name": "created", - "type": "date" + "description": "list networks by network offering ID", + "length": 255, + "name": "networkofferingid", + "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", + "required": false, + "type": "uuid" }, { - "description": "the hostname for the system VM", - "name": "hostname", - "type": "string" + "description": "the zone ID of the network", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" + "description": "list networks available for VM deployment", + "length": 255, + "name": "canusefordeploy", + "required": false, + "type": "boolean" }, { - "description": "the template name for the system VM", - "name": "templatename", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the gateway for the system VM", - "name": "gateway", - "type": "string" + "description": "true if need to list only networks which support specifying IP ranges", + "length": 255, + "name": "specifyipranges", + "required": false, + "type": "boolean" }, { - "description": "the link local IP address for the system vm", - "name": "linklocalip", + "description": "possible values are \"account\", \"domain\", \"accountdomain\",\"shared\", and \"all\". Default value is \"all\".* account : account networks that have been registered for or created by the calling user. * domain : domain networks that have been registered for or created by the calling user. * accountdomain : account and domain networks that have been registered for or created by the calling user. * shared : networks that have been granted to the calling user by another user. * all : all networks (account, domain and shared).", + "length": 255, + "name": "networkfilter", + "required": false, + "since": "4.17.0", "type": "string" }, { - "description": "the template ID for the system VM", - "name": "templateid", + "description": "the type of the network. Supported values are: isolated, l2, shared and all", + "length": 255, + "name": "type", + "required": false, "type": "string" }, { - "description": "the Pod ID for the system VM", - "name": "podid", - "type": "string" + "description": "List networks by associated networks. Only available if create a Shared network.", + "length": 255, + "name": "associatednetworkid", + "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "since": "4.17.0", + "type": "uuid" }, { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "displaynetwork", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", - "type": "string" + "description": "flag to display the resource icon for networks", + "length": 255, + "name": "showicon", + "required": false, + "type": "boolean" }, { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" + "description": "list networks supporting certain services", + "length": 255, + "name": "supportedservices", + "required": false, + "type": "list" }, { - "description": "the first DNS for the system VM", - "name": "dns1", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" - } - ] - }, - { - "description": "Deletes an egress firewall rule", - "isasync": true, - "name": "deleteEgressFirewallRule", - "params": [ + }, { - "description": "the ID of the firewall rule", + "description": "list networks by ID", "length": 255, "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", - "required": true, + "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list networks by ACL (access control list) type. Supported values are account and domain", + "length": 255, + "name": "acltype", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the ID or VID of the network", + "length": 255, + "name": "vlan", + "required": false, + "since": "4.17.0", + "type": "string" }, - {} - ] - }, - { - "description": "Updates a VPC", - "isasync": true, - "name": "updateVPC", - "params": [ { - "description": "an optional field, whether to the display the vpc to the end user or not", + "description": "type of the traffic", "length": 255, - "name": "fordisplay", + "name": "traffictype", "required": false, - "since": "4.4", - "type": "boolean" + "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "List networks by VPC", "length": 255, - "name": "customid", + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC,createVPC,listVPCs,updateVPC,migrateVPC", "required": false, - "since": "4.4", - "type": "string" + "type": "uuid" }, { - "description": "the display text of the VPC", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "displaytext", + "name": "account", "required": false, "type": "string" }, { - "description": "MTU to be configured on the network VR's public facing interfaces", + "description": "true if network is system, false otherwise", "length": 255, - "name": "publicmtu", + "name": "issystem", "required": false, - "since": "4.18.0", - "type": "integer" + "type": "boolean" }, { - "description": "IPV4 address to be assigned to the public interface of the network router. This address must already be acquired for this VPC", + "description": "", "length": 255, - "name": "sourcenatipaddress", + "name": "page", "required": false, - "since": "4.19", - "type": "string" + "type": "integer" }, { - "description": "the id of the VPC", + "description": "makes the API's response contains only the resource count", "length": 255, - "name": "id", - "related": "createVPC,listVPCs,updateVPC,createVPC,listVPCs,updateVPC,migrateVPC", - "required": true, - "type": "uuid" + "name": "retrieveonlyresourcecount", + "required": false, + "type": "boolean" }, { - "description": "the name of the VPC", + "description": "list networks by physical network id", "length": 255, - "name": "name", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", "required": false, - "type": "string" + "type": "uuid" } ], - "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "response": [ { - "description": "the network domain of the VPC", - "name": "networkdomain", + "description": "the traffic type of the network", + "name": "traffictype", "type": "string" }, { - "description": "true if VPC is region level", - "name": "regionlevelvpc", + "description": "list networks available for vm deployment", + "name": "canusefordeploy", "type": "boolean" }, { - "description": "the list of supported services", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the list of services", "name": "service", "response": [ { @@ -11087,13 +4824,35 @@ "name": "name", "type": "string" }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, { "description": "the service provider name", "name": "provider", "response": [ { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", + "description": "the provider name", + "name": "name", "type": "string" }, { @@ -11102,9 +4861,9 @@ "type": "string" }, { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" }, { "description": "uuid of the network provider", @@ -11112,41 +4871,19 @@ "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, { "description": "services for this provider", "name": "servicelist", "type": "list" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" } ], "type": "list" @@ -11155,112 +4892,80 @@ "type": "list" }, { - "description": "the id of the VPC", - "name": "id", + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", + "type": "string" }, { - "description": "true VPC requires restart", - "name": "restartrequired", + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", "type": "boolean" }, + {}, { - "description": "the first IPv4 DNS for the VPC", - "name": "dns1", + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", "type": "string" }, - {}, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" + }, + { + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", "type": "string" }, { - "description": "the list of resource tags associated with the project", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "list" + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" }, { - "description": "the domain id of the VPC owner", - "name": "domainid", + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" + }, + { + "description": "the details of the network", + "name": "details", + "type": "map" + }, + { + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" + }, + { + "description": "path of the Domain the network belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", "type": "string" }, { - "description": "the name of the VPC", - "name": "name", + "description": "the name of the Network associated with this network", + "name": "associatednetwork", "type": "string" }, { - "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", - "name": "distributedvpcrouter", - "type": "boolean" + "description": "ACL name associated with the VPC network", + "name": "aclname", + "type": "string" + }, + { + "description": "the date this network was created", + "name": "created", + "type": "date" }, { "description": "true if the entity/resource has annotations", @@ -11268,64 +4973,139 @@ "type": "boolean" }, { - "description": "The BGP peers for the VPC", - "name": "bgppeers", + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" + }, + { + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", + "type": "string" + }, + { + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" + }, + { + "description": "ACL Id associated with the VPC network", + "name": "aclid", + "type": "string" + }, + { + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", "type": "set" }, { - "description": "MTU configured on the public interfaces of the VPC VR", - "name": "publicmtu", - "type": "integer" + "description": "The external id of the network", + "name": "externalid", + "type": "string" }, { - "description": "the second IPv6 DNS for the VPC", - "name": "ip6dns2", + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, {}, { - "description": "the list of networks belongign to the VPC", - "name": "network", - "type": "list" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the cidr the VPC", - "name": "cidr", + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", + "type": "string" + }, + { + "description": "the type of the network", + "name": "type", "type": "string" }, { "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", + "name": "ip4routes", "type": "set" }, { - "description": "state of the VPC. Can be Inactive/Enabled", - "name": "state", + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" }, { - "description": "vpc offering name the VPC is created from", - "name": "vpcofferingname", + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "is vpc for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", + "type": "string" }, { - "description": "the date this VPC was created", - "name": "created", - "type": "date" + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" }, { - "description": "the first IPv6 DNS for the VPC", - "name": "ip6dns1", + "description": "the second IPv4 DNS for the network", + "name": "dns2", "type": "string" }, { - "description": "vpc offering id the VPC is created from", - "name": "vpcofferingid", + "description": "the domain name of the network owner", + "name": "domain", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", + "type": "string" + }, + { + "description": "network offering id the network is created from", + "name": "networkofferingid", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" + }, + { + "description": "UUID of AS NUMBER", + "name": "asnumberid", + "type": "string" + }, + { + "description": "the project name of the address", + "name": "project", + "type": "string" + }, + { + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, + { + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", "type": "string" }, { @@ -11334,355 +5114,241 @@ "type": "resourceiconresponse" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the network's gateway", + "name": "gateway", "type": "string" }, { - "description": "The routes for the VPC to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "acl type - access type to the network", + "name": "acltype", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "zone id of the network", + "name": "zoneid", + "type": "string" }, { - "description": "the name of the zone the VPC belongs to", - "name": "zonename", + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", "type": "string" }, { - "description": "if this VPC has redundant router", - "name": "redundantvpcrouter", - "type": "boolean" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, { - "description": "an alternate display text of the VPC.", - "name": "displaytext", + "description": "related to what other network configuration", + "name": "related", "type": "string" }, { - "description": "the second IPv4 DNS for the VPC", - "name": "dns2", + "description": "the owner of the network", + "name": "account", "type": "string" }, { - "description": "the project id of the VPC", - "name": "projectid", + "description": "The internet protocol of network offering", + "name": "internetprotocol", + "type": "string" + }, + { + "description": "the id of the network", + "name": "id", + "type": "string" + }, + { + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" + }, + { + "description": "the first IPv4 DNS for the network", + "name": "dns1", + "type": "string" + }, + { + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the network's netmask", + "name": "netmask", "type": "string" }, { - "description": "The IPv4 routing mode of VPC", - "name": "ip4routing", + "description": "the name of the network", + "name": "name", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true network requires restart", + "name": "restartrequired", + "type": "boolean" }, { - "description": "zone id of the vpc", - "name": "zoneid", + "description": "VPC the network belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the owner of the VPC", - "name": "account", - "type": "string" + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" }, { - "description": "the project name of the VPC", - "name": "project", + "description": "name of the network offering the network is created from", + "name": "networkofferingname", "type": "string" - } - ] - }, - { - "description": "Lists all IPv6 firewall rules", - "isasync": false, - "name": "listIpv6FirewallRules", - "params": [ + }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the displaytext of the network", + "name": "displaytext", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the domain id of the network owner", + "name": "domainid", "type": "string" }, { - "description": "Lists ipv6 firewall rule with the specified ID", - "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule", - "required": false, - "type": "uuid" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", "type": "boolean" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "list ipv6 firewall rules by traffic type - ingress or egress", - "length": 255, - "name": "traffictype", - "required": false, + "description": "state of the network", + "name": "state", "type": "string" }, { - "description": "list ipv6 firewall rules by network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" + "description": "The IPv4 routing type of network", + "name": "ip4routing", + "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, - "type": "uuid" - } - ], - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,updateIpv6FirewallRule", - "response": [ - { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", - "type": "string" + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" }, { - "description": "the list of resource tags associated with the rule", + "description": "the list of resource tags associated with network", "name": "tags", "response": [ { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "resource type", + "name": "resourcetype", "type": "string" } ], "type": "list" - }, - { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", - "type": "string" - }, - { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", - "type": "string" - }, - { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", - "type": "string" - }, - { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", - "type": "string" - }, - { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", - "type": "string" - }, - {}, - { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", - "type": "string" - }, - {}, - { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", - "type": "string" - }, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", - "type": "string" - }, - { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the ID of the port forwarding rule", - "name": "id", - "type": "string" } ] }, { - "description": "List VM Schedules.", + "description": "List dedicated zones.", "isasync": false, - "name": "listVMSchedule", + "name": "listDedicatedZones", "params": [ { - "description": "List by keyword", + "description": "the ID of the domain associated with the zone", "length": 255, - "name": "keyword", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "string" - }, - { - "description": "ID of the VM for which schedule is to be defined", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, "type": "uuid" }, { - "description": "Action taken by schedule", + "description": "List by keyword", "length": 255, - "name": "action", + "name": "keyword", "required": false, "type": "string" }, @@ -11694,510 +5360,424 @@ "type": "integer" }, { - "description": "ID of VM schedule", + "description": "", "length": 255, - "name": "enabled", + "name": "pagesize", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "", + "description": "list dedicated zones by affinity group", "length": 255, - "name": "pagesize", + "name": "affinitygroupid", + "related": "createAffinityGroup,listAffinityGroups", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "ID of VM schedule", + "description": "the ID of the Zone", "length": 255, - "name": "id", - "related": "createVMSchedule,listVMSchedule,updateVMSchedule", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" + }, + { + "description": "the name of the account associated with the zone. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" } ], - "related": "createVMSchedule,updateVMSchedule", + "related": "dedicateZone", "response": [ { - "description": "Action", - "name": "action", - "type": "action" + "description": "the ID of the Zone", + "name": "zoneid", + "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the ID of VM schedule", - "name": "id", + "description": "the domain ID to which the Zone is dedicated", + "name": "domainid", "type": "string" }, + {}, { - "description": "VM schedule is enabled", - "name": "enabled", - "type": "boolean" - }, - { - "description": "ID of virtual machine", - "name": "virtualmachineid", + "description": "the Name of the Zone", + "name": "zonename", "type": "string" }, { - "description": "Cron formatted VM schedule", - "name": "schedule", + "description": "the Account Id to which the Zone is dedicated", + "name": "accountid", "type": "string" }, { - "description": "Date from which the schedule is active", - "name": "startdate", - "type": "date" - }, - { - "description": "Date after which the schedule becomes inactive", - "name": "enddate", - "type": "date" + "description": "the Dedication Affinity Group ID of the zone", + "name": "affinitygroupid", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - { - "description": "Description of VM schedule", - "name": "description", - "type": "string" - }, {}, { - "description": "Date when the schedule was created", - "name": "created", - "type": "date" - }, - { - "description": "Timezone of the schedule", - "name": "timezone", + "description": "the ID of the dedicated resource", + "name": "id", "type": "string" } - ], - "since": "4.19.0" + ] }, { - "description": "Attempts to live patch systemVMs - CPVM, SSVM ", - "isasync": true, - "name": "patchSystemVm", + "description": "Lists the pools of elastistor", + "isasync": false, + "name": "listElastistorPool", "params": [ { - "description": "patches systemVM - CPVM/SSVM with the specified ID", + "description": "the ID of the Pool", "length": 255, "name": "id", - "related": "listSystemVms,migrateSystemVm,startSystemVm,changeServiceForSystemVm", "required": false, - "type": "uuid" - }, - { - "description": "If true, initiates copy of scripts and restart of the agent, even if the scripts version matches.To be used with ID parameter only", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" + "type": "long" } ], + "related": "", "response": [ { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "the current available space of the pool", + "name": "size", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "available iops of the pool", + "name": "maxiops", + "type": "long" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the name of the storage pool", + "name": "name", + "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ], - "since": "4.17.0" - }, - { - "description": "Lists volume metrics", - "isasync": false, - "name": "listVolumesMetrics", - "params": [ - { - "description": "the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "type": "uuid" }, { - "description": "list only volumes that are encrypted", - "length": 255, - "name": "isencrypted", - "required": false, - "since": "4.19.1", - "type": "boolean" + "description": "the state of the storage pool", + "name": "state", + "type": "string" }, { - "description": "the type of disk volume", - "length": 255, - "name": "type", - "required": false, + "description": "default gateway of the pool", + "name": "gateway", "type": "string" }, + {}, { - "description": "the ID of the disk volume", - "length": 255, - "name": "id", - "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {}, { - "description": "list system VMs; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "listsystemvms", - "required": false, - "since": "4.18", - "type": "boolean" + "description": "the ID of the storage pool", + "name": "id", + "type": "string" }, { - "description": "list volumes on specified host", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": false, - "type": "uuid" - }, + "description": "controller of the pool", + "name": "controllerid", + "type": "string" + } + ] + }, + { + "description": "Releases an IP address from the account.", + "isasync": false, + "name": "releaseIpAddress", + "params": [ { - "description": "list volumes by disk offering of a service offering. If both service offering and disk offering are passed, service offering is ignored", + "description": "the ID of the public IP address to release", "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": false, - "since": "4.19.1", + "name": "id", + "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, "type": "uuid" - }, + } + ], + "response": [ { - "description": "makes the API's response contains only the resource count", - "length": 255, - "name": "retrieveonlyresourcecount", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the cluster id the disk volume belongs to", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.17" + }, + { + "description": "Updates a management network IP range. Only allowed when no IPs are allocated.", + "isasync": true, + "name": "updatePodManagementNetworkIpRange", + "params": [ { - "description": "List resources by tags (key/value pairs)", + "description": "The current starting IP address.", "length": 255, - "name": "tags", - "required": false, - "type": "map" + "name": "currentstartip", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": true, + "type": "string" }, { - "description": "the ID of the storage pool, available to ROOT admin only", + "description": "The current ending IP address.", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "since": "4.3", + "name": "currentendip", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": true, "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "UUID of POD, where the IP range belongs to.", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": true, "type": "uuid" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "state of the volume. Possible values are: Ready, Allocated, Destroy, Expunging, Expunged.", - "length": 255, - "name": "state", - "required": false, - "type": "string" - }, - { - "description": "List by keyword", + "description": "The new ending IP address.", "length": 255, - "name": "keyword", + "name": "newendip", "required": false, "type": "string" }, { - "description": "the name of the disk volume", + "description": "The new starting IP address.", "length": 255, - "name": "name", + "name": "newstartip", "required": false, "type": "string" - }, + } + ], + "response": [ { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "displayvolume", - "required": false, - "since": "4.4", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the pod id the disk volume belongs to", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list volumes by disk offering", - "length": 255, - "name": "diskofferingid", - "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", - "required": false, - "since": "4.4", - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {} + ], + "since": "4.16.0.0" + }, + { + "description": "Change the BGP peers for a network.", + "isasync": true, + "name": "changeBgpPeersForNetwork", + "params": [ { - "description": "the ID of the availability zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the IDs of the volumes, mutually exclusive with id", + "description": "Ids of the Bgp Peer. If it is empty, all BGP peers will be unlinked.", "length": 255, - "name": "ids", - "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "name": "bgppeerids", + "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForNetwork,changeBgpPeersForVpc", "required": false, - "since": "4.9", "type": "list" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "UUID of the network which the Bgp Peers are associated to.", "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" } ], - "related": "", + "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", "response": [ { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" - }, - { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" - }, - { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "name of zone to which the bgp peer belongs to.", + "name": "zonename", "type": "string" }, { - "description": "disk size in GiB", - "name": "sizegb", + "description": "the domain name of the bgp peer", + "name": "domain", "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" - }, - { - "description": "the status of the volume", - "name": "status", - "type": "string" + "description": "date when this bgp peer was created.", + "name": "created", + "type": "date" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "the project name of the bgp peer", + "name": "project", "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" - }, - { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "IPv6 address of bgp peer", + "name": "ip6address", "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the account associated with the disk volume", + "description": "the account of the bgp peer", "name": "account", "type": "string" }, + {}, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" - }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" + "description": "id of the bgp peer", + "name": "id", + "type": "string" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", "type": "string" }, - {}, { - "description": "max iops of the disk volume", - "name": "maxiops", + "description": "AS number of bgp peer", + "name": "asnumber", "type": "long" }, { - "description": "the ID of the domain associated with the disk volume", + "description": "the domain ID of the bgp peer", "name": "domainid", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, {}, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "password of bgp peer", + "name": "password", "type": "string" }, { - "description": "name of the disk volume", - "name": "name", - "type": "string" + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" - }, + "description": "IPv4 address of bgp peer", + "name": "ipaddress", + "type": "string" + } + ], + "since": "4.20.0" + }, + { + "description": "Updates firewall rule ", + "isasync": true, + "name": "updateFirewallRule", + "params": [ { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" + "description": "the ID of the firewall rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" - }, + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + } + ], + "related": "createEgressFirewallRule,createFirewallRule,listEgressFirewallRules,listFirewallRules,updateEgressFirewallRule", + "response": [ { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the network id of the firewall rule", + "name": "networkid", "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the ID of the firewall rule", + "name": "id", "type": "string" }, { - "description": "the list of resource tags associated", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -12206,478 +5786,214 @@ "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" } ], - "type": "set" - }, - { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" - }, - { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", - "type": "string" - }, - { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" - }, - { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" - }, - { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", - "type": "string" - }, - { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" - }, - { - "description": "ID of the disk offering", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "the path of the volume", - "name": "path", - "type": "string" - }, - { - "description": "cluster name where the volume is allocated", - "name": "clustername", - "type": "string" - }, - { - "description": "pod name of the volume", - "name": "podname", - "type": "string" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" - }, - { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" - }, - { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", - "type": "string" - }, - { - "description": "the chain info of the volume", - "name": "chaininfo", - "type": "string" - }, - { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "name of the virtual machine", - "name": "vmname", - "type": "string" - }, - { - "description": "name of the disk offering", - "name": "diskofferingname", - "type": "string" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" - }, - { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", - "type": "string" - }, - { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" - }, - { - "description": "ID of the disk volume", - "name": "id", - "type": "string" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "the project name of the vpn", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" - }, - { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", - "type": "string" - }, - { - "description": "cluster id of the volume", - "name": "clusterid", - "type": "string" + "type": "list" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", - "type": "string" + "description": "the ending port of firewall rule's port range", + "name": "endport", + "type": "integer" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", - "type": "string" + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the traffic type for the firewall rule", + "name": "traffictype", "type": "string" }, { - "description": "the total disk iops", - "name": "diskiopstotal", - "type": "long" + "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", + "name": "destcidrlist", + "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the protocol of the firewall rule", + "name": "protocol", + "type": "string" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "the state of the rule", + "name": "state", "type": "string" }, + {}, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the public ip address for the firewall rule", + "name": "ipaddress", "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "the public ip address id for the firewall rule", + "name": "ipaddressid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the starting port of firewall rule's port range", + "name": "startport", "type": "integer" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" + }, + { + "description": "is rule for display to the regular user", + "name": "fordisplay", "type": "boolean" - } + }, + {} ], - "since": "4.9.3" + "since": "4.4" }, { - "description": "Lists all possible details and their options for a resource type such as a VM or a template", + "description": "Return true if the plugin is enabled", "isasync": false, - "name": "listDetailOptions", - "params": [ - { - "description": "the UUID of the resource (optional)", - "length": 255, - "name": "resourceid", - "required": false, - "type": "string" - }, - { - "description": "the resource type such as UserVm, Template etc.", - "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" - } - ], + "name": "quotaIsEnabled", + "params": [], "related": "", "response": [ - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "is quota service enabled", + "name": "isenabled", + "type": "boolean" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Map of all possible details and their possible list of values", - "name": "details", - "type": "map" - } + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + {} ], - "since": "4.13" + "since": "4.7.0" }, { - "description": "Lists SSL certificates", + "description": "Deletes the registered OAuth provider", "isasync": false, - "name": "listSslCerts", + "name": "deleteOauthProvider", "params": [ { - "description": "ID of SSL certificate", - "length": 255, - "name": "certid", - "related": "uploadSslCert,listSslCerts", - "required": false, - "type": "uuid" - }, - { - "description": "Load balancer rule ID", - "length": 255, - "name": "lbruleid", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,updateIpv6FirewallRule", - "required": false, - "type": "uuid" - }, - { - "description": "Project that owns the SSL certificate", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - }, - { - "description": "Account ID", + "description": "id of the OAuth provider to be deleted", "length": 255, - "name": "accountid", - "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, + "name": "id", + "related": "listOauthProvider,verifyOAuthCodeAndGetUser,updateOauthProvider", + "required": true, "type": "uuid" } ], - "related": "uploadSslCert", "response": [ - { - "description": "the domain name of the network owner", - "name": "domain", - "type": "string" - }, - { - "description": "certificate chain", - "name": "certchain", - "type": "string" - }, - { - "description": "SSL certificate ID", - "name": "id", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + {}, { - "description": "the project id of the certificate", - "name": "projectid", - "type": "string" - }, - { - "description": "List of loabalancers this certificate is bound to", - "name": "loadbalancerrulelist", - "type": "list" - }, - { - "description": "name", - "name": "name", - "type": "string" - }, - { - "description": "the project name of the certificate", - "name": "project", - "type": "string" - }, - { - "description": "certificate", - "name": "certificate", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, {}, { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - }, - {}, - { - "description": "account for the certificate", - "name": "account", - "type": "string" - }, - { - "description": "certificate fingerprint", - "name": "fingerprint", - "type": "string" } - ] + ], + "since": "4.19.0" }, { - "description": "List private gateways", - "isasync": false, - "name": "listPrivateGateways", + "description": "Creates a Bgp Peer for a zone.", + "isasync": true, + "name": "createBgpPeer", "params": [ { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "list gateways by vpc", - "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", - "required": false, - "type": "uuid" - }, - { - "description": "", + "description": "The AS number of the Bgp Peer.", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "asnumber", + "required": true, + "type": "long" }, { - "description": "list only resources belonging to the domain specified", + "description": "UUID of the zone which the Bgp Peer belongs to.", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": false, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, "type": "uuid" }, { - "description": "list gateways by ip address", - "length": 255, - "name": "ipaddress", - "required": false, - "type": "string" - }, - { - "description": "list gateways by state", + "description": "The IPv6 address of the Bgp Peer.", "length": 255, - "name": "state", + "name": "ip6address", "required": false, "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "project who will own the Bgp Peer", "length": 255, "name": "projectid", "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", @@ -12685,834 +6001,276 @@ "type": "uuid" }, { - "description": "list private gateway by id", - "length": 255, - "name": "id", - "related": "createPrivateGateway,listPrivateGateways,createPrivateGateway,listPrivateGateways", - "required": false, - "type": "uuid" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "The password of the Bgp Peer.", "length": 255, - "name": "isrecursive", + "name": "password", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "List by keyword", + "description": "account who will own the Bgp Peer", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" }, { - "description": "", + "description": "The IPv4 address of the Bgp Peer.", "length": 255, - "name": "pagesize", + "name": "ipaddress", "required": false, - "type": "integer" + "type": "string" }, { - "description": "list gateways by vlan", + "description": "BGP peer details in key/value pairs.", "length": 255, - "name": "vlan", + "name": "details", "required": false, - "type": "string" + "type": "map" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "domain ID of the account owning the Bgp Peer", "length": 255, - "name": "account", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "string" + "type": "uuid" } ], - "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", + "related": "listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", "response": [ { - "description": "ACL name set for private gateway", - "name": "aclname", + "description": "IPv6 address of bgp peer", + "name": "ip6address", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "date when this bgp peer 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 account of the bgp peer", + "name": "account", + "type": "string" }, {}, { - "description": "ACL Id set for private gateway", - "name": "aclid", + "description": "the domain name of the bgp peer", + "name": "domain", "type": "string" }, { - "description": "the private gateway's netmask", - "name": "netmask", - "type": "string" + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "name of zone to which the bgp peer belongs to.", + "name": "zonename", "type": "string" }, + {}, { - "description": "the network implementation uri for the private gateway", - "name": "vlan", + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "VPC name the private gateway belongs to", - "name": "vpcname", + "description": "password of bgp peer", + "name": "password", "type": "string" }, { - "description": "the project name of the private gateway", - "name": "project", - "type": "string" + "description": "AS number of bgp peer", + "name": "asnumber", + "type": "long" }, { - "description": "VPC id the private gateway belongs to", - "name": "vpcid", + "description": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", "type": "string" }, { - "description": "the ID of the domain associated with the private gateway", + "description": "the domain ID of the bgp peer", "name": "domainid", "type": "string" }, { - "description": "the gateway", - "name": "gateway", + "description": "the project name of the bgp peer", + "name": "project", "type": "string" }, { - "description": "zone id of the private gateway", - "name": "zoneid", + "description": "IPv4 address of bgp peer", + "name": "ipaddress", "type": "string" }, { - "description": "State of the gateway, can be Creating, Ready, Deleting", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "the id of the private gateway", + "description": "id of the bgp peer", "name": "id", "type": "string" - }, - { - "description": "the domain associated with the private gateway", - "name": "domain", - "type": "string" - }, - { - "description": "the name of the zone the private gateway belongs to", - "name": "zonename", - "type": "string" - }, - { - "description": "path of the domain to which the private gateway belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "Source Nat enable status", - "name": "sourcenatsupported", - "type": "boolean" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the account associated with the private gateway", - "name": "account", - "type": "string" - }, - { - "description": "the project id of the private gateway", - "name": "projectid", - "type": "string" - }, - { - "description": "the private gateway's ip address", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the physical network id", - "name": "physicalnetworkid", - "type": "string" } - ] + ], + "since": "4.20.0" }, { - "description": "Update the default Ip of a VM Nic", + "description": "Deletes account from the project", "isasync": true, - "name": "updateVmNicIp", + "name": "deleteAccountFromProject", "params": [ { - "description": "the ID of the nic to which you want to assign private IP", + "description": "ID of the project to remove the account from", "length": 255, - "name": "nicid", - "related": "listNics", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": true, "type": "uuid" }, { - "description": "Secondary IP Address", + "description": "name of the account to be removed from the project", "length": 255, - "name": "ipaddress", - "required": false, + "name": "account", + "required": true, "type": "string" } ], - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "response": [ { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" - }, - { - "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": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, {}, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, - { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, + } + ], + "since": "3.0.0" + }, + { + "description": "List hypervisors", + "isasync": false, + "name": "listHypervisors", + "params": [ { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" - }, + "description": "the zone id for listing hypervisors.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, + {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "the state of the virtual machine", - "name": "state", + "description": "Hypervisor name", + "name": "name", "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" - }, - { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, + } + ] + }, + { + "description": "Updates the information about Guest OS", + "isasync": true, + "name": "updateGuestOs", + "params": [ { - "description": "the ID of the virtual machine", + "description": "UUID of the Guest OS", + "length": 255, "name": "id", - "type": "string" - }, - { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "related": "listOsTypes,addGuestOs,updateGuestOs", + "required": true, + "type": "uuid" }, - {}, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "Unique display name for Guest OS", + "length": 255, + "name": "osdisplayname", + "required": true, "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "Map of (key/value pairs)", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "whether this guest OS is available for end users", + "length": 255, + "name": "forDisplay", + "required": false, "type": "boolean" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" - }, + } + ], + "related": "listOsTypes,addGuestOs", + "response": [ { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the name/description of the OS type", + "name": "description", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the ID of the OS type", + "name": "id", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the name of the OS category", + "name": "oscategoryname", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" + "description": "is the guest OS visible for the users", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" + "description": "is the guest OS user defined", + "name": "isuserdefined", + "type": "boolean" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { @@ -13521,1375 +6279,1230 @@ "type": "integer" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the ID of the OS category", + "name": "oscategoryid", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the name of the OS type", + "name": "name", + "type": "string" }, + {}, + {} + ], + "since": "4.4.0" + }, + { + "description": "Lists all guest vlans", + "isasync": false, + "name": "listGuestVlans", + "params": [ { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "limits search results to allocated guest vlan. false by default.", + "length": 255, + "name": "allocatedonly", + "required": false, + "type": "boolean" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "list guest vlan by vnet", + "length": 255, + "name": "vnet", + "required": false, "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" + "description": "list guest vlan by physical network", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", + "required": false, + "type": "uuid" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" + "description": "list guest vlan by zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "list guest vlan by id", + "length": 255, + "name": "id", + "required": false, + "type": "long" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "the zone ID of the guest VLAN range", + "name": "zoneid", + "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the physical network ID of the guest VLAN range", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the allocation state of the guest VLAN", + "name": "allocationstate", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, + {}, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "path of the domain to which the guest VLAN range belongs", + "name": "domainpath", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the domain ID of the guest VLAN range", + "name": "domainid", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the physical network name of the guest VLAN range", + "name": "physicalnetworkname", "type": "string" }, + {}, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the guest VLAN", + "name": "vlan", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the domain name of the guest VLAN range", + "name": "domain", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the project name of the guest VLAN range", + "name": "project", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "date the guest VLAN was taken", + "name": "taken", + "type": "date" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", + "description": "the guest VLAN id", + "name": "id", "type": "long" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the account of the guest VLAN range", + "name": "account", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "true if the guest VLAN is dedicated to the account", + "name": "isdedicated", + "type": "boolean" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "the list of networks who use this guest VLAN", + "name": "network", + "type": "list" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the project id of the guest VLAN range", + "name": "projectid", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", + "description": "the zone name of the guest VLAN range", "name": "zonename", "type": "string" - }, + } + ], + "since": "4.17.0" + }, + { + "description": "Updates resource limits for an account or domain.", + "isasync": false, + "name": "updateResourceLimit", + "params": [ { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" + "description": "Update resource limits for all accounts in specified domain. If used with the account parameter, updates resource limits for a specified account in specified domain.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": " Maximum resource limit.", + "length": 255, + "name": "max", + "required": false, "type": "long" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "Update resource limits for project", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "Update resource for a specified account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - } - ], - "type": "set" + "description": "Type of resource to update. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 5 - Project. Number of projects a user can create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", + "length": 255, + "name": "resourcetype", + "required": true, + "type": "integer" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "Tag for the resource type", + "length": 255, + "name": "tag", + "required": false, + "since": "4.20.0", "type": "string" - }, + } + ], + "related": "listResourceLimits", + "response": [ + {}, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "path of the domain to which the resource limit belongs", + "name": "domainpath", "type": "string" }, + { + "description": "the maximum number of the resource. A -1 means the resource currently has no limit.", + "name": "max", + "type": "long" + }, {}, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the domain name of the resource limit", + "name": "domain", + "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the domain ID of the resource limit", + "name": "domainid", + "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.", + "name": "resourcetype", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the account of the resource limit", + "name": "account", + "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.", + "name": "resourcetypename", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "The tag for the resource limit", + "name": "tag", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the project name of the resource limit", + "name": "project", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the project id of the resource limit", + "name": "projectid", "type": "string" - }, + } + ] + }, + { + "description": "Dedicates an existing Bgp Peer to an account or a domain.", + "isasync": true, + "name": "dedicateBgpPeer", + "params": [ { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "account who will own the Bgp Peer", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "project who will own the Bgp Peer", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" + "description": "domain ID of the account owning the Bgp Peer", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "Id of the Bgp Peer", + "length": 255, + "name": "id", + "related": "listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", + "required": true, + "type": "uuid" + } + ], + "related": "listBgpPeers,updateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", + "response": [ + { + "description": "date when this bgp peer was created.", + "name": "created", + "type": "date" + }, + { + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "IPv4 address of bgp peer", + "name": "ipaddress", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "IPv6 address of bgp peer", + "name": "ip6address", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "name of zone to which the bgp peer belongs to.", + "name": "zonename", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "password of bgp peer", + "name": "password", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the account of the bgp peer", + "name": "account", "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the project name of the bgp peer", + "name": "project", "type": "string" }, + {}, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "id of the bgp peer", + "name": "id", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the domain name of the bgp peer", + "name": "domain", "type": "string" }, + {}, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "AS number of bgp peer", + "name": "asnumber", + "type": "long" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the domain ID of the bgp peer", + "name": "domainid", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", "type": "string" + }, + { + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" } - ] + ], + "since": "4.20.0" }, { - "description": "Starts an existing internal lb vm.", + "description": "Deletes a static route", "isasync": true, - "name": "startInternalLoadBalancerVM", + "name": "deleteStaticRoute", "params": [ { - "description": "the ID of the internal lb vm", + "description": "the ID of the static route", "length": 255, "name": "id", - "related": "destroyRouter,listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", + "related": "createStaticRoute,listStaticRoutes", "required": true, "type": "uuid" } ], - "related": "destroyRouter,listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", "response": [ + {}, { - "description": "the second DNS for the router", - "name": "dns2", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "path of the Domain the router belongs to", - "name": "domainpath", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the network domain for the router", - "name": "networkdomain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "Lists hosts metrics", + "isasync": false, + "name": "listHostsMetrics", + "params": [ { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator", + "length": 255, + "name": "hypervisor", + "required": false, "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" - }, - { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", - "type": "string" + "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]", + "length": 255, + "name": "details", + "required": false, + "type": "list" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", - "type": "string" + "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "uuid" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]", + "length": 255, + "name": "outofbandmanagementpowerstate", + "required": false, "type": "string" }, { - "description": "the list of nics associated with the router", - "name": "nic", - "response": [ - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the project name of the address", - "name": "project", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the id of the router", - "name": "id", - "type": "string" + "description": "the Zone ID for the host", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the name of the router", - "name": "name", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]", + "length": 255, + "name": "resourcestate", + "required": false, "type": "string" }, { - "description": "the state of the router", + "description": "the state of the host", + "length": 255, "name": "state", - "type": "state" - }, - { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - }, - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "required": false, "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the host type", + "length": 255, + "name": "type", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the hostname for the router", - "name": "hostname", - "type": "string" + "description": "if true, list only hosts dedicated to HA", + "length": 255, + "name": "hahost", + "required": false, + "type": "boolean" }, { - "description": "VPC the router belongs to", - "name": "vpcid", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "list hosts for which out-of-band management is enabled", + "length": 255, + "name": "outofbandmanagementenabled", + "required": false, "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the id of the host", + "length": 255, + "name": "id", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost,updateHost", + "required": false, + "type": "uuid" }, { - "description": "the public IP address for the router", - "name": "publicip", - "type": "string" + "description": "the Pod ID for the host", + "length": 255, + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": false, + "type": "uuid" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", - "type": "string" + "description": "lists hosts existing in particular cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster,listClusters,updateCluster", + "required": false, + "type": "uuid" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "the name of the host", + "length": 255, + "name": "name", + "required": false, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "CPU Arch of the host", + "name": "arch", "type": "string" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "the host version", + "name": "version", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the total memory used in GiB", + "name": "memoryusedgb", "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "the link local IP address for the router", - "name": "linklocalip", - "type": "string" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "the domain ID associated with the router", - "name": "domainid", - "type": "string" + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", - "type": "string" + "description": "memory usage disable threshold exceeded", + "name": "memorydisablethreshold", + "type": "boolean" }, { - "description": "the domain associated with the router", - "name": "domain", - "type": "string" + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" }, { - "description": "the host ID for the router", - "name": "hostid", + "description": "the total memory allocated in GiB", + "name": "memoryallocatedgb", "type": "string" }, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", - "type": "string" + "description": "memory allocated notification threshold exceeded", + "name": "memoryallocatedthreshold", + "type": "boolean" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, + {}, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", - "type": "string" + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the total cpu allocated in Ghz", + "name": "cpuallocatedghz", "type": "string" }, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", + "description": "memory usage notification threshold exceeded", + "name": "memorythreshold", "type": "boolean" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", - "type": "string" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "the date and time the router was created", - "name": "created", - "type": "date" + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", + "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "role of the domain router", - "name": "role", + "description": "system vm instances on the host", + "name": "systeminstances", "type": "string" }, - {}, { - "description": "the guest netmask for the router", - "name": "guestnetmask", - "type": "string" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "the template name for the router", - "name": "templatename", - "type": "string" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "the Zone name for the router", - "name": "zonename", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", - "type": "string" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "the Pod ID for the router", - "name": "podid", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "the first DNS for the router", - "name": "dns1", + "description": "the total cpu used in Ghz", + "name": "cpuusedghz", "type": "string" }, { - "description": "the version of template", - "name": "version", + "description": "the total memory capacity in GiB", + "name": "memorytotalgb", "type": "string" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" - } - ] - }, - { - "description": "Updates a disk offering.", - "isasync": false, - "name": "updateDiskOffering", - "params": [ - { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "iopsreadratemaxlength", - "required": false, - "since": "4.15", + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", "type": "long" }, { - "description": "burst bytes write rate of the disk offering", - "length": 255, - "name": "byteswriteratemax", - "required": false, - "since": "4.15", + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", "type": "long" }, { - "description": "ID of the disk offering", - "length": 255, - "name": "id", - "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", - "required": true, - "type": "uuid" + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" }, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "bytesreadratemaxlength", - "required": false, - "since": "4.15", - "type": "long" + "description": "the ID of the host", + "name": "id", + "type": "string" }, { - "description": "an optional field, whether to display the offering to the end user or not.", - "length": 255, - "name": "displayoffering", - "required": false, - "type": "boolean" + "description": "the date and time the host was created", + "name": "created", + "type": "date" }, { - "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", - "length": 255, - "name": "zoneid", - "required": false, - "since": "4.13", + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, { - "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", - "length": 4096, - "name": "domainid", - "required": false, - "since": "4.13", - "type": "string" + "description": "GPU cards present in the host", + "name": "gpugroup", + "response": [ + { + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + } + ], + "type": "list" + }, + { + "description": "GPU cards present in the host", + "name": "gpugroupname", + "type": "string" + } + ], + "type": "list" }, { - "description": "updates alternate display text of the disk offering with this value", - "length": 4096, - "name": "displaytext", - "required": false, + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "burst io requests write rate of the disk offering", - "length": 255, - "name": "iopswriteratemax", - "required": false, - "since": "4.15", + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", "type": "long" }, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "iopswriteratemaxlength", - "required": false, - "since": "4.15", - "type": "long" + "description": "the name of the host", + "name": "name", + "type": "string" }, { - "description": "burst requests read rate of the disk offering", - "length": 255, - "name": "iopsreadratemax", - "required": false, - "since": "4.15", + "description": "the amount of the host's memory currently used", + "name": "memoryused", "type": "long" }, { - "description": "comma-separated list of tags for the disk offering, tags should match with existing storage pool tags", - "length": 255, - "name": "tags", - "required": false, - "since": "4.15", - "type": "string" + "description": "cpu allocated disable threshold exceeded", + "name": "cpuallocateddisablethreshold", + "type": "boolean" }, { - "description": "sort key of the disk offering, integer", - "length": 255, - "name": "sortkey", - "required": false, - "type": "integer" + "description": "the Pod ID of the host", + "name": "podid", + "type": "string" }, { - "description": "bytes read rate of the disk offering", - "length": 255, - "name": "bytesreadrate", - "required": false, - "since": "4.15", - "type": "long" + "description": "the Pod name of the host", + "name": "podname", + "type": "string" }, { - "description": "bytes write rate of the disk offering", - "length": 255, - "name": "byteswriterate", - "required": false, - "since": "4.15", - "type": "long" + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", + "type": "string" }, { - "description": "io requests write rate of the disk offering", - "length": 255, - "name": "iopswriterate", - "required": false, - "since": "4.15", - "type": "long" + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" }, { - "description": "the cache mode to use for this disk offering", - "length": 255, - "name": "cachemode", - "required": false, - "since": "4.15", + "description": "network read in GiB", + "name": "networkread", "type": "string" }, { - "description": "io requests read rate of the disk offering", - "length": 255, - "name": "iopsreadrate", - "required": false, - "since": "4.15", - "type": "long" + "description": "memory allocated disable threshold exceeded", + "name": "memoryallocateddisablethreshold", + "type": "boolean" }, { - "description": "updates name of the disk offering with this value", - "length": 255, - "name": "name", - "required": false, + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "state of the disk offering", - "length": 255, - "name": "state", - "required": false, + "description": "cpu usage notification threshold exceeded", + "name": "cputhreshold", + "type": "boolean" + }, + { + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "burst bytes read rate of the disk offering", - "length": 255, - "name": "bytesreadratemax", - "required": false, - "since": "4.15", - "type": "long" + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" }, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "byteswriteratemaxlength", - "required": false, - "since": "4.15", + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", "type": "long" - } - ], - "related": "createDiskOffering,listDiskOfferings", - "response": [ - { - "description": "an alternate display text of the disk offering.", - "name": "displaytext", - "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesWriteRateMaxLength", - "type": "long" + "description": "out-of-band management power state", + "name": "powerstate", + "type": "powerstate" }, { - "description": "the vsphere storage policy tagged to the disk offering in case of VMware", - "name": "vspherestoragepolicy", + "description": "the total cpu capacity in Ghz", + "name": "cputotalghz", "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 CPU number of the host", + "name": "cpunumber", + "type": "integer" }, { - "description": "the size of the disk offering in GB", - "name": "disksize", - "type": "long" + "description": "the cluster name of the host", + "name": "clustername", + "type": "string" }, { - "description": "io requests read rate of the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "cpu usage disable threshold exceeded", + "name": "cpudisablethreshold", + "type": "boolean" }, { - "description": "bytes write rate of the disk offering", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "name": "provisioningtype", + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "burst io requests write rate of the disk offering", - "name": "diskIopsWriteRateMax", - "type": "long" + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", + "type": "string" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "whether to display the offering to the end user or not.", - "name": "displayoffering", - "type": "boolean" + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" }, { - "description": "the name of the disk offering", - "name": "name", + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, { - "description": "burst bytes write rate of the disk offering", - "name": "diskBytesWriteRateMax", - "type": "long" + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the amount of the host's CPU currently used", + "name": "cpuused", "type": "string" }, + {}, { - "description": "burst io requests read rate of the disk offering", - "name": "diskIopsReadRateMax", - "type": "long" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "additional key/value details tied with this disk offering", - "name": "details", - "type": "map" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "the min iops of the disk offering", - "name": "miniops", - "type": "long" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "the storage type for this disk offering", - "name": "storagetype", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "length (in second) of the burst", - "name": "diskIopsReadRateMaxLength", - "type": "long" + "description": "the resource state of the host", + "name": "resourcestate", + "type": "string" }, { - "description": "Whether disks using this offering will be encrypted on primary storage", - "name": "encrypt", - "type": "boolean" + "description": "the average cpu load the last minute", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "unique ID of the disk offering", - "name": "id", + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if the host supports encryption", + "name": "encryptionsupported", "type": "boolean" }, { - "description": "the tags for the disk offering", - "name": "tags", + "description": "instances on the host", + "name": "instances", "type": "string" }, { - "description": "true if disk offering uses custom size, false otherwise", - "name": "iscustomized", + "description": "cpu allocated notification threshold exceeded", + "name": "cpuallocatedthreshold", "type": "boolean" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "name": "hypervisorsnapshotreserve", - "type": "integer" + "description": "the Zone name of the host", + "name": "zonename", + "type": "string" }, - {}, - {}, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "network write in GiB", + "name": "networkwrite", "type": "string" }, { - "description": "Returns true if the disk offering is suitable for the given virtual machine for disk creation otherwise false", - "name": "suitableforvirtualmachine", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the date this disk offering was created", - "name": "created", - "type": "date" + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" }, { - "description": "io requests write rate of the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesReadRateMaxLength", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "state of the disk offering", - "name": "state", - "type": "string" + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" }, { - "description": "the max iops of the disk offering", - "name": "maxiops", - "type": "long" + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", + "type": "boolean" }, { - "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", - "name": "disksizestrictness", - "type": "boolean" + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "true if disk offering uses custom iops, false otherwise", - "name": "iscustomizediops", + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", "type": "boolean" }, { - "description": "bytes read rate of the disk offering", - "name": "diskBytesReadRate", - "type": "long" + "description": "the IP address of the host", + "name": "ipaddress", + "type": "string" }, + { + "description": "the state of the host", + "name": "state", + "type": "status" + } + ], + "since": "4.9.3" + }, + { + "description": "Release the dedication for the pod", + "isasync": true, + "name": "releaseDedicatedPod", + "params": [ + { + "description": "the ID of the Pod", + "length": 255, + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": true, + "type": "uuid" + } + ], + "response": [ { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + {}, + {}, { - "description": "burst bytes read rate of the disk offering", - "name": "diskBytesReadRateMax", - "type": "long" + "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", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskIopsWriteRateMaxLength", - "type": "long" - }, - { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "name": "cacheMode", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ] }, { - "description": "Remove VMs from an ExternalManaged kubernetes cluster. Not applicable for CloudManaged kubernetes clusters.", + "description": "Lists affinity groups", "isasync": false, - "name": "removeVirtualMachinesFromKubernetesCluster", + "name": "listAffinityGroups", "params": [ { - "description": "the ID of the Kubernetes cluster", + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "list the affinity group by the ID provided", "length": 255, "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,listKubernetesClusters,scaleKubernetesCluster,upgradeKubernetesCluster", - "required": true, + "related": "createAffinityGroup,listAffinityGroups", + "required": false, + "type": "uuid" + }, + { + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "lists affinity groups by virtual machine ID", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, "type": "uuid" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "List by keyword", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "keyword", + "name": "isrecursive", "required": false, - "type": "string" + "type": "boolean" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "the IDs of the VMs to remove from the cluster", + "description": "lists affinity groups by name", "length": 255, - "name": "virtualmachineids", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "list" + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "lists affinity groups by type", + "length": 255, + "name": "type", + "required": false, + "type": "string" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" } ], - "related": "", + "related": "createAffinityGroup", "response": [ { - "description": "the id of the Kubernetes cluster", - "name": "id", + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { @@ -14898,57 +7511,85 @@ "type": "integer" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, {}, {}, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, { "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": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" } - ], - "since": "4.19.0" + ] }, { - "description": "delete Tungsten-Fabric logical router", - "isasync": true, - "name": "deleteTungstenFabricLogicalRouter", + "description": "Cancels a triggered shutdown", + "isasync": false, + "name": "cancelShutdown", "params": [ { - "description": "the ID of zone", + "description": "the uuid of the management server", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "managementserverid", + "related": "listManagementServers", "required": true, "type": "uuid" - }, - { - "description": "the uuid of Tungsten-Fabric logical router", - "length": 255, - "name": "logicalrouteruuid", - "required": true, - "type": "string" } ], + "related": "prepareForShutdown,readyForShutdown,triggerShutdown", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", + "description": "Indicates whether CloudStack is ready to shutdown", + "name": "readyforshutdown", "type": "boolean" }, - { - "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", @@ -14956,58 +7597,90 @@ "type": "integer" }, {}, + { + "description": "Indicates whether a shutdown has been triggered", + "name": "shutdowntriggered", + "type": "boolean" + }, + { + "description": "The number of jobs in progress", + "name": "pendingjobscount", + "type": "long" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" + }, + { + "description": "The id of the management server", + "name": "managementserverid", + "type": "long" } - ] + ], + "since": "4.19.0" }, { - "description": "Reset site to site vpn connection", - "isasync": true, - "name": "resetVpnConnection", + "description": "Register a public key in a keypair under a certain name", + "isasync": false, + "name": "registerSSHKeyPair", "params": [ { - "description": "an optional account for connection. Must be used with domainId.", + "description": "an optional account for the ssh key. Must be used with domainId.", "length": 255, "name": "account", "required": false, "type": "string" }, { - "description": "id of vpn connection", - "length": 255, - "name": "id", - "related": "createVpnConnection,listVpnConnections,resetVpnConnection,updateVpnConnection", + "description": "Public key material of the keypair", + "length": 5120, + "name": "publickey", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "an optional domainId for connection. If the account parameter is used, domainId must also be used.", + "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.", "length": 255, "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "an optional project for the ssh key", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" + }, + { + "description": "Name of the keypair", + "length": 255, + "name": "name", + "required": true, + "type": "string" } ], - "related": "createVpnConnection,listVpnConnections,updateVpnConnection", + "related": "listSSHKeyPairs", "response": [ { - "description": "ESP policy of the customer gateway", - "name": "esppolicy", + "description": "the domain id of the keypair owner", + "name": "domainid", "type": "string" }, { - "description": "State of vpn connection", - "name": "state", + "description": "the project name of the keypair owner", + "name": "project", "type": "string" }, + {}, + {}, { - "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", - "name": "splitconnections", - "type": "boolean" + "description": "the owner of the keypair", + "name": "account", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -15015,35 +7688,24 @@ "type": "integer" }, { - "description": "public ip address id of the customer gateway", - "name": "gateway", - "type": "string" - }, - { - "description": "the project id", + "description": "the project id of the keypair owner", "name": "projectid", "type": "string" }, { - "description": "if DPD is enabled for customer gateway", - "name": "dpd", - "type": "boolean" - }, - {}, - { - "description": "IPsec Preshared-Key of the customer gateway", - "name": "ipsecpsk", + "description": "the domain name of the keypair owner", + "name": "domain", "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "ID of the ssh keypair", + "name": "id", "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -15051,1130 +7713,1759 @@ "type": "string" }, { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" + "description": "Name of the keypair", + "name": "name", + "type": "string" }, { - "description": "the public IP address", - "name": "publicip", + "description": "Fingerprint of the public key", + "name": "fingerprint", "type": "string" - }, - {}, + } + ] + }, + { + "description": "Destroys a l2tp/ipsec remote access vpn", + "isasync": true, + "name": "deleteRemoteAccessVpn", + "params": [ { - "description": "is connection for display to the regular user", - "name": "fordisplay", + "description": "public ip address id of the vpn server", + "length": 255, + "name": "publicipid", + "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the domain id of the owner", - "name": "domainid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "IKE policy of the customer gateway", - "name": "ikepolicy", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + } + ] + }, + { + "description": "Start rolling maintenance", + "isasync": true, + "name": "startRollingMaintenance", + "params": [ + { + "description": "the IDs of the clusters to start maintenance on", + "length": 255, + "name": "clusterids", + "related": "addCluster,listClusters,updateCluster", + "required": false, + "type": "list" }, { - "description": "the vpn gateway ID", - "name": "s2svpngatewayid", - "type": "string" + "description": "optional operation timeout (in seconds) that overrides the global timeout setting", + "length": 255, + "name": "timeout", + "required": false, + "type": "integer" }, { - "description": "the owner", - "name": "account", - "type": "string" + "description": "the IDs of the zones to start maintenance on", + "length": 255, + "name": "zoneids", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "list" }, { - "description": "State of vpn connection", - "name": "passive", - "type": "boolean" + "description": "the IDs of the pods to start maintenance on", + "length": 255, + "name": "podids", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": false, + "type": "list" }, { - "description": "the connection ID", - "name": "id", - "type": "string" + "description": "if rolling mechanism should continue in case of an error", + "length": 255, + "name": "forced", + "required": false, + "type": "boolean" }, { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", - "type": "long" + "description": "the IDs of the hosts to start maintenance on", + "length": 255, + "name": "hostids", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost,updateHost", + "required": false, + "type": "list" }, { - "description": "the customer gateway ID", - "name": "s2scustomergatewayid", + "description": "the command to execute while hosts are on maintenance", + "length": 255, + "name": "payload", + "required": false, "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "the hosts skipped", + "name": "hostsskipped", + "response": [ + { + "description": "the name of the skipped host", + "name": "hostname", + "type": "string" + }, + { + "description": "the ID of the skipped host", + "name": "hostid", + "type": "string" + }, + { + "description": "the reason to skip the host", + "name": "reason", + "type": "string" + } + ], + "type": "list" }, { - "description": "the project name", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "the hosts updated", + "name": "hostsupdated", + "response": [ + { + "description": "the ID of the updated host", + "name": "hostid", + "type": "string" + }, + { + "description": "the name of the updated host", + "name": "hostname", + "type": "string" + }, + { + "description": "end date of the update on the host", + "name": "enddate", + "type": "string" + }, + { + "description": "start date of the update on the host", + "name": "startdate", + "type": "string" + }, + { + "description": "output of the maintenance script on the host", + "name": "output", + "type": "string" + } + ], + "type": "list" }, + {}, { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "in case of failure, details are displayed", + "name": "details", "type": "string" }, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", + "description": "indicates if the rolling maintenance operation was successful", + "name": "success", "type": "boolean" - } + }, + {} ] }, { - "description": "Lists Kubernetes clusters", - "isasync": false, - "name": "listKubernetesClusters", + "description": "Updates network ACL list", + "isasync": true, + "name": "updateNetworkACLList", "params": [ { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "Name of the network ACL list", "length": 255, - "name": "isrecursive", + "name": "name", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "an optional field, whether to the display the list to the end user or not", "length": 255, - "name": "listall", + "name": "fordisplay", "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "name of the Kubernetes cluster (a substring match is made against the parameter value, data for all matching Kubernetes clusters will be returned)", + "description": "the ID of the network ACL", "length": 255, - "name": "name", - "required": false, - "type": "string" + "name": "id", + "related": "createNetworkACLList,listNetworkACLLists", + "required": true, + "type": "uuid" }, { - "description": "state of the Kubernetes cluster", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "state", + "name": "customid", "required": false, + "since": "4.4", "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "Description of the network ACL list", "length": 255, - "name": "account", + "name": "description", "required": false, "type": "string" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.4" + }, + { + "description": "Reserve a public IP to an account.", + "isasync": false, + "name": "reserveIpAddress", + "params": [ + { + "description": "the ID of the domain to reserve with this IP address", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, "type": "uuid" }, { - "description": "the ID of the Kubernetes cluster", + "description": "the ID of the public IP address to reserve", "length": 255, "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,listKubernetesClusters,scaleKubernetesCluster,upgradeKubernetesCluster", - "required": false, + "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, "type": "uuid" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", + "description": "the ID of the project to reserve with this IP address", "length": 255, - "name": "pagesize", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "list only resources belonging to the domain specified", + "description": "an optional field, whether to the display the IP to the end user or not", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "name": "fordisplay", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "type of the cluster: CloudManaged, ExternalManaged", + "description": "the account to reserve with this IP address", "length": 255, - "name": "clustertype", + "name": "account", "required": false, - "since": "4.19.0", "type": "string" } ], - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster,upgradeKubernetesCluster", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", "response": [ { - "description": "the name of the service offering of the Kubernetes cluster", - "name": "serviceofferingname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "URL end point for the Kubernetes cluster", - "name": "endpoint", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", + "description": "the name of the Network where ip belongs to", + "name": "networkname", "type": "string" }, { - "description": "Whether autoscaling is enabled for the cluster", - "name": "autoscalingenabled", - "type": "boolean" - }, - { - "description": "the name of the domain in which the Kubernetes cluster exists", - "name": "domain", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "the ID of the template of the Kubernetes cluster", - "name": "templateid", + "description": "the ID of the Network associated with the IP address", + "name": "associatednetworkid", "type": "string" }, { - "description": "Minimum size of the cluster", - "name": "minsize", - "type": "long" - }, - { - "description": "the project name of the Kubernetes cluster", - "name": "project", + "description": "VPC id the ip belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the type of the cluster", - "name": "clustertype", - "type": "clustertype" + "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", + "name": "hasrules", + "type": "boolean" }, { - "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", - "name": "masternodes", - "type": "long" + "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": "date the public IP address was acquired", + "name": "allocated", + "type": "date" }, - {}, { - "description": "the id of the Kubernetes cluster", - "name": "id", + "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", + "name": "vmipaddress", "type": "string" }, { - "description": "the name of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionname", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the ID of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionid", - "type": "string" + "description": "the list of resource tags associated with ip address", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "list" }, { - "description": "the name of the network of the Kubernetes cluster", - "name": "associatednetworkname", + "description": "the VLAN associated with the IP address", + "name": "vlanname", "type": "string" }, { - "description": "the ID of the domain in which the Kubernetes cluster exists", - "name": "domainid", + "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", + "name": "purpose", "type": "string" }, { - "description": "the name of the Kubernetes cluster", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "path of the domain to which the Kubernetes cluster belongs", - "name": "domainpath", - "type": "string" + "description": "is public IP portable across the zones", + "name": "isportable", + "type": "boolean" }, { - "description": "the account associated with the Kubernetes cluster", - "name": "account", + "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "the size (worker nodes count) of the Kubernetes cluster", - "name": "size", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if range is dedicated for System VMs", + "name": "forsystemvms", "type": "boolean" }, { - "description": "the control nodes count for the Kubernetes cluster", - "name": "controlnodes", - "type": "long" + "description": "the domain ID the public IP address is associated with", + "name": "domainid", + "type": "string" }, { - "description": "the list of virtualmachine associated with this Kubernetes cluster", - "name": "virtualmachines", - "type": "list" + "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", + "name": "vlanid", + "type": "string" }, { - "description": "the name of the zone of the Kubernetes cluster", + "description": "the ID of the zone the public IP address belongs to", "name": "zoneid", "type": "string" }, { - "description": "keypair details", - "name": "keypair", + "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", + "name": "issystem", + "type": "boolean" + }, + {}, + { + "description": "virtual machine type the ip address is assigned to", + "name": "virtualmachinetype", "type": "string" }, { - "description": "Maximum size of the cluster", - "name": "maxsize", - "type": "long" + "description": "public IP address id", + "name": "id", + "type": "string" }, - {}, { - "description": "the cpu cores of the Kubernetes cluster", - "name": "cpunumber", + "description": "the name of the Network associated with the IP address", + "name": "associatednetworkname", "type": "string" }, { - "description": "the description of the Kubernetes cluster", - "name": "description", + "description": "virtual machine name the ip address is assigned to", + "name": "virtualmachinename", "type": "string" }, { - "description": "the ID of the network of the Kubernetes cluster", + "description": "is public ip for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the ID of the Network where ip belongs to", "name": "networkid", "type": "string" }, { - "description": "the memory the Kubernetes cluster", - "name": "memory", + "description": "the domain the public IP address is associated with", + "name": "domain", "type": "string" }, { - "description": "Public IP Address ID of the cluster", - "name": "ipaddressid", + "description": "true if the IP address is a source nat address, false otherwise", + "name": "issourcenat", + "type": "boolean" + }, + { + "description": "virtual machine id the ip address is assigned to", + "name": "virtualmachineid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account the public IP address is associated with", + "name": "account", "type": "string" }, { - "description": "the date when this Kubernetes cluster was created", - "name": "created", - "type": "date" + "description": "true if this ip is for static nat, false otherwise", + "name": "isstaticnat", + "type": "boolean" }, { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zonename", + "description": "path of the domain to which the public IP address belongs", + "name": "domainpath", "type": "string" }, { - "description": "URL end point for the Kubernetes cluster dashboard UI", - "name": "consoleendpoint", + "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", + "name": "state", "type": "string" }, { - "description": "the state of the Kubernetes cluster", - "name": "state", + "description": "the name of the zone the public IP address belongs to", + "name": "zonename", "type": "string" }, + {}, { - "description": "Public IP Address of the cluster", + "description": "public IP address", "name": "ipaddress", "type": "string" }, { - "description": "the ID of the service offering of the Kubernetes cluster", - "name": "serviceofferingid", + "description": "the virtual network for the IP address", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "VPC name the ip belongs to", + "name": "vpcname", "type": "string" } - ] + ], + "since": "4.17" }, { - "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", + "description": "Restore a VM to original template/ISO or new template/ISO", "isasync": true, - "name": "createAutoScaleVmGroup", + "name": "restoreVirtualMachine", "params": [ { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "lbruleid", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - }, - { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "length": 255, - "name": "maxmembers", - "required": true, - "type": "integer" - }, - { - "description": "an optional field, whether to the display the group to the end user or not", + "description": "Override root volume's size (in GB). Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided", "length": 255, - "name": "fordisplay", + "name": "rootdisksize", "required": false, - "since": "4.4", - "type": "boolean" + "since": "4.19.1", + "type": "long" }, { - "description": "the autoscale profile that contains information about the vms in the vm group.", + "description": "Override root volume's diskoffering.", "length": 255, - "name": "vmprofileid", - "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile", - "required": true, + "name": "diskofferingid", + "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "required": false, + "since": "4.19.1", "type": "uuid" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "description": "Virtual Machine ID", "length": 255, - "name": "minmembers", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, - "type": "integer" + "type": "uuid" }, { - "description": "the name of the autoscale vmgroup", + "description": "Optional field to expunge old root volume after restore.", "length": 255, - "name": "name", + "name": "expunge", "required": false, - "since": "4.18.0", - "type": "string" - }, - { - "description": "list of scaleup autoscale policies", - "length": 255, - "name": "scaleuppolicyids", - "related": "listAutoScalePolicies,updateAutoScalePolicy", - "required": true, - "type": "list" + "since": "4.19.1", + "type": "boolean" }, { - "description": "the frequency in which the performance counters to be collected", + "description": "an optional template Id to restore vm from the new template. This can be an ISO id in case of restore vm deployed using ISO", "length": 255, - "name": "interval", + "name": "templateid", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "list of scaledown autoscale policies", + "description": "used to specify the custom parameters", "length": 255, - "name": "scaledownpolicyids", - "related": "listAutoScalePolicies,updateAutoScalePolicy", - "required": true, - "type": "list" + "name": "details", + "required": false, + "since": "4.19.1", + "type": "map" } ], - "related": "disableAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "response": [ { - "description": "path of the domain to which the vm group belongs", - "name": "domainpath", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the public ip address", - "name": "publicip", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the name of the guest network the lb rule belongs to", - "name": "associatednetworkname", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the id of the guest network the lb rule belongs to", - "name": "associatednetworkid", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the date when this vm group was created", - "name": "created", - "type": "date" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the autoscale vm group ID", - "name": "id", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the lb provider of the guest network the lb rule belongs to", - "name": "lbprovider", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + } + ], + "type": "set" }, { - "description": "the frequency at which the conditions have to be evaluated", - "name": "interval", - "type": "int" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the private port", - "name": "privateport", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the account owning the vm group", - "name": "account", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "list of scaleup autoscale policies", - "name": "scaleuppolicies", - "type": "list" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the project name of the vm group", - "name": "project", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", - "name": "availablevirtualmachinecount", - "type": "int" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, { - "description": "the name of the autoscale vm group ", - "name": "name", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the current state of the AutoScale Vm Group", - "name": "state", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the load balancer rule ID", - "name": "lbruleid", - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "name": "maxmembers", - "type": "int" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the project id of the vm group", - "name": "projectid", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the domain name of the vm group", - "name": "domain", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the public ip address id", - "name": "publicipid", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "list of scaledown autoscale policies", - "name": "scaledownpolicies", - "type": "list" + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" }, { - "description": "the autoscale profile that contains information about the vms in the vm group.", - "name": "vmprofileid", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", - "name": "minmembers", - "type": "int" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the domain ID of the vm group", - "name": "domainid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, - {}, - {}, { - "description": "the public port", - "name": "publicport", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "is group for display to the regular user", - "name": "fordisplay", - "type": "boolean" - } - ] - }, - { - "description": "Change the BGP peers for a VPC.", - "isasync": true, - "name": "changeBgpPeersForVpc", - "params": [ - { - "description": "Ids of the Bgp Peer. If it is empty, all BGP peers will be unlinked.", - "length": 255, - "name": "bgppeerids", - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", - "required": false, - "type": "list" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, { - "description": "UUID of the VPC which the Bgp Peers are associated to.", - "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", - "required": true, - "type": "uuid" - } - ], - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "date when this bgp peer was created.", - "name": "created", - "type": "date" + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" }, { - "description": "the project name of the bgp peer", - "name": "project", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "State of the Service from LB rule", + "name": "servicestate", + "type": "string" }, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, + {}, { - "description": "id of the bgp peer", - "name": "id", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, {}, { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the domain name of the bgp peer", - "name": "domain", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the domain ID of the bgp peer", - "name": "domainid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, - {}, { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "password of bgp peer", - "name": "password", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the project id of the bgp peer", - "name": "projectid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "AS number of bgp peer", - "name": "asnumber", - "type": "long" - }, - { - "description": "the account of the bgp peer", - "name": "account", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "add a baremetal ping pxe server", - "isasync": true, - "name": "addBaremetalPxePingServer", - "params": [ + }, { - "description": "Pod Id", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "type of pxe device", - "length": 255, - "name": "pxeservertype", - "required": true, + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "Root directory on PING storage server", - "length": 255, - "name": "pingdir", - "required": true, + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "Credentials to reach external pxe device", - "length": 255, + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the user's name who deployed the virtual machine", "name": "username", - "required": true, "type": "string" }, + {}, { - "description": "PING storage server ip", - "length": 255, - "name": "pingstorageserverip", - "required": true, + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "Tftp root directory of PXE server", - "length": 255, - "name": "tftpdir", - "required": true, - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "Credentials to reach external pxe device", - "length": 255, - "name": "password", - "required": true, - "type": "string" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "Username of PING storage server", - "length": 255, - "name": "pingcifsusername", - "required": false, - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "URL of the external pxe device", - "length": 255, - "name": "url", - "required": true, + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": true, - "type": "uuid" + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", + "type": "string" }, { - "description": "Password of PING storage server", - "length": 255, - "name": "pingcifspassword", - "required": false, + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" - } - ], - "related": "", - "response": [ - {}, + }, { - "description": "PING storage server ip", - "name": "pingstorageserverip", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "device id of ", - "name": "id", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "Tftp root directory of PXE server", - "name": "tftpdir", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the physical network to which this external dhcp device belongs to", - "name": "physicalnetworkid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "Root directory on PING storage server", - "name": "pingdir", + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, - {}, { - "description": "name of the provider", - "name": "provider", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "url", - "name": "url", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" - } - ] - }, - { - "description": "Deletes a load balancer rule.", - "isasync": true, - "name": "deleteLoadBalancerRule", - "params": [ - { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - } - ], - "response": [ + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" - } - ] - }, - { - "description": "list portable IP ranges", - "isasync": false, - "name": "listPortableIpRanges", - "params": [ + }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "Id of the portable ip range", - "length": 255, + "description": "the ID of the virtual machine", "name": "id", - "related": "createPortableIpRange,listPortableIpRanges", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "Id of a Region", - "length": 255, - "name": "regionid", - "required": false, - "type": "integer" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "createPortableIpRange", - "response": [ + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, { - "description": "the netmask of the VLAN IP range", - "name": "netmask", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "portable IP range ID", - "name": "id", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule", - "name": "portableipaddress", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "VPC the ip belongs to", - "name": "vpcid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the account ID the portable IP address is associated with", - "name": "accountid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain ID the portable IP address is associated with", - "name": "domainid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "public IP address", - "name": "ipaddress", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the ID of the zone the public IP address belongs to", - "name": "zoneid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "Region Id in which global load balancer is created", - "name": "regionid", - "type": "integer" + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "date the portal IP address was acquired", - "name": "allocated", - "type": "date" + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "the ID of the Network where ip belongs to", - "name": "networkid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "State of the ip address. Can be: Allocating, Allocated, Releasing and Free", - "name": "state", + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" }, { - "description": "the end ip of the portable IP range", - "name": "endip", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "Region Id in which portable ip range is provisioned", - "name": "regionid", - "type": "integer" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the gateway of the VLAN IP range", - "name": "gateway", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, - {}, { - "description": "the start ip of the portable IP range", - "name": "startip", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" + }, + { + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" - } - ] - }, - { - "description": "Returns user data associated with the VM", - "isasync": false, - "name": "getVirtualMachineUserData", - "params": [ + }, { - "description": "The ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - {}, - {}, + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" + }, { - "description": "Base64 encoded VM user data", - "name": "userdata", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the ID of the virtual machine", - "name": "virtualmachineid", - "type": "string" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" } ], - "since": "4.4" + "since": "3.0.0" }, { - "description": "Updates network permissions.", + "description": "Delete one or more events.", "isasync": false, - "name": "createNetworkPermissions", + "name": "deleteEvents", "params": [ { - "description": "the network ID", + "description": "delete by event type", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" + "name": "type", + "required": false, + "type": "string" }, { - "description": "a comma delimited list of account IDs within owner's domain. If specified, \"op\" parameter has to be passed in.", + "description": "the IDs of the events", "length": 255, - "name": "accountids", - "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "name": "ids", + "related": "listEvents", "required": false, "type": "list" }, { - "description": "a comma delimited list of accounts within owner's domain. If specified, \"op\" parameter has to be passed in.", + "description": "start date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", "length": 255, - "name": "accounts", + "name": "startdate", "required": false, - "type": "list" + "type": "date" }, { - "description": "a comma delimited list of projects within owner's domain. If specified, \"op\" parameter has to be passed in.", + "description": "end date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", "length": 255, - "name": "projectids", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "enddate", "required": false, - "type": "list" + "type": "date" } ], "response": [ + {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { @@ -16183,25 +9474,28 @@ "type": "integer" }, {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } - ], - "since": "4.17.0" + ] }, { - "description": "Disables static rule for given IP address", + "description": " delete a nicira nvp device", "isasync": true, - "name": "disableStaticNat", + "name": "deleteNiciraNvpDevice", "params": [ { - "description": "the public IP address ID for which static NAT feature is being disabled", + "description": "Nicira device ID", "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "name": "nvpdeviceid", + "related": "addNiciraNvpDevice,listNiciraNvpDevices", "required": true, "type": "uuid" } @@ -16217,7 +9511,6 @@ "name": "displaytext", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -16228,108 +9521,41 @@ "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } + }, + {} ] }, { - "description": "Assigns secondary IP to NIC", + "description": "Notify provision has been done on a host. This api is for baremetal virtual router service, not for end user", "isasync": true, - "name": "addIpToNic", + "name": "notifyBaremetalProvisionDone", "params": [ { - "description": "the ID of the nic to which you want to assign private IP", + "description": "mac of the nic used for provision", "length": 255, - "name": "nicid", - "related": "listNics", + "name": "mac", "required": true, - "type": "uuid" - }, - { - "description": "Secondary IP Address", - "length": 255, - "name": "ipaddress", - "required": false, - "type": "string" + "type": "object" } ], - "related": "", "response": [ + {}, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "nicid", - "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": "the list of Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "Secondary IP address", - "name": "ipaddress", - "type": "string" - }, - {}, - { - "description": "the ID of the network", - "name": "networkid", - "type": "string" - }, - { - "description": "the ID of the vm", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the secondary private IP addr", - "name": "id", - "type": "string" - } - ] - }, - { - "description": "Delete a Ucs manager", - "isasync": false, - "name": "deleteUcsManager", - "params": [ - { - "description": "ucs manager id", - "length": 255, - "name": "ucsmanagerid", - "related": "listUcsManagers,addUcsManager", - "required": true, - "type": "uuid" - } - ], - "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", @@ -16338,191 +9564,51 @@ ] }, { - "description": "Deletes a host.", + "description": "List ucs blades", "isasync": false, - "name": "deleteHost", + "name": "listUcsBlades", "params": [ { - "description": "Force delete the host. All HA enabled vms running on the host will be put to HA; HA disabled ones will be stopped", + "description": "List by keyword", "length": 255, - "name": "forced", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "the host ID", + "description": "ucs manager id", "length": 255, - "name": "id", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", + "name": "ucsmanagerid", + "related": "listUcsManagers,addUcsManager", "required": true, "type": "uuid" }, { - "description": "Force destroy local storage on this host. All VMs created on this local storage will be destroyed", + "description": "", "length": 255, - "name": "forcedestroylocalstorage", + "name": "page", "required": false, - "type": "boolean" - } - ], - "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": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "deletes the resource icon from the specified resource(s)", - "isasync": false, - "name": "deleteResourceIcon", - "params": [ - { - "description": "type of the resource", - "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" - }, { - "description": "list of resources to upload the icon/image for", + "description": "", "length": 255, - "name": "resourceids", - "required": true, - "type": "list" + "name": "pagesize", + "required": false, + "type": "integer" } ], + "related": "associateUcsProfileToBlade", "response": [ - { - "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.16.0.0" - }, - { - "description": "Lists capabilities", - "isasync": false, - "name": "listCapabilities", - "params": [], - "related": "", - "response": [ - { - "description": "Display name for custom hypervisor", - "name": "customhypervisordisplayname", - "type": "string" - }, - {}, - { - "description": "Max allowed number of api requests within the specified interval", - "name": "apilimitmax", - "type": "integer" - }, - { - "description": "the retention time for Instances disks stats", - "name": "instancesdisksstatsretentiontime", - "type": "integer" - }, - { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", - "type": "boolean" - }, - { - "description": "the min Ram size for the service offering used by the shared filesystem instance", - "name": "sharedfsvmminramsize", - "type": "integer" - }, - { - "description": "default page size in the UI for various views, value set in the configurations", - "name": "defaultuipagesize", - "type": "long" - }, - {}, - { - "description": "minimum size that can be specified when create disk from disk offering with custom size", - "name": "customdiskofferingminsize", - "type": "long" - }, - { - "description": "true if users are allowed to force stop a vm, false otherwise", - "name": "allowuserforcestopvm", - "type": "boolean" - }, - { - "description": "the min CPU count for the service offering used by the shared filesystem instance", - "name": "sharedfsvmmincpucount", - "type": "integer" - }, - { - "description": "true if the user is allowed to view destroyed virtualmachines, false otherwise", - "name": "allowuserviewdestroyedvm", - "type": "boolean" - }, - { - "description": "the retention time for Instances stats", - "name": "instancesstatsretentiontime", - "type": "integer" - }, - { - "description": "maximum size that can be specified when create disk from disk offering with custom size", - "name": "customdiskofferingmaxsize", - "type": "long" - }, - { - "description": "true if users can see all accounts within the same domain, false otherwise", - "name": "allowuserviewalldomainaccounts", - "type": "boolean" - }, - { - "description": "true if stats are collected only for user instances, false if system instance stats are also collected", - "name": "instancesstatsuseronly", - "type": "boolean" }, { - "description": "If invitation confirmation is required when add account to project", - "name": "projectinviterequired", - "type": "boolean" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "cloudstack host id this blade associates to", + "name": "hostid", "type": "string" }, { @@ -16531,82 +9617,80 @@ "type": "integer" }, { - "description": "true if regular user is allowed to create projects", - "name": "allowusercreateprojects", - "type": "boolean" - }, - { - "description": "true if dynamic role-based api checker is enabled, false otherwise", - "name": "dynamicrolesenabled", - "type": "boolean" - }, - { - "description": "true if snapshot is supported for KVM host, false otherwise", - "name": "kvmsnapshotenabled", - "type": "boolean" - }, - { - "description": "true if the user can recover and expunge volumes, false otherwise", - "name": "allowuserexpungerecovervolume", - "type": "boolean" - }, - { - "description": "true if the user can recover and expunge virtualmachines, false otherwise", - "name": "allowuserexpungerecovervm", - "type": "boolean" - }, - { - "description": "true if experimental features for Kubernetes cluster such as Docker private registry are enabled, false otherwise", - "name": "kubernetesclusterexperimentalfeaturesenabled", - "type": "boolean" + "description": "ucs blade dn", + "name": "bladedn", + "type": "string" }, { - "description": "true if region supports elastic load balancer on basic zones", - "name": "supportELB", + "description": "ucs blade id", + "name": "id", "type": "string" }, { - "description": "true if Kubernetes Service plugin is enabled, false otherwise", - "name": "kubernetesserviceenabled", - "type": "boolean" + "description": "associated ucs profile dn", + "name": "profiledn", + "type": "string" }, { - "description": "time interval (in seconds) to reset api count", - "name": "apilimitinterval", - "type": "integer" + "description": "ucs manager id", + "name": "ucsmanagerid", + "type": "string" }, + {} + ] + }, + { + "description": "Get Volume Snapshot Details", + "isasync": false, + "name": "getVolumeSnapshotDetails", + "params": [ { - "description": "version of the cloud stack", - "name": "cloudstackversion", + "description": "CloudStack Snapshot UUID", + "length": 255, + "name": "snapshotid", + "required": true, "type": "string" - }, + } + ], + "related": "getVolumeiScsiName", + "response": [ + {}, { - "description": "true if user and domain admins can set templates to be shared, false otherwise", - "name": "userpublictemplateenabled", - "type": "boolean" + "description": "Volume iSCSI Name", + "name": "volumeiScsiName", + "type": "string" }, { - "description": "true if stats are retained for instance disks otherwise false", - "name": "instancesdisksstatsretentionenabled", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {}, { - "description": "true if region wide secondary is enabled, false otherwise", - "name": "regionsecondaryenabled", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } ] }, { - "description": "Release dedication of zone", + "description": "Deletes an ISO file.", "isasync": true, - "name": "releaseDedicatedZone", + "name": "deleteIso", "params": [ { - "description": "the ID of the Zone", + "description": "the ID of the zone of the ISO file. If not specified, the ISO will be deleted from all the zones", "length": 255, "name": "zoneid", "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the ISO file", + "length": 255, + "name": "id", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": true, "type": "uuid" } @@ -16617,6 +9701,7 @@ "name": "jobstatus", "type": "integer" }, + {}, { "description": "true if operation is executed successfully", "name": "success", @@ -16632,861 +9717,726 @@ "name": "jobid", "type": "string" }, - {}, {} ] }, { - "description": "Updates a network serviceProvider of a physical network", - "isasync": true, - "name": "updateNetworkServiceProvider", + "description": "Updates a host.", + "isasync": false, + "name": "updateHost", "params": [ { - "description": "network service provider id", + "description": "the id of Os category to update the host with", "length": 255, - "name": "id", - "related": "addNetworkServiceProvider,listNetworkServiceProviders,updateNetworkServiceProvider,listTrafficTypes", - "required": true, + "name": "oscategoryid", + "related": "listOsCategories", + "required": false, "type": "uuid" }, { - "description": "the list of services to be enabled for this physical network service provider", + "description": "Whether the informed tag is a JS interpretable rule or not.", "length": 255, - "name": "servicelist", + "name": "istagarule", "required": false, - "type": "list" + "type": "boolean" }, { - "description": "Enabled/Disabled/Shutdown the physical network service provider", + "description": "Add an annotation to this host", "length": 255, - "name": "state", + "name": "annotation", "required": false, - "type": "string" - } - ], - "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {}, - {}, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", + "since": "4.11", "type": "string" }, { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - } - ], - "since": "3.0.0" - }, - { - "description": "Check the volume for any errors or leaks and also repairs when repair parameter is passed, this is currently supported for KVM only", - "isasync": true, - "name": "checkVolume", - "params": [ - { - "description": "The ID of the volume", + "description": "the ID of the host to update", "length": 255, "name": "id", - "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost,updateHost", "required": true, "type": "uuid" }, { - "description": "parameter to repair the volume, leaks or all are the possible values", + "description": "list of tags to be added to the host", "length": 255, - "name": "repair", + "name": "hosttags", "required": false, - "type": "string" - } - ], - "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "response": [ - { - "description": "name of the disk volume", - "name": "name", - "type": "string" - }, - { - "description": "name of the disk offering", - "name": "diskofferingname", - "type": "string" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Change the name of host", + "length": 255, + "name": "name", + "required": false, + "since": "4.15", "type": "string" }, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "Change resource state of host, valid values are [Enable, Disable]. Operation may failed if host in states not allowing Enable/Disable", + "length": 255, + "name": "allocationstate", + "required": false, "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the new uri for the secondary storage: nfs://host/path", + "length": 255, + "name": "url", + "required": false, "type": "string" - }, + } + ], + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "response": [ { - "description": "ID of the disk volume", - "name": "id", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the amount of the host's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "GPU cards present in the host", + "name": "gpugroup", "response": [ { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + } + ], + "type": "list" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "GPU cards present in the host", + "name": "gpugroupname", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", "type": "long" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" + }, + { + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, {}, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", - "type": "string" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", "type": "boolean" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", + "description": "the CPU speed of the host", + "name": "cpuspeed", "type": "long" }, { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", - "type": "string" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", - "type": "string" + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", + "type": "long" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "the status of the volume", - "name": "status", - "type": "string" + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" }, + {}, { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" + }, + { + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", "type": "long" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", - "type": "string" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", - "type": "string" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", + "description": "the date and time the host was removed", + "name": "removed", "type": "date" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" - }, - { - "description": "true if volume has delete protection.", - "name": "deleteprotection", + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", "type": "boolean" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" - }, - { - "description": "pod name of the volume", - "name": "podname", + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", "type": "long" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "the Pod ID of the host", + "name": "podid", + "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", - "type": "string" + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "CPU Arch of the host", + "name": "arch", + "type": "string" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "the Pod name of the host", + "name": "podname", "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "the host version", + "name": "version", + "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "the state of the host", + "name": "state", + "type": "status" }, { - "description": "the path of the volume", - "name": "path", - "type": "string" + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" }, - {}, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } - ], - "since": "4.19.1" + ] }, { - "description": "Lists Management Server metrics", - "isasync": false, - "name": "listManagementServersMetrics", + "description": "Creates a egress firewall rule for a given network ", + "isasync": true, + "name": "createEgressFirewallRule", "params": [ { - "description": "", + "description": "the network id of the port forwarding rule", "length": 255, - "name": "page", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" + }, + { + "description": "the ending port of firewall rule", + "length": 255, + "name": "endport", "required": false, "type": "integer" }, { - "description": "the name of the management server", + "description": "the starting port of firewall rule", "length": 255, - "name": "name", + "name": "startport", "required": false, - "type": "string" + "type": "integer" }, { - "description": "include system level stats", + "description": "type of firewallrule: system/user", "length": 255, - "name": "system", - "related": "listManagementServersMetrics", + "name": "type", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "", + "description": "the cidr list to forward traffic to. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "pagesize", + "name": "destcidrlist", "required": false, - "type": "integer" + "type": "list" }, { - "description": "List by keyword", + "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.", "length": 255, - "name": "keyword", - "required": false, + "name": "protocol", + "required": true, "type": "string" }, { - "description": "the id of the management server", + "description": "error code for this icmp message", "length": 255, - "name": "id", - "related": "listManagementServers", + "name": "icmpcode", "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "The number of blocked threads", - "name": "threadsblockedcount", "type": "integer" }, { - "description": "The number of daemon threads", - "name": "threadsdaemoncount", + "description": "type of the icmp message being sent", + "length": 255, + "name": "icmptype", + "required": false, "type": "integer" }, { - "description": "Total system memory", - "name": "systemmemorytotal", - "type": "string" + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "The number of threads", - "name": "threadstotalcount", - "type": "integer" - }, + "description": "the cidr list to forward traffic from. Multiple entries must be separated by a single comma character (,).", + "length": 255, + "name": "cidrlist", + "required": false, + "type": "list" + } + ], + "related": "createFirewallRule,listEgressFirewallRules,listFirewallRules,updateEgressFirewallRule", + "response": [ { - "description": "the system load for user, and system processes and the system idle cycles", - "name": "systemcycleusage", - "type": "long[]" + "description": "the state of the rule", + "name": "state", + "type": "string" }, { - "description": "the last time the host on which this Management Server runs was booted", - "name": "lastboottime", - "type": "date" + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" }, { - "description": "Free system memory", - "name": "systemmemoryfree", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the total system cpu capacity", - "name": "systemtotalcpucycles", - "type": "double" - }, - { - "description": "the number of client sessions active on this Management Server", - "name": "sessions", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the name of the OS distribution running on the management server", - "name": "osdistribution", - "type": "string" + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" }, { - "description": "the system is running against a local database", - "name": "dbislocal", + "description": "is rule for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the IP Address for this Management Server", - "name": "serviceip", + "description": "the traffic type for the firewall rule", + "name": "traffictype", "type": "string" }, + {}, { - "description": "the name of the management server", - "name": "name", + "description": "the public ip address for the firewall rule", + "name": "ipaddress", "type": "string" }, { - "description": "The number of waiting threads", - "name": "threadswaitingcount", + "description": "the ending port of firewall rule's port range", + "name": "endport", "type": "integer" }, - { - "description": "the last time this Management Server was started", - "name": "lastserverstart", - "type": "date" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the running OS kernel version for this Management Server", - "name": "kernelversion", + "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", + "name": "destcidrlist", "type": "string" }, { - "description": "the version of the management server", - "name": "version", - "type": "string" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "list" }, {}, { - "description": "the number of agents this Management Server is responsible for", - "name": "agentcount", + "description": "the starting port of firewall rule's port range", + "name": "startport", "type": "integer" }, { - "description": "the current cpu load", - "name": "cpuload", - "type": "string" - }, - { - "description": "the amount of memory used by this Management Server", - "name": "heapmemoryused", - "type": "long" - }, - { - "description": "Virtual size of the fully loaded process", - "name": "systemmemoryvirtualsize", + "description": "the public ip address id for the firewall rule", + "name": "ipaddressid", "type": "string" }, { - "description": "the java distribution name running the management server process", - "name": "javadistribution", + "description": "the protocol of the firewall rule", + "name": "protocol", "type": "string" }, { - "description": "the ID of the management server", + "description": "the ID of the firewall rule", "name": "id", "type": "string" }, { - "description": "Amount of memory used", - "name": "systemmemoryused", - "type": "string" - }, - { - "description": "the system has a usage server running locally", - "name": "usageislocal", - "type": "boolean" - }, - { - "description": "the state of the management server", - "name": "state", - "type": "state" - }, - { - "description": "the log files and their usage on disk", - "name": "loginfo", - "type": "string" - }, - {}, - { - "description": "the version of the java distribution running the management server process", - "name": "javaversion", - "type": "string" - }, - { - "description": "the load averages for 1 5 and 15 minutes", - "name": "systemloadaverages", - "type": "double[]" - }, - { - "description": "the number of processors available to the JVM", - "name": "availableprocessors", - "type": "integer" - }, - { - "description": "The number of runnable threads", - "name": "threadsrunnablecount", - "type": "integer" - }, - { - "description": "The number of terminated threads", - "name": "threadsteminatedcount", - "type": "integer" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the network id of the firewall rule", + "name": "networkid", "type": "string" - }, - { - "description": "the amount of memory allocated to this Management Server", - "name": "heapmemorytotal", - "type": "long" - }, - { - "description": "the time these statistics were collected", - "name": "collectiontime", - "type": "date" - }, - { - "description": "the last time this Management Server was stopped", - "name": "lastserverstop", - "type": "date" } - ], - "since": "4.17.0" + ] }, { - "description": "Removes a virtual machine or a list of virtual machines from a load balancer rule.", - "isasync": true, - "name": "removeFromLoadBalancerRule", + "description": "Lists VPC offerings", + "isasync": false, + "name": "listVPCOfferings", "params": [ { - "description": "The ID of the load balancer rule", - "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - }, - { - "description": "the list of IDs of the virtual machines that are being removed from the load balancer rule (i.e. virtualMachineIds=1,2,3)", - "length": 255, - "name": "virtualmachineids", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "type": "list" - }, - { - "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75", + "description": "List by keyword", "length": 255, - "name": "vmidipmap", + "name": "keyword", "required": false, - "since": "4.4", - "type": "map" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", "type": "string" }, - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {}, - { - "description": "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": "Lists vm groups", - "isasync": false, - "name": "listInstanceGroups", - "params": [ { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "list VPC offerings by name", "length": 255, - "name": "account", + "name": "name", "required": false, "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "list VPC offerings by state", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "name": "state", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "List by keyword", + "description": "list VPC offerings by display text", "length": 255, - "name": "keyword", + "name": "displaytext", "required": false, "type": "string" }, @@ -17498,652 +10448,662 @@ "type": "integer" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "list VPC offerings available for VPC creation in specific domain", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, + "since": "4.18", "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "", "length": 255, - "name": "listall", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "", + "description": "id of zone VPC offering is associated with", "length": 255, - "name": "page", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "integer" + "since": "4.13", + "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "true if need to list only default VPC offerings. Default value is false", "length": 255, - "name": "isrecursive", + "name": "isdefault", "required": false, "type": "boolean" }, { - "description": "list instance groups by ID", + "description": "list VPC offerings by id", "length": 255, "name": "id", - "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup", + "related": "updateVPCOffering,listVPCOfferings", "required": false, "type": "uuid" }, { - "description": "list instance groups by name", + "description": "list VPC offerings supporting certain services", "length": 255, - "name": "name", + "name": "supportedservices", "required": false, - "type": "string" + "type": "list" } ], - "related": "createInstanceGroup,updateInstanceGroup", + "related": "updateVPCOffering", "response": [ { - "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 project name of the instance group", - "name": "project", - "type": "string" - }, - { - "description": "the account owning the instance group", - "name": "account", + "description": "the internet protocol of the vpc offering", + "name": "internetprotocol", "type": "string" }, { - "description": "path of the Domain the instance group belongs to", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the name of the instance group", + "description": "the name of the vpc offering", "name": "name", "type": "string" }, { - "description": "time and date the instance group was created", - "name": "created", - "type": "date" + "description": "true if vpc offering is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, + {}, { - "description": "the project ID of the instance group", - "name": "projectid", - "type": "string" + "description": " indicates if the vpc offering supports distributed router for one-hop forwarding", + "name": "distributedvpcrouter", + "type": "boolean" }, {}, { - "description": "the ID of the instance group", - "name": "id", + "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 domain ID of the instance group", - "name": "domainid", - "type": "string" + "description": "the list of supported services", + "name": "service", + "response": [ + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + } + ], + "type": "list" + } + ], + "type": "list" }, { - "description": "the domain name of the instance group", - "name": "domain", - "type": "string" - } - ] - }, - { - "description": "Creates a static route", - "isasync": true, - "name": "createStaticRoute", - "params": [ - { - "description": "the gateway id we are creating static route for", - "length": 255, - "name": "gatewayid", - "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", - "required": true, - "type": "uuid" + "description": "indicated if the offering can support region level vpc", + "name": "supportsregionLevelvpc", + "type": "boolean" }, { - "description": "static route cidr", - "length": 255, - "name": "cidr", - "required": true, - "type": "string" - } - ], - "related": "listStaticRoutes", - "response": [ - { - "description": "VPC the static route belongs to", - "name": "vpcid", + "description": "the id of the vpc offering", + "name": "id", "type": "string" }, { - "description": "the domain associated with the static route", - "name": "domain", + "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", + "name": "networkmode", "type": "string" }, { - "description": "the ID of static route", - "name": "id", - "type": "string" + "description": "true if network offering supports choosing AS numbers", + "name": "specifyasnumber", + "type": "boolean" }, { - "description": "the account associated with the static route", - "name": "account", - "type": "string" + "description": "the date this vpc offering was created", + "name": "created", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if vpc offering can be used by NSX networks only", + "name": "fornsx", + "type": "boolean" }, { - "description": "VPC gateway the route is created for", - "name": "gatewayid", + "description": "state of the vpc offering. Can be Disabled/Enabled", + "name": "state", "type": "string" }, { - "description": "the domain path associated with the static route", - "name": "domainpath", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the project id of the static route", - "name": "projectid", + "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zoneid", "type": "string" }, { - "description": "static route CIDR", - "name": "cidr", + "description": "the routing mode for the network offering, supported types are Static or Dynamic.", + "name": "routingmode", "type": "string" }, { - "description": "the project name of the static route", - "name": "project", + "description": "an alternate display text of the vpc offering.", + "name": "displaytext", "type": "string" }, { - "description": "the ID of the domain associated with the static route", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", "name": "domainid", "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - {}, - { - "description": "the list of resource tags associated with static route", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the state of the static route", - "name": "state", - "type": "string" } ] }, { - "description": "Deletes a Private gateway", - "isasync": true, - "name": "deletePrivateGateway", + "description": "Get the SF volume size including Hypervisor Snapshot Reserve", + "isasync": false, + "name": "getSolidFireVolumeSize", "params": [ { - "description": "the ID of the private gateway", + "description": "Volume UUID", "length": 255, - "name": "id", - "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", + "name": "volumeid", "required": true, - "type": "uuid" + "type": "string" } ], + "related": "", "response": [ + {}, + { + "description": "SolidFire Volume Size Including Hypervisor Snapshot Reserve", + "name": "solidFireVolumeSize", + "type": "long" + }, {}, { "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" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {} + } ] }, { - "description": "Updates a domain with a new name", - "isasync": false, - "name": "updateDomain", + "description": "Uploads a data disk.", + "isasync": true, + "name": "uploadVolume", "params": [ { - "description": "ID of domain to update", + "description": "the ID of the disk offering. This must be a custom sized offering since during uploadVolume volume size is unknown.", "length": 255, - "name": "id", - "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", - "required": true, + "name": "diskofferingid", + "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "required": false, "type": "uuid" }, { - "description": "Network domain for the domain's networks; empty string will update domainName with NULL value", + "description": "an optional accountName. Must be used with domainId.", "length": 255, - "name": "networkdomain", + "name": "account", "required": false, "type": "string" }, { - "description": "updates domain with this name", + "description": "Upload volume for the project", "length": 255, - "name": "name", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "string" - } - ], - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "response": [ - {}, + "type": "uuid" + }, { - "description": "the total number of templates which have been created by this domain", - "name": "templatetotal", - "type": "long" + "description": "an optional domainId. If the account parameter is used, domainId must also be used. If account is NOT provided then volume will be assigned to the caller account and domain.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "the total number of projects the domain can own", - "name": "projectlimit", + "description": "the name of the volume", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the total number of virtual machines available for this domain to acquire", - "name": "vmavailable", + "description": "the URL of where the volume is hosted. Possible URL include http:// and https://", + "length": 2048, + "name": "url", + "required": true, "type": "string" }, { - "description": "the total number of cpu cores available to be created for this domain", - "name": "cpuavailable", + "description": "Image store uuid", + "length": 255, + "name": "imagestoreuuid", + "required": false, "type": "string" }, { - "description": "the state of the domain", - "name": "state", + "description": "the checksum value of this volume. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "length": 255, + "name": "checksum", + "required": false, "type": "string" }, { - "description": "the total number of projects available for administration by this domain", - "name": "projectavailable", + "description": "the format for the volume. Possible values include QCOW2, OVA, and VHD.", + "length": 255, + "name": "format", + "required": true, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, + "description": "the ID of the zone the volume is to be hosted on", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "response": [ { - "description": "the total number of snapshots stored by this domain", - "name": "snapshottotal", + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", "type": "long" }, { - "description": "the total memory (in MB) available to be created for this domain", - "name": "memoryavailable", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the domain name of the parent domain", - "name": "parentdomainname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of networks the domain can own", - "name": "networklimit", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the total number of snapshots available for this domain", - "name": "snapshotavailable", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, { - "description": "the total volume which can be used by this domain", - "name": "volumelimit", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the total volume being used by this domain", - "name": "volumetotal", - "type": "long" - }, - { - "description": "the total memory (in MB) owned by domain", - "name": "memorytotal", - "type": "long" + "description": "the date the disk volume was created", + "name": "created", + "type": "date" }, { - "description": "The tagged resource limit and count for the domain", - "name": "taggedresources", - "type": "list" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by domain", - "name": "primarystoragetotal", - "type": "long" + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" }, - {}, { - "description": "the total number of public ip addresses this domain can acquire", - "name": "iplimit", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "the total number of virtual machines deployed by this domain", - "name": "vmtotal", - "type": "long" - }, - { - "description": "the total secondary storage space (in GiB) owned by domain", - "name": "secondarystoragetotal", - "type": "float" + "description": "the status of the volume", + "name": "status", + "type": "string" }, { - "description": "the total number of public ip addresses allocated for this domain", - "name": "iptotal", - "type": "long" + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" }, { - "description": "the total number of public ip addresses available for this domain to acquire", - "name": "ipavailable", - "type": "string" + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" }, { - "description": "the total volume available for this domain", - "name": "volumeavailable", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the domain ID of the parent domain", - "name": "parentdomainid", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the name of the domain", - "name": "name", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the date when this domain was created", - "name": "created", - "type": "date" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "details for the domain", - "name": "domaindetails", - "type": "map" + "description": "name of the availability zone", + "name": "zonename", + "type": "string" }, { - "description": "the level of the domain", - "name": "level", - "type": "integer" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "the total number of templates which can be created by this domain", - "name": "templatelimit", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, + {}, { - "description": "the total number of templates available to be created by this domain", - "name": "templateavailable", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, { - "description": "the total number of networks available to be created for this domain", - "name": "networkavailable", - "type": "string" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the total number of cpu cores the domain can own", - "name": "cpulimit", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "the total primary storage space (in GiB) the domain can own", - "name": "primarystoragelimit", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the total memory (in MB) the domain can own", - "name": "memorylimit", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the total number of vpcs the domain can own", - "name": "vpclimit", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this domain", - "name": "primarystorageavailable", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the total number of vpcs owned by domain", - "name": "vpctotal", - "type": "long" + "description": "the chain info of the volume", + "name": "chaininfo", + "type": "string" }, { - "description": "the total number of networks owned by domain", - "name": "networktotal", + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", "type": "long" }, { - "description": "the total secondary storage space (in GiB) available to be used for this domain", - "name": "secondarystorageavailable", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", - "type": "string" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "the total number of cpu cores owned by domain", - "name": "cputotal", - "type": "long" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "the total number of vpcs available to be created for this domain", - "name": "vpcavailable", - "type": "string" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the total number of snapshots which can be stored by this domain", - "name": "snapshotlimit", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this domain", - "name": "vmlimit", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "the total secondary storage space (in GiB) the domain can own", - "name": "secondarystoragelimit", - "type": "string" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "whether the domain has one or more sub-domains", - "name": "haschild", + "description": "true if volume has delete protection.", + "name": "deleteprotection", "type": "boolean" }, { - "description": "the ID of the domain", - "name": "id", - "type": "string" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "the total number of projects being administrated by this domain", - "name": "projecttotal", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "the path of the domain", - "name": "path", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" - } - ] - }, - { - "description": "Disables an AutoScale Vm Group", - "isasync": true, - "name": "disableAutoScaleVmGroup", - "params": [ - { - "description": "the ID of the autoscale group", - "length": 255, - "name": "id", - "related": "disableAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", - "required": true, - "type": "uuid" - } - ], - "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", - "response": [ + }, { - "description": "the public ip address", - "name": "publicip", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "the name of the guest network the lb rule belongs to", - "name": "associatednetworkname", + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" + }, + { + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the public port", - "name": "publicport", + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "the load balancer rule ID", - "name": "lbruleid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the autoscale vm group ID", - "name": "id", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the public ip address id", - "name": "publicipid", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "the id of the guest network the lb rule belongs to", - "name": "associatednetworkid", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { @@ -18152,219 +11112,461 @@ "type": "boolean" }, { - "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", - "name": "availablevirtualmachinecount", - "type": "int" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, - {}, { - "description": "the current state of the AutoScale Vm Group", - "name": "state", - "type": "string" + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" }, { - "description": "the date when this vm group was created", - "name": "created", - "type": "date" + "description": "name of the virtual machine", + "name": "vmname", + "type": "string" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", - "name": "minmembers", - "type": "int" + "description": "the domain associated with the disk volume", + "name": "domain", + "type": "string" }, { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "name": "maxmembers", - "type": "int" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { - "description": "the domain name of the vm group", - "name": "domain", - "type": "string" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "the name of the autoscale vm group ", - "name": "name", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "the autoscale profile that contains information about the vms in the vm group.", - "name": "vmprofileid", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the account owning the vm group", - "name": "account", + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, - {}, { - "description": "is group for display to the regular user", - "name": "fordisplay", + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "list of scaledown autoscale policies", - "name": "scaledownpolicies", - "type": "list" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the project name of the vm group", - "name": "project", - "type": "string" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, { - "description": "path of the domain to which the vm group belongs", - "name": "domainpath", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "the private port", - "name": "privateport", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the frequency at which the conditions have to be evaluated", - "name": "interval", - "type": "int" + "description": "pod name of the volume", + "name": "podname", + "type": "string" }, + {}, { - "description": "the project id of the vm group", - "name": "projectid", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the domain ID of the vm group", - "name": "domainid", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "the lb provider of the guest network the lb rule belongs to", - "name": "lbprovider", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "list of scaleup autoscale policies", - "name": "scaleuppolicies", - "type": "list" + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" } ] }, { - "description": "Creates a snapshot policy for the account.", + "description": "Lists security groups", "isasync": false, - "name": "createSnapshotPolicy", + "name": "listSecurityGroups", "params": [ { - "description": "time the snapshot is scheduled to be taken. Format is:* if HOURLY, MM* if DAILY, MM:HH* if WEEKLY, MM:HH:DD (1-7)* if MONTHLY, MM:HH:DD (1-28)", + "description": "List by keyword", "length": 255, - "name": "schedule", - "required": true, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY", + "description": "list the security group by the id provided", "length": 255, - "name": "intervaltype", - "required": true, + "name": "id", + "related": "createSecurityGroup,listSecurityGroups,updateSecurityGroup", + "required": false, + "type": "uuid" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the ID of the disk volume", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "volumeid", - "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, "type": "uuid" }, { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "description": "lists security groups by name", "length": 255, - "name": "timezone", - "required": true, + "name": "securitygroupname", + "required": false, "type": "string" }, { - "description": "Map of tags (key/value pairs)", + "description": "lists security groups by virtual machine id", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "uuid" + }, + { + "description": "List resources by tags (key/value pairs)", "length": 255, "name": "tags", "required": false, "type": "map" }, { - "description": "A list of IDs of the zones in which the snapshots will be made available.The snapshots will always be made available in the zone in which the volume is present.", + "description": "", "length": 255, - "name": "zoneids", - "related": "createZone,updateZone,listZones,listZones", + "name": "page", "required": false, - "type": "list" + "type": "integer" }, { - "description": "maximum number of snapshots to retain", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "maxsnaps", - "required": true, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" + } + ], + "related": "createSecurityGroup,updateSecurityGroup", + "response": [ + {}, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + } + ], + "type": "set" }, - { - "description": "an optional field, whether to the display the policy to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - } - ], - "related": "updateSnapshotPolicy,listSnapshotPolicies", - "response": [ {}, { - "description": "maximum number of snapshots retained", - "name": "maxsnaps", - "type": "int" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" }, { - "description": "the account associated with the tag", + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", "name": "account", "type": "string" }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, { "description": "resource type", "name": "resourcetype", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -18378,13 +11580,13 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -18392,112 +11594,91 @@ "name": "domainid", "type": "string" }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, { "description": "the project name where tag belongs to", "name": "project", "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" } ], "type": "set" }, { - "description": "the ID of the snapshot policy", - "name": "id", + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { - "description": "The list of zones in which snapshot backup is scheduled", - "name": "zone", - "type": "set" - }, - { - "description": "the interval type of the snapshot policy", - "name": "intervaltype", - "type": "short" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "is this policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the project name of the group", + "name": "project", + "type": "string" }, { - "description": "the ID of the disk volume", - "name": "volumeid", + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "the time zone of the snapshot policy", - "name": "timezone", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "time the snapshot is scheduled to be taken.", - "name": "schedule", + "description": "the account owning the security group", + "name": "account", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Disables HA for a zone", - "isasync": true, - "name": "disableHAForZone", - "params": [ - { - "description": "ID of the zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the description of the security group", + "name": "description", + "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the domain name of the security group", + "name": "domain", "type": "string" } - ], - "since": "4.11" + ] }, { - "description": "Unmanage a volume on storage pool.", - "isasync": true, - "name": "unmanageVolume", + "description": "Enables a role", + "isasync": false, + "name": "enableRole", "params": [ { - "description": "The ID of the volume to unmanage", + "description": "ID of the role", "length": 255, "name": "id", - "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "createRole,importRole,listRoles,updateRole", "required": true, "type": "uuid" } @@ -18508,66 +11689,85 @@ "name": "jobstatus", "type": "integer" }, + {}, { "description": "true if operation is executed successfully", "name": "success", "type": "boolean" }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, - {} + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + } ], - "since": "4.19.1" + "since": "4.20.0" }, { - "description": "Adds an API permission to a role", + "description": "Configures a host's out-of-band management interface", "isasync": false, - "name": "createRolePermission", + "name": "configureOutOfBandManagement", "params": [ { - "description": "The description of the role permission", + "description": "the host management interface driver, for example: ipmitool", "length": 255, - "name": "description", - "required": false, + "name": "driver", + "required": true, "type": "string" }, { - "description": "ID of the role", + "description": "the ID of the host", "length": 255, - "name": "roleid", - "related": "createRole,importRole,listRoles,updateRole", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": true, "type": "uuid" }, { - "description": "The API name or wildcard rule such as list*", + "description": "the host management interface user", "length": 255, - "name": "rule", + "name": "username", "required": true, "type": "string" }, { - "description": "The rule permission, allow or deny. Default: deny.", + "description": "the host management interface IP address", "length": 255, - "name": "permission", + "name": "address", + "required": true, + "type": "string" + }, + { + "description": "the host management interface password", + "length": 255, + "name": "password", + "required": true, + "type": "string" + }, + { + "description": "the host management interface port", + "length": 255, + "name": "port", "required": true, "type": "string" } ], - "related": "listRolePermissions", + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,enableOutOfBandManagementForZone,disableOutOfBandManagementForZone,issueOutOfBandManagementPowerAction,changeOutOfBandManagementPassword", "response": [ { - "description": "the name of the role to which the role permission belongs", - "name": "rolename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the out-of-band management interface password", + "name": "password", "type": "string" }, { @@ -18575,85 +11775,73 @@ "name": "jobstatus", "type": "integer" }, - {}, - {}, { - "description": "the ID of the role to which the role permission belongs", - "name": "roleid", + "description": "the out-of-band management interface username", + "name": "username", "type": "string" }, { - "description": "the ID of the role permission", - "name": "id", + "description": "the operation result", + "name": "status", + "type": "boolean" + }, + { + "description": "the out-of-band management driver for the host", + "name": "driver", "type": "string" }, { - "description": "the api name or wildcard rule", - "name": "rule", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" + }, + { + "description": "the out-of-band management action (if issued)", + "name": "action", "type": "string" }, + {}, + {}, { - "description": "the description of the role permission", + "description": "the out-of-band management interface port", + "name": "port", + "type": "string" + }, + { + "description": "the operation result description", "name": "description", "type": "string" }, { - "description": "the permission type of the api name or wildcard rule, allow/deny", - "name": "permission", + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" + }, + { + "description": "the out-of-band management interface address", + "name": "address", "type": "string" } ], "since": "4.9.0" }, { - "description": "List system virtual machines.", + "description": "List OAuth providers registered", "isasync": false, - "name": "listSystemVms", + "name": "listOauthProvider", "params": [ { - "description": "the name of the system VM", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "the state of the system VM", + "description": "Name of the provider", "length": 255, - "name": "state", + "name": "provider", "required": false, "type": "string" }, - { - "description": "the storage ID where vm's volumes belong to", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "since": "3.0.1", - "type": "uuid" - }, - { - "description": "the Pod ID of the system VM", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, - { - "description": "the host ID of the system VM", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": false, - "type": "uuid" - }, { "description": "", "length": 255, @@ -18662,18 +11850,10 @@ "type": "integer" }, { - "description": "the Zone ID of the system VM", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the system VM", + "description": "the ID of the OAuth provider", "length": 255, "name": "id", - "related": "listSystemVms,migrateSystemVm,startSystemVm,changeServiceForSystemVm", + "related": "listOauthProvider,verifyOAuthCodeAndGetUser,updateOauthProvider", "required": false, "type": "uuid" }, @@ -18690,131 +11870,54 @@ "name": "page", "required": false, "type": "integer" - }, - { - "description": "the system VM type. Possible types are \"consoleproxy\" and \"secondarystoragevm\".", - "length": 255, - "name": "systemvmtype", - "required": false, - "type": "string" } ], - "related": "migrateSystemVm,startSystemVm,changeServiceForSystemVm", + "related": "verifyOAuthCodeAndGetUser,updateOauthProvider", "response": [ { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" - }, - { - "description": "the hostname for the system VM", - "name": "hostname", + "description": "Name of the provider", + "name": "name", "type": "string" }, { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the Zone name for the system VM", - "name": "zonename", - "type": "string" - }, - { - "description": "the second DNS for the system VM", - "name": "dns2", - "type": "string" - }, - { - "description": "the date and time the system VM was created", - "name": "created", - "type": "date" - }, - { - "description": "the first DNS for the system VM", - "name": "dns1", - "type": "string" - }, - { - "description": "the private netmask for the system VM", - "name": "privatenetmask", - "type": "string" - }, - { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" - }, - { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", + "description": "Name of the provider", + "name": "provider", "type": "string" }, + {}, { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", + "description": "Secret key registered in the OAuth provider", + "name": "secretkey", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "Whether the OAuth provider is enabled or not", + "name": "enabled", "type": "boolean" }, { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" - }, - { - "description": "the state of the system VM", - "name": "state", - "type": "string" - }, - { - "description": "the link local IP address for the system vm", - "name": "linklocalip", - "type": "string" - }, - { - "description": "the gateway for the system VM", - "name": "gateway", - "type": "string" - }, - { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" - }, - { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", - "type": "string" - }, - { - "description": "the template name for the system VM", - "name": "templatename", + "description": "ID of the provider", + "name": "id", "type": "string" }, { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", + "description": "Description of the provider registered", + "name": "description", "type": "string" }, { - "description": "the Pod name for the system VM", - "name": "podname", + "description": "Client ID registered in the OAuth provider", + "name": "clientid", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, { - "description": "the network domain for the system VM", - "name": "networkdomain", + "description": "Redirect URI registered in the OAuth provider", + "name": "redirecturi", "type": "string" }, { @@ -18822,219 +11925,151 @@ "name": "jobid", "type": "string" }, - {}, - { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", - "type": "string" - }, - { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" - }, - { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" - }, + {} + ], + "since": "4.19.0" + }, + { + "description": "Lists storage tags", + "isasync": false, + "name": "listStorageTags", + "params": [ { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the template ID for the system VM", - "name": "templateid", - "type": "string" - }, + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + {}, + {}, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the pool ID of the storage tag", + "name": "poolid", + "type": "long" }, { - "description": "the name of the system VM", + "description": "the name of the storage tag", "name": "name", "type": "string" }, { - "description": "the agent state of the system VM", - "name": "agentstate", - "type": "string" - }, - { - "description": "the systemvm agent version", - "name": "version", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the system VM type", - "name": "systemvmtype", + "description": "the ID of the storage tag", + "name": "id", "type": "string" }, { - "description": "the host ID for the system VM", - "name": "hostid", - "type": "string" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Delete Service Package", + "isasync": false, + "name": "deleteServicePackageOffering", + "params": [ { - "description": "the public netmask for the system VM", - "name": "publicnetmask", + "description": "the service offering ID", + "length": 255, + "name": "id", + "related": "registerNetscalerServicePackage,listRegisteredServicePackages", + "required": true, "type": "string" - }, + } + ], + "response": [ { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the Pod ID for the system VM", - "name": "podid", - "type": "string" - }, - { - "description": "the ID of the system VM", - "name": "id", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the private IP address for the system VM", - "name": "privateip", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "guest vlan range", - "name": "guestvlan", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ] }, { - "description": "Detaches a disk volume from a virtual machine.", - "isasync": true, - "name": "detachVolume", + "description": "Update a Shared FileSystem", + "isasync": false, + "name": "updateSharedFileSystem", "params": [ { - "description": "the device ID on the virtual machine where volume is detached from", + "description": "the ID of the shared filesystem", "length": 255, - "name": "deviceid", - "required": false, - "type": "long" + "name": "id", + "related": "createSharedFileSystem,listSharedFileSystems,updateSharedFileSystem,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", + "required": true, + "type": "uuid" }, { - "description": "the ID of the disk volume", + "description": "the description for the shared filesystem.", "length": 255, - "name": "id", - "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "name": "description", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the ID of the virtual machine where the volume is detached from", + "description": "the name of the shared filesystem.", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "name": "name", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "createSharedFileSystem,listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", "response": [ { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" - }, - { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" - }, - { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" - }, - { - "description": "the chain info of the volume", - "name": "chaininfo", - "type": "string" - }, - { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" - }, - { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" - }, - { - "description": "pod id of the volume", - "name": "podid", - "type": "string" - }, - { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "the account associated with the shared filesystem", + "name": "account", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "the project ID of the shared filesystem", + "name": "projectid", "type": "string" }, - { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" - }, {}, { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "the path of the volume", - "name": "path", - "type": "string" - }, - { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "pod name of the volume", - "name": "podname", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "size of the shared filesystem in GiB", + "name": "sizegb", "type": "string" }, { @@ -19043,130 +12078,212 @@ "type": "string" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" - }, - { - "description": "ID of the disk offering", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "the project name of the vpn", - "name": "project", - "type": "string" - }, - { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" - }, - { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", - "type": "string" - }, - { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" - }, - { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", - "type": "string" - }, - { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" - }, - { - "description": "size of the disk volume", - "name": "size", - "type": "long" - }, - { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "ID of the storage fs vm", + "name": "vmstate", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the read (IO) of disk on the shared filesystem", + "name": "diskioread", "type": "long" }, { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the project id of the vpn", - "name": "projectid", - "type": "string" + "description": "the list of nics associated with the shared filesystem", + "name": "nic", + "response": [ + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + } + ], + "type": "list" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "path of the domain to which the shared filesystem", + "name": "domainpath", "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", + "description": "the bytes allocated", + "name": "virtualsize", "type": "long" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the shared filesystem provider", + "name": "provider", + "type": "string" }, - {}, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", "type": "long" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", "type": "string" }, + {}, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "the filesystem format", + "name": "filesystem", + "type": "string" }, { "description": "the disk utilization", @@ -19174,62 +12291,47 @@ "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" - }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "description of the shared filesystem", + "name": "description", "type": "string" }, { - "description": "the status of the volume", - "name": "status", + "description": "the state of the shared filesystem", + "name": "state", "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" - }, - { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "Network name of the shared filesystem", + "name": "networkname", + "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", - "type": "string" + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", + "type": "boolean" }, { "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -19238,410 +12340,523 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "ID of the shared filesystem", + "name": "id", + "type": "string" }, { - "description": "name of the disk volume", - "name": "name", + "description": "Network ID of the shared filesystem", + "name": "networkid", "type": "string" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "the project name of the shared filesystem", + "name": "project", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", + "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "Name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "name of the shared filesystem", + "name": "name", "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "name of the storage fs data volume", + "name": "volumename", "type": "string" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the domain associated with the shared filesystem", + "name": "domain", "type": "string" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "size of the shared filesystem", + "name": "size", + "type": "long" + }, + { + "description": "name of the storage pool hosting the data volume", + "name": "storage", "type": "string" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "path to mount the shared filesystem", + "name": "path", "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", + "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "ID of the storage fs data volume", + "name": "volumeid", "type": "string" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "ID of the storage fs vm", + "name": "virtualmachineid", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } - ] + ], + "since": "4.20.0" }, { - "description": "Replaces ACL associated with a network or private gateway", + "description": "Creates a IPv4 subnet for guest networks.", "isasync": true, - "name": "replaceNetworkACLList", + "name": "createIpv4SubnetForGuestNetwork", "params": [ { - "description": "the ID of the network ACL", + "description": "the CIDR size of IPv4 network. This is mutually exclusive with subnet.", "length": 255, - "name": "aclid", - "related": "createNetworkACLList,listNetworkACLLists", - "required": true, - "type": "uuid" + "name": "cidrsize", + "required": false, + "type": "integer" }, { - "description": "the ID of the network", + "description": "The CIDR of this Ipv4 subnet.", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "subnet", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the ID of the private gateway", + "description": "The zone Ipv4 subnet which the IPv4 subnet belongs to.", "length": 255, - "name": "gatewayid", - "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", - "required": false, + "name": "parentid", + "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,updateIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "required": true, "type": "uuid" } ], + "related": "listIpv4SubnetsForGuestNetwork", "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": "any text associated with the success or failure", - "name": "displaytext", + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" + }, + { + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zonename", + "type": "string" + }, + { + "description": "Id of the VPC which the IPv4 subnet is associated with.", + "name": "vpcid", + "type": "string" + }, + { + "description": "subnet of the data center IPv4 subnet", + "name": "parentsubnet", + "type": "string" + }, + { + "description": "date when this IPv4 subnet was removed.", + "name": "removed", + "type": "date" + }, + { + "description": "date when this IPv4 subnet was allocated.", + "name": "allocated", + "type": "date" + }, + { + "description": "id of the IPv4 subnet for guest network", + "name": "id", + "type": "string" + }, + { + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", "type": "string" }, {}, + { + "description": "id of the data center IPv4 subnet", + "name": "parentid", + "type": "string" + }, + { + "description": "id of network which the IPv4 subnet is associated with.", + "name": "networkid", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + { + "description": "state of subnet of the IPv4 network", + "name": "state", + "type": "string" + }, + { + "description": "Name of the VPC which the IPv4 subnet is associated with.", + "name": "vpcname", + "type": "string" + }, + { + "description": "subnet of the IPv4 network", + "name": "subnet", + "type": "string" + }, + { + "description": "name of network which the IPv4 subnet is associated with.", + "name": "networkname", + "type": "string" + }, {} - ] + ], + "since": "4.20.0" }, { - "description": "list Tungsten-Fabric address group", + "description": "Delete VM Schedule.", "isasync": false, - "name": "listTungstenFabricAddressGroup", + "name": "deleteVMSchedule", "params": [ { - "description": "", + "description": "ID of VM schedule", "length": 255, - "name": "page", + "name": "id", + "related": "createVMSchedule,listVMSchedule,updateVMSchedule", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric address group", + "description": "ID of VM", "length": 255, - "name": "addressgroupuuid", - "required": false, - "type": "string" + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "", + "description": "IDs of VM schedule", "length": 255, - "name": "pagesize", + "name": "ids", + "related": "createVMSchedule,listVMSchedule,updateVMSchedule", "required": false, + "type": "list" + } + ], + "response": [ + {}, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the ID of zone", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.19.0" + }, + { + "description": "List template visibility and all accounts that have permissions to view this template.", + "isasync": false, + "name": "listTemplatePermissions", + "params": [ + { + "description": "the template ID", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, + "name": "id", + "related": "listIsoPermissions,listTemplatePermissions,listTemplatePermissions,listIsoPermissions", + "required": true, "type": "uuid" } ], - "related": "createTungstenFabricAddressGroup", + "related": "listIsoPermissions,listTemplatePermissions,listIsoPermissions", "response": [ { - "description": "Tungsten-Fabric address group ip prefix length", - "name": "ipprefixlen", - "type": "int" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "Tungsten-Fabric address group uuid", - "name": "uuid", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the list of accounts the template is available for", + "name": "account", + "type": "list" }, {}, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "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": "Tungsten-Fabric address group name", - "name": "name", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "Tungsten-Fabric address group ip prefix", - "name": "ipprefix", - "type": "string" + "description": "the list of projects the template is available for", + "name": "projectids", + "type": "list" } ] }, { - "description": "Enables out-of-band management for a zone", + "description": "Updates an existing IPv4 subnet for a zone.", "isasync": true, - "name": "enableOutOfBandManagementForZone", + "name": "updateIpv4SubnetForZone", "params": [ { - "description": "the ID of the zone", + "description": "Id of the guest network IPv4 subnet", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "id", + "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,updateIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", "required": true, "type": "uuid" + }, + { + "description": "The new CIDR of the IPv4 subnet.", + "length": 255, + "name": "subnet", + "required": true, + "type": "string" } ], - "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,configureOutOfBandManagement,issueOutOfBandManagementPowerAction,changeOutOfBandManagementPassword", + "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", "response": [ { - "description": "the out-of-band management interface port", - "name": "port", + "description": "id of the guest IPv4 subnet", + "name": "id", "type": "string" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "guest IPv4 subnet", + "name": "subnet", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the account of the IPv4 subnet", + "name": "account", "type": "string" }, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the project id of the IPv4 subnet", + "name": "projectid", "type": "string" }, - {}, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" }, { - "description": "the operation result description", - "name": "description", + "description": "the domain name of the IPv4 subnet", + "name": "domain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name of the IPv4 subnet", + "name": "project", + "type": "string" }, + {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain ID of the IPv4 subnet", + "name": "domainid", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the out-of-band management interface address", - "name": "address", + "description": "name of zone to which the IPv4 subnet belongs to.", + "name": "zonename", "type": "string" }, { - "description": "the operation result", - "name": "status", - "type": "boolean" - }, - {}, - { - "description": "the out-of-band management driver for the host", - "name": "driver", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the out-of-band management interface password", - "name": "password", + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", "type": "string" - } + }, + {} ], - "since": "4.9.0" + "since": "4.20.0" }, { - "description": "Lists LDAP Users according to the specifications from the user request.", + "description": "Lists annotations.", "isasync": false, - "name": "listLdapUsers", + "name": "listAnnotations", "params": [ { - "description": "List by keyword", + "description": "optional: the id of the user of the annotation", "length": 255, - "name": "keyword", + "name": "userid", "required": false, + "since": "4.16.0", "type": "string" }, { - "description": "", + "description": "possible values are \"self\" and \"all\". * self : annotations that have been created by the calling user. * all : all the annotations the calling user can access", "length": 255, - "name": "pagesize", + "name": "annotationfilter", "required": false, - "type": "integer" + "since": "4.16.0", + "type": "string" }, { - "description": "Determines what type of filter is applied on the list of users returned from LDAP.\n\tvalid values are\n\t'NoFilter'\t no filtering is done,\n\t'LocalDomain'\tusers already in the current or requested domain will be filtered out of the result list,\n\t'AnyDomain'\tusers that already exist anywhere in cloudstack will be filtered out, and\n\t'PotentialImport'\tall users that would be automatically imported from the listing will be shown, including those that are already in cloudstack, the later will be annotated with their userSource", + "description": "the entity type", "length": 255, - "name": "userfilter", + "name": "entitytype", "required": false, - "since": "4.13", "type": "string" }, { - "description": "Determines whether all ldap users are returned or just non-cloudstack users. This option is deprecated in favour for the more option rich 'userfilter' parameter", + "description": "the id of the annotation", "length": 255, - "name": "listtype", + "name": "id", "required": false, "type": "string" }, { - "description": "linked domain", + "description": "the id of the entity for which to show annotations", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "entityid", "required": false, - "type": "uuid" + "type": "string" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { "description": "", @@ -19649,124 +12864,347 @@ "name": "page", "required": false, "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" } ], - "related": "searchLdap,importLdapUsers", + "related": "addAnnotation,removeAnnotation,updateAnnotationVisibility", "response": [ - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "True if the annotation is available for admins only", + "name": "adminsonly", + "type": "boolean" + }, + { + "description": "the type of the annotated entity", + "name": "entitytype", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "The (uu)id of the user that entered the annotation", + "name": "userid", + "type": "string" }, { - "description": "The user's domain", - "name": "domain", + "description": "the contents of the annotation", + "name": "annotation", "type": "string" }, { - "description": "The user's username", + "description": "The username of the user that entered the annotation", "name": "username", "type": "string" }, { - "description": "The user's lastname", - "name": "lastname", + "description": "the name of the entity to which this annotation pertains", + "name": "entityname", "type": "string" }, { - "description": "The authentication source for this user as known to the system or empty if the user is not yet in cloudstack.", - "name": "conflictingusersource", - "type": "string" + "description": "the removal timestamp for this annotation", + "name": "removed", + "type": "date" }, + {}, { - "description": "The user's principle", - "name": "principal", + "description": "the creation timestamp for this annotation", + "name": "created", + "type": "date" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the (uu)id of the annotation", + "name": "id", "type": "string" }, { - "description": "The user's firstname", - "name": "firstname", + "description": "the (uu)id of the entity to which this annotation pertains", + "name": "entityid", "type": "string" }, + {}, { - "description": "The user's email", - "name": "email", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ], - "since": "4.2.0" + "since": "4.11" }, { - "description": "Create VM Schedule", - "isasync": false, - "name": "createVMSchedule", + "description": "Destroys a system virtual machine.", + "isasync": true, + "name": "destroySystemVm", "params": [ { - "description": "Schedule for action on VM in cron format. e.g. '0 15 10 * *' for 'at 15:00 on 10th day of every month'", + "description": "The ID of the system virtual machine", "length": 255, - "name": "schedule", + "name": "id", + "related": "destroySystemVm,listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", "required": true, + "type": "uuid" + } + ], + "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", + "response": [ + { + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", "type": "string" }, { - "description": "Description of the schedule", - "length": 255, - "name": "description", - "required": false, + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "the ID of the system VM", + "name": "id", "type": "string" }, { - "description": "start date from which the schedule becomes active. Defaults to current date plus 1 minute.Use format \"yyyy-MM-dd hh:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, + "description": "the system VM type", + "name": "systemvmtype", + "type": "string" + }, + { + "description": "the template ID for the system VM", + "name": "templateid", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the Zone ID for the system VM", + "name": "zoneid", + "type": "string" + }, + { + "description": "the Zone name for the system VM", + "name": "zonename", + "type": "string" + }, + { + "description": "the date and time the system VM was created", + "name": "created", "type": "date" }, { - "description": "ID of the VM for which schedule is to be defined", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", + "type": "string" }, { - "description": "Enable VM schedule. Defaults to true", - "length": 255, - "name": "enabled", - "required": false, + "description": "the state of the system VM", + "name": "state", + "type": "string" + }, + { + "description": "the Pod name for the system VM", + "name": "podname", + "type": "string" + }, + { + "description": "the systemvm agent version", + "name": "version", + "type": "string" + }, + {}, + { + "description": "the network domain for the system VM", + "name": "networkdomain", + "type": "string" + }, + { + "description": "guest vlan range", + "name": "guestvlan", + "type": "string" + }, + { + "description": "the private netmask for the system VM", + "name": "privatenetmask", + "type": "string" + }, + { + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" + }, + { + "description": "the agent state of the system VM", + "name": "agentstate", + "type": "string" + }, + { + "description": "the host ID for the system VM", + "name": "hostid", + "type": "string" + }, + { + "description": "the link local IP address for the system vm", + "name": "linklocalip", + "type": "string" + }, + { + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", + "type": "string" + }, + { + "description": "the gateway for the system VM", + "name": "gateway", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the first DNS for the system VM", + "name": "dns1", + "type": "string" + }, + { + "description": "the name of the system VM", + "name": "name", + "type": "string" + }, + { + "description": "the public netmask for the system VM", + "name": "publicnetmask", + "type": "string" + }, + { + "description": "the Pod ID for the system VM", + "name": "podid", + "type": "string" + }, + { + "description": "the private IP address for the system VM", + "name": "privateip", + "type": "string" + }, + { + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", + "type": "integer" + }, + { + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "Action to take on the VM (start/stop/reboot/force_stop/force_reboot).", + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", + "type": "string" + }, + { + "description": "the template name for the system VM", + "name": "templatename", + "type": "string" + }, + { + "description": "public vlan range", + "name": "publicvlan", + "type": "list" + }, + { + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "the hostname for the system VM", + "name": "hostname", + "type": "string" + }, + { + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", + "type": "string" + }, + { + "description": "the public IP address for the system VM", + "name": "publicip", + "type": "string" + }, + { + "description": "the second DNS for the system VM", + "name": "dns2", + "type": "string" + }, + { + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + } + ] + }, + { + "description": "Adds Swift.", + "isasync": false, + "name": "addSwift", + "params": [ + { + "description": "the URL for swift", "length": 255, - "name": "action", + "name": "url", "required": true, "type": "string" }, { - "description": "end date after which the schedule becomes inactiveUse format \"yyyy-MM-dd hh:mm:ss\")", + "description": " key for the user for swift", "length": 255, - "name": "enddate", + "name": "key", "required": false, - "type": "date" + "type": "string" }, { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see TimeZone Format.", + "description": "the username for swift", "length": 255, - "name": "timezone", - "required": true, + "name": "username", + "required": false, + "type": "string" + }, + { + "description": "the account for swift", + "length": 255, + "name": "account", + "required": false, "type": "string" } ], - "related": "updateVMSchedule", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,listSecondaryStagingStores,updateCloudToUseObjectStore", "response": [ { "description": "the UUID of the latest async job acting on this object", @@ -19774,283 +13212,298 @@ "type": "string" }, { - "description": "Action", - "name": "action", - "type": "action" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "Timezone of the schedule", - "name": "timezone", + "description": "the provider name of the image store", + "name": "providername", "type": "string" }, { - "description": "VM schedule is enabled", - "name": "enabled", - "type": "boolean" + "description": "the Zone name of the image store", + "name": "zonename", + "type": "string" }, { - "description": "Date when the schedule was created", - "name": "created", - "type": "date" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, { - "description": "ID of virtual machine", - "name": "virtualmachineid", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "Cron formatted VM schedule", - "name": "schedule", + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the url of the image store", + "name": "url", "type": "string" }, - {}, { - "description": "the ID of VM schedule", + "description": "the Zone ID of the image store", + "name": "zoneid", + "type": "string" + }, + { + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the ID of the image store", "name": "id", "type": "string" }, { - "description": "Date from which the schedule is active", - "name": "startdate", - "type": "date" + "description": "the name of the image store", + "name": "name", + "type": "string" }, { - "description": "Date after which the schedule becomes inactive", + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" + }, + {}, + {} + ], + "since": "3.0.0" + }, + { + "description": "Archive one or more events.", + "isasync": false, + "name": "archiveEvents", + "params": [ + { + "description": "end date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", + "length": 255, "name": "enddate", + "required": false, "type": "date" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "start date range to archive events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", + "length": 255, + "name": "startdate", + "required": false, + "type": "date" }, { - "description": "Description of VM schedule", - "name": "description", + "description": "archive by event type", + "length": 255, + "name": "type", + "required": false, "type": "string" + }, + { + "description": "the IDs of the events", + "length": 255, + "name": "ids", + "related": "listEvents", + "required": false, + "type": "list" } ], - "since": "4.19.0" + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {} + ] }, { - "description": "List the IP forwarding rules", + "description": "List Autonomous Systems Numbers", "isasync": false, - "name": "listIpForwardingRules", + "name": "listASNumbers", "params": [ { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "the vpc id", "length": 255, - "name": "account", + "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 network id", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" }, { - "description": "", + "description": "the AS Number range ID", "length": 255, - "name": "pagesize", + "name": "asnrangeid", + "related": "createASNRange,listASNRanges", "required": false, - "type": "integer" + "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": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "domain id", "length": 255, - "name": "listall", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "list the rule belonging to this public IP address", + "description": "the zone ID", "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "List by keyword", + "description": "", "length": 255, - "name": "keyword", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Lists all rules applied to the specified VM.", + "description": "AS number", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "name": "asnumber", + "related": "listASNumbers", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "to indicate if the AS number is allocated to any network", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "isallocated", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "Lists rule with the specified ID.", + "description": "account name", "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules,createIpv6FirewallRule,updateIpv6FirewallRule", + "name": "account", + "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,createIpv6FirewallRule,updateIpv6FirewallRule", + "related": "", "response": [ { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", + "description": "the account name", + "name": "account", "type": "string" }, { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "the domain name", + "name": "domain", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Network ID", + "name": "associatednetworkid", "type": "string" }, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "VPC ID", + "name": "vpcid", "type": "string" }, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "Domain ID", + "name": "domainid", "type": "string" }, + {}, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "Allocation state", + "name": "allocationstate", "type": "string" }, { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", + "description": "Account ID", + "name": "accountid", "type": "string" }, - {}, { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", + "description": "Network Name", + "name": "associatednetworkname", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", + "description": "VPC Name", + "name": "vpcname", "type": "string" }, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", + "description": "AS Number Range", + "name": "asnrange", "type": "string" }, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", - "type": "string" + "description": "AS Number", + "name": "asnumber", + "type": "long" }, {}, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "list" + "description": "Allocated Date", + "name": "allocated", + "type": "date" }, { "description": "the current status of the latest async job acting on this object", @@ -20058,113 +13511,167 @@ "type": "integer" }, { - "description": "the state of the rule", - "name": "state", + "description": "AS Number ID", + "name": "asnrangeid", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "ID of the AS Number", + "name": "id", "type": "string" }, { - "description": "the ID of the port forwarding rule", + "description": "the zone name of the AS Number range", + "name": "zonename", + "type": "string" + }, + { + "description": "Created Date", + "name": "created", + "type": "date" + } + ], + "since": "4.20.0" + }, + { + "description": "Deletes a secondary staging store .", + "isasync": false, + "name": "deleteSecondaryStagingStore", + "params": [ + { + "description": "the staging store ID", + "length": 255, "name": "id", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,listSecondaryStagingStores,updateCloudToUseObjectStore", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, + {}, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "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": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } - ] + ], + "since": "4.2.0" }, { - "description": "Creates an instant snapshot of a volume.", - "isasync": true, - "name": "createSnapshot", + "description": "List registered userdatas", + "isasync": false, + "name": "listUserData", "params": [ { - "description": "The account of the snapshot. The account parameter must be used with the domainId parameter.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, "name": "account", "required": false, "type": "string" }, { - "description": "A comma-separated list of IDs of the zones in which the snapshot will be made available. The snapshot will always be made available in the zone in which the volume is present.", + "description": "the ID of the Userdata", "length": 255, - "name": "zoneids", - "related": "createZone,updateZone,listZones,listZones", + "name": "id", + "related": "listUserData", "required": false, - "since": "4.19.0", - "type": "list" + "type": "uuid" }, { - "description": "The domain ID of the snapshot. If used with the account parameter, specifies a domain for the account associated with the disk volume. If account is NOT provided then snapshot will be assigned to the caller account and domain.", + "description": "List by keyword", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "policy id of the snapshot, if this is null, then use MANUAL_POLICY.", + "description": "", "length": 255, - "name": "policyid", - "related": "updateSnapshotPolicy,listSnapshotPolicies", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "The ID of the disk volume", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "volumeid", - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, "type": "uuid" }, { - "description": "Currently applicable only for managed storage. Valid location types: 'primary', 'secondary'. Default = 'primary'.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "locationtype", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "asynchronous backup if true", + "description": "", "length": 255, - "name": "asyncbackup", + "name": "pagesize", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "the name of the snapshot", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "name", + "name": "isrecursive", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Map of tags (key/value pairs)", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "tags", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "quiesce vm if true", + "description": "Userdata name to look for", "length": 255, - "name": "quiescevm", + "name": "name", "required": false, - "type": "boolean" + "type": "string" } ], - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,revertSnapshot,listSnapshots", + "related": "", "response": [ { - "description": "ID of the snapshot", - "name": "id", + "description": "Name of the userdata", + "name": "name", + "type": "string" + }, + { + "description": "path of the domain to which the userdata owner belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id of the userdata", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain id of the userdata owner", + "name": "domainid", "type": "string" }, { @@ -20173,690 +13680,475 @@ "type": "string" }, { - "description": "physical size of backedup snapshot on image store", - "name": "physicalsize", - "type": "long" + "description": "the owner id of the userdata", + "name": "accountid", + "type": "string" + }, + { + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "params", + "type": "string" + }, + { + "description": "ID of the ssh keypair", + "name": "id", + "type": "string" }, {}, { - "description": "name of the snapshot", - "name": "name", + "description": "the owner of the userdata", + "name": "account", "type": "string" }, { - "description": "state of the snapshot on the datastore", - "name": "datastorestate", + "description": "the domain name of the userdata owner", + "name": "domain", "type": "string" }, { - "description": "type of the datastore for the snapshot entry", - "name": "datastoretype", + "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": "base64 encoded userdata content", + "name": "userdata", "type": "string" }, - {}, { - "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", - "name": "state", - "type": "state" + "description": "the project name of the userdata", + "name": "project", + "type": "string" + }, + {} + ], + "since": "4.18" + }, + { + "description": "Updates an internal load balancer", + "isasync": true, + "name": "updateLoadBalancer", + "params": [ + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", + "type": "string" }, { - "description": "the project id of the snapshot", - "name": "projectid", + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "the ID of the load balancer", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" + } + ], + "related": "createLoadBalancer,listLoadBalancers", + "response": [ + { + "description": "Load Balancer source ip network id", + "name": "sourceipaddressnetworkid", "type": "string" }, { - "description": " the date the snapshot was created", - "name": "created", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "ID of the disk volume", - "name": "volumeid", + "description": "Load Balancer source ip", + "name": "sourceipaddress", "type": "string" }, { - "description": "valid types are hourly, daily, weekly, monthy, template, and none.", - "name": "intervaltype", + "description": "the domain of the Load Balancer", + "name": "domain", "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the project name of the Load Balancer", + "name": "project", "type": "string" }, { - "description": "download progress of a snapshot", - "name": "downloaddetails", - "type": "map" + "description": "the account of the Load Balancer", + "name": "account", + "type": "string" }, { - "description": "the list of resource tags associated", + "description": "the Load Balancer ID", + "name": "id", + "type": "string" + }, + { + "description": "the name of the Load Balancer", + "name": "name", + "type": "string" + }, + { + "description": "the list of resource tags associated with the Load Balancer", "name": "tags", "response": [ { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "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 project name where tag belongs to", - "name": "project", + "description": "resource type", + "name": "resourcetype", "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": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" } ], - "type": "set" - }, - { - "description": "the project name of the snapshot", - "name": "project", - "type": "string" - }, - { - "description": "state of the disk volume", - "name": "volumestate", - "type": "string" - }, - { - "description": "path of the Domain the snapshot's account belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "type of the disk volume", - "name": "volumetype", - "type": "string" - }, - { - "description": "id of the os on volume", - "name": "ostypeid", - "type": "string" - }, - { - "description": "name of the datastore for the snapshot entry", - "name": "datastorename", - "type": "string" + "type": "list" }, { - "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", - "name": "revertable", + "description": "is rule for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the type of the snapshot", - "name": "snapshottype", - "type": "string" - }, - { - "description": "valid location types are primary and secondary.", - "name": "locationtype", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "display name of the os on volume", - "name": "osdisplayname", + "description": "path of the domain to which the Load Balancer belongs", + "name": "domainpath", "type": "string" }, { - "description": "name of the disk volume", - "name": "volumename", - "type": "string" + "description": "the list of rules associated with the Load Balancer", + "name": "loadbalancerrule", + "response": [ + { + "description": "source port of the load balancer rule", + "name": "sourceport", + "type": "integer" + }, + { + "description": "instance port of the load balancer rule", + "name": "instanceport", + "type": "integer" + }, + { + "description": "the state of the load balancer rule", + "name": "state", + "type": "string" + } + ], + "type": "list" }, { - "description": "id of the availability zone", - "name": "zoneid", + "description": "the domain ID of the Load Balancer", + "name": "domainid", "type": "string" }, { - "description": "virtual size of backedup snapshot on image store", - "name": "virtualsize", - "type": "long" + "description": "the list of instances associated with the Load Balancer", + "name": "loadbalancerinstance", + "response": [ + { + "description": "the state of the instance", + "name": "state", + "type": "string" + }, + { + "description": "the ip address of the instance", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the name of the instance", + "name": "name", + "type": "string" + }, + { + "description": "the instance ID", + "name": "id", + "type": "string" + } + ], + "type": "list" }, { - "description": "the domain name of the snapshot's account", - "name": "domain", + "description": "the description of the Load Balancer", + "name": "description", "type": "string" }, { - "description": "ID of the datastore for the snapshot entry", - "name": "datastoreid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the account associated with the snapshot", - "name": "account", + "description": "Load Balancer network id", + "name": "networkid", "type": "string" }, + {}, + {}, { - "description": "the domain ID of the snapshot's account", - "name": "domainid", + "description": "the project id of the Load Balancer", + "name": "projectid", "type": "string" } - ] + ], + "since": "4.4.0" }, { - "description": "Lists storage pool metrics", - "isasync": false, - "name": "listStoragePoolsMetrics", + "description": "Scale the service offering for a system vm (console proxy or secondary storage). The system vm must be in a \"Stopped\" state for this command to take effect.", + "isasync": true, + "name": "scaleSystemVm", "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the Zone ID for the storage pool", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the name of the storage pool", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "the IP address for the storage pool", - "length": 255, - "name": "ipaddress", - "required": false, - "type": "string" - }, - { - "description": "the Pod ID for the storage pool", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list storage pools belongig to the specific cluster", + "description": "the service offering ID to apply to the system vm", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "required": true, "type": "uuid" }, { - "description": "the status of the storage pool", - "length": 255, - "name": "status", - "required": false, - "type": "string" - }, - { - "description": "", + "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", "length": 255, - "name": "page", + "name": "details", "required": false, - "type": "integer" + "type": "map" }, { - "description": "the ID of the storage pool", + "description": "The ID of the system vm", "length": 255, "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" - }, - { - "description": "host ID of the storage pools", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": false, + "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm,scaleSystemVm", + "required": true, "type": "uuid" - }, - { - "description": "the scope of the storage pool", - "length": 255, - "name": "scope", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "string" - }, - { - "description": "the storage pool path", - "length": 255, - "name": "path", - "required": false, - "type": "string" - }, - { - "description": "If true, lists the custom stats of the storage pool", - "length": 255, - "name": "storagecustomstats", - "required": false, - "since": "4.18.1", - "type": "boolean" } ], - "related": "", + "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm", "response": [ { - "description": "the hypervisor type of the storage pool", + "description": "the hypervisor on which the template runs", "name": "hypervisor", "type": "string" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" - }, - { - "description": "storage usage notification threshold exceeded", - "name": "storageusagethreshold", - "type": "boolean" - }, - { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", "type": "string" }, { - "description": "the name of the storage pool", - "name": "name", + "description": "the template name for the system VM", + "name": "templatename", "type": "string" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "the second DNS for the system VM", + "name": "dns2", "type": "string" }, { - "description": "disk size used in GiB", - "name": "disksizeusedgb", + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "the public IP address for the system VM", + "name": "publicip", "type": "string" }, { - "description": "the scope of the storage pool", - "name": "scope", + "description": "the Pod name for the system VM", + "name": "podname", "type": "string" }, - {}, { - "description": "the date and time the storage pool was created", + "description": "the date and time the system VM was created", "name": "created", "type": "date" }, { - "description": "the storage pool type", - "name": "type", - "type": "string" - }, - { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", - "type": "long" - }, - { - "description": "the Pod name of the storage pool", - "name": "podname", - "type": "string" - }, - { - "description": "disk size allocated in GiB", - "name": "disksizeallocatedgb", - "type": "string" - }, - { - "description": "the ID of the storage pool", - "name": "id", - "type": "string" - }, - { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "storage usage disable threshold exceeded", - "name": "storageusagedisablethreshold", - "type": "boolean" - }, - { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the Pod ID of the storage pool", - "name": "podid", - "type": "string" - }, - { - "description": "the Zone name of the storage pool", - "name": "zonename", - "type": "string" - }, - { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" - }, - { - "description": "Storage provider for this pool", - "name": "provider", - "type": "string" - }, - { - "description": "the Zone ID of the storage pool", + "description": "the Zone ID for the system VM", "name": "zoneid", "type": "string" }, { - "description": "disk size unallocated in GiB", - "name": "disksizeunallocatedgb", - "type": "string" - }, - { - "description": "storage allocated disable threshold exceeded", - "name": "storageallocateddisablethreshold", - "type": "boolean" - }, - { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", - "type": "string" - }, - { - "description": "disk size in GiB", - "name": "disksizetotalgb", + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", "type": "string" }, + {}, { - "description": "the storage pool path", - "name": "path", + "description": "the link local IP address for the system vm", + "name": "linklocalip", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "storage allocated notification threshold exceeded", - "name": "storageallocatedthreshold", - "type": "boolean" - }, - { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the name of the system VM", + "name": "name", "type": "string" }, - {}, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" - }, - { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", - "type": "boolean" - } - ], - "since": "4.9.3" - }, - { - "description": "Create a new keypair and returns the private key", - "isasync": false, - "name": "createSSHKeyPair", - "params": [ - { - "description": "an optional project for the ssh key", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - }, { - "description": "an optional account for the ssh key. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" }, { - "description": "Name of the keypair", - "length": 255, - "name": "name", - "required": true, + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", "type": "string" }, - { - "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" }, { - "description": "the project id of the keypair owner", - "name": "projectid", + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", "type": "string" }, { - "description": "Fingerprint of the public key", - "name": "fingerprint", + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", "type": "string" }, { - "description": "the domain name of the keypair owner", - "name": "domain", + "description": "the private IP address for the system VM", + "name": "privateip", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Private key", - "name": "privatekey", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "Name of the keypair", - "name": "name", - "type": "string" + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" }, { - "description": "the project name of the keypair owner", - "name": "project", + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the system VM", + "name": "state", "type": "string" }, { - "description": "the domain id of the keypair owner", - "name": "domainid", + "description": "the systemvm agent version", + "name": "version", "type": "string" }, - {}, { - "description": "ID of the ssh keypair", - "name": "id", + "description": "the network domain for the system VM", + "name": "networkdomain", "type": "string" }, { - "description": "the owner of the keypair", - "name": "account", - "type": "string" - }, - {} - ] - }, - { - "description": "list Tungsten-Fabric service group", - "isasync": false, - "name": "listTungstenFabricServiceGroup", - "params": [ + "description": "the private netmask for the system VM", + "name": "privatenetmask", + "type": "string" + }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the Zone name for the system VM", + "name": "zonename", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", "type": "integer" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the host ID for the system VM", + "name": "hostid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the agent state of the system VM", + "name": "agentstate", "type": "string" }, { - "description": "the uuid of Tungsten-Fabric service group", - "length": 255, - "name": "servicegroupuuid", - "required": false, + "description": "the public netmask for the system VM", + "name": "publicnetmask", "type": "string" - } - ], - "related": "createTungstenFabricServiceGroup", - "response": [ + }, + { + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -20864,476 +14156,453 @@ }, {}, { - "description": "Tungsten-Fabric service group uuid", - "name": "uuid", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, - { - "description": "Tungsten-Fabric service group end port", - "name": "endport", - "type": "int" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric service group name", - "name": "name", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "Tungsten-Fabric service group protocol", - "name": "protocol", + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", "type": "string" }, { - "description": "Tungsten-Fabric service group start port", - "name": "startport", - "type": "int" + "description": "public vlan range", + "name": "publicvlan", + "type": "list" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the Pod ID for the system VM", + "name": "podid", "type": "string" }, - {} - ] - }, - { - "description": "Authorizes a particular egress rule for this security group", - "isasync": true, - "name": "authorizeSecurityGroupEgress", - "params": [ { - "description": "start port for this egress rule", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" + "description": "the template ID for the system VM", + "name": "templateid", + "type": "string" }, { - "description": "The name of the security group. Mutually exclusive with securityGroupId parameter", - "length": 255, - "name": "securitygroupname", - "required": false, + "description": "guest vlan range", + "name": "guestvlan", "type": "string" }, { - "description": "an optional account for the security group. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the ID of the system VM", + "name": "id", "type": "string" - }, + } + ] + }, + { + "description": "Lists snapshot policies.", + "isasync": false, + "name": "listSnapshotPolicies", + "params": [ { - "description": "end port for this egress rule", + "description": "", "length": 255, - "name": "endport", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "user to security group mapping", - "length": 255, - "name": "usersecuritygrouplist", - "required": false, - "type": "map" - }, - { - "description": "the cidr list associated. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" - }, - { - "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "fordisplay", "required": false, - "type": "uuid" + "since": "4.4", + "type": "boolean" }, { - "description": "type of the icmp message being sent", + "description": "List by keyword", "length": 255, - "name": "icmptype", + "name": "keyword", "required": false, - "type": "integer" + "type": "string" }, { - "description": "an optional project of the security group", + "description": "the ID of the disk volume", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "volumeid", + "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "required": false, "type": "uuid" }, { - "description": "TCP is default. UDP is the other supported protocol", - "length": 255, - "name": "protocol", - "required": false, - "type": "string" - }, - { - "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter", + "description": "the ID of the snapshot policy", "length": 255, - "name": "securitygroupid", - "related": "createSecurityGroup,updateSecurityGroup", + "name": "id", + "related": "createSnapshotPolicy,updateSnapshotPolicy,listSnapshotPolicies", "required": false, "type": "uuid" }, { - "description": "error code for this icmp message", + "description": "", "length": 255, - "name": "icmpcode", + "name": "page", "required": false, "type": "integer" } ], - "related": "authorizeSecurityGroupIngress", + "related": "createSnapshotPolicy,updateSnapshotPolicy", "response": [ { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "is this policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the list of resource tags associated with the rule", + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "tag value", - "name": "value", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "id of the resource", + "name": "resourceid", "type": "string" } ], "type": "set" }, + { + "description": "the ID of the snapshot policy", + "name": "id", + "type": "string" + }, + { + "description": "time the snapshot is scheduled to be taken.", + "name": "schedule", + "type": "string" + }, {}, { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "the interval type of the snapshot policy", + "name": "intervaltype", + "type": "short" + }, + { + "description": "the time zone of the snapshot policy", + "name": "timezone", "type": "string" }, { - "description": "security group name", - "name": "securitygroupname", + "description": "The list of zones in which snapshot backup is scheduled", + "name": "zone", + "type": "set" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "maximum number of snapshots retained", + "name": "maxsnaps", + "type": "int" + }, + { + "description": "the ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", + "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" - } - ], - "since": "3.0.0" + }, + {} + ] }, { - "description": "Lists storage pools.", - "isasync": false, - "name": "listStoragePools", + "description": "Update site to site vpn customer gateway", + "isasync": true, + "name": "updateVpnCustomerGateway", "params": [ { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "list storage pools belongig to the specific cluster", + "description": "guest cidr of the customer gateway. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "name": "cidrlist", + "required": true, + "type": "string" }, { - "description": "the name of the storage pool", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2.Connections marked with 'ike' will use 'ikev2' when initiating, but accept any protocol version when responding. Defaults to ike", "length": 255, - "name": "name", + "name": "ikeversion", "required": false, + "since": "4.15.1", "type": "string" }, { - "description": "the Pod ID for the storage pool", + "description": "If DPD is enabled for VPN connection", "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", + "name": "dpd", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "the storage pool path", + "description": "IKE policy of the customer gateway", "length": 255, - "name": "path", - "required": false, + "name": "ikepolicy", + "required": true, "type": "string" }, { - "description": "If true, lists the custom stats of the storage pool", + "description": "id of customer gateway", "length": 255, - "name": "storagecustomstats", - "required": false, - "since": "4.18.1", - "type": "boolean" + "name": "id", + "related": "createVpnCustomerGateway,listVpnCustomerGateways,updateVpnCustomerGateway", + "required": true, + "type": "uuid" }, { - "description": "the status of the storage pool", + "description": "public ip address id of the customer gateway", "length": 255, - "name": "status", - "required": false, + "name": "gateway", + "required": true, "type": "string" }, { - "description": "host ID of the storage pools", + "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds", "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", + "name": "esplifetime", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "the Zone ID for the storage pool", + "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "ikelifetime", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "the scope of the storage pool", + "description": "name of this customer gateway", "length": 255, - "name": "scope", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", + "name": "name", "required": false, "type": "string" }, { - "description": "the ID of the storage pool", + "description": "ESP policy of the customer gateway", "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", + "name": "esppolicy", + "required": true, + "type": "string" + }, + { + "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, "type": "uuid" }, { - "description": "the IP address for the storage pool", + "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.", "length": 255, - "name": "ipaddress", - "required": false, + "name": "ipsecpsk", + "required": true, "type": "string" }, { - "description": "", + "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", "length": 255, - "name": "pagesize", + "name": "splitconnections", "required": false, - "type": "integer" + "since": "4.15.1", + "type": "boolean" }, { - "description": "List by keyword", + "description": "the account associated with the gateway. Must be used with the domainId parameter.", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" + }, + { + "description": "Force encapsulation for Nat Traversal", + "length": 255, + "name": "forceencap", + "required": false, + "type": "boolean" } ], - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", + "related": "createVpnCustomerGateway,listVpnCustomerGateways", "response": [ + {}, { - "description": "the storage pool path", - "name": "path", + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", + "type": "long" + }, + { + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", "type": "string" }, { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", + "type": "long" }, { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "the storage pool type", - "name": "type", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "name of the customer gateway", + "name": "name", "type": "string" }, { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the scope of the storage pool", - "name": "scope", - "type": "string" + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", + "type": "boolean" }, { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" + "description": "IPsec preshared-key of customer gateway", + "name": "ipsecpsk", + "type": "string" }, { - "description": "Storage provider for this pool", - "name": "provider", + "description": "the domain id of the owner", + "name": "domainid", "type": "string" }, { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" }, + {}, { - "description": "the Zone name of the storage pool", - "name": "zonename", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" + "description": "guest ip of the customer gateway", + "name": "ipaddress", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "the project id", + "name": "projectid", + "type": "string" }, { - "description": "the ID of the storage pool", - "name": "id", + "description": "public ip address id of the customer gateway", + "name": "gateway", "type": "string" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", + "name": "splitconnections", + "type": "boolean" + }, + { + "description": "IPsec policy of customer gateway", + "name": "esppolicy", "type": "string" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", + "description": "the vpn gateway ID", + "name": "id", "type": "string" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", - "type": "long" + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { @@ -21342,988 +14611,949 @@ "type": "string" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" + "description": "IKE policy of customer gateway", + "name": "ikepolicy", + "type": "string" + } + ] + }, + { + "description": "Verify the OAuth Code and fetch the corresponding user from provider", + "isasync": false, + "name": "verifyOAuthCodeAndGetUser", + "params": [ + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "Code that is provided by OAuth provider (Eg. google, github) after successful login", + "length": 255, + "name": "secretcode", + "required": false, + "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "Name of the provider", + "length": 255, + "name": "provider", + "required": true, + "type": "string" }, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + } + ], + "related": "updateOauthProvider", + "response": [ + { + "description": "Name of the provider", + "name": "provider", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Redirect URI registered in the OAuth provider", + "name": "redirecturi", + "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" + "description": "ID of the provider", + "name": "id", + "type": "string" }, - {}, { - "description": "the Pod name of the storage pool", - "name": "podname", + "description": "Client ID registered in the OAuth provider", + "name": "clientid", "type": "string" }, - {}, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", + "description": "Whether the OAuth provider is enabled or not", + "name": "enabled", "type": "boolean" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "Name of the provider", + "name": "name", "type": "string" }, { - "description": "the name of the storage pool", - "name": "name", + "description": "Secret key registered in the OAuth provider", + "name": "secretkey", "type": "string" - } - ] + }, + { + "description": "Description of the provider registered", + "name": "description", + "type": "string" + }, + { + "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" + }, + {}, + {} + ], + "since": "4.19.0" }, { - "description": "Updates a hypervisor capabilities.", + "description": "Updates object storage pool", "isasync": false, - "name": "updateHypervisorCapabilities", + "name": "updateObjectStoragePool", "params": [ { - "description": "the hypervisor version for which the hypervisor capabilities are to be updated", + "description": "Object Store ID", "length": 255, - "name": "hypervisorversion", - "required": false, - "since": "4.19.1", - "type": "string" + "name": "id", + "related": "addObjectStoragePool,listObjectStoragePools,updateObjectStoragePool", + "required": true, + "type": "uuid" }, { - "description": "set true to enable VM snapshots for this hypervisor", + "description": "the url for the object store", "length": 255, - "name": "vmsnapshotenabled", + "name": "url", "required": false, - "since": "4.16.0", - "type": "boolean" + "type": "string" }, { - "description": "the hypervisor for which the hypervisor capabilities are to be updated", + "description": "the name for the object store", "length": 255, - "name": "hypervisor", + "name": "name", "required": false, - "since": "4.19.1", + "type": "string" + } + ], + "related": "addObjectStoragePool,listObjectStoragePools", + "response": [ + { + "description": "the total size of the object store", + "name": "storagetotal", + "type": "long" + }, + {}, + { + "description": "the url of the object store", + "name": "url", "type": "string" }, { - "description": "set true to enable storage motion support for this hypervisor", - "length": 255, - "name": "storagemotionenabled", - "required": false, - "since": "4.16.0", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the max number of Guest VMs per host for this hypervisor.", - "length": 255, - "name": "maxguestslimit", - "required": false, - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the maximum number of Data Volumes that can be attached to a VM for this hypervisor.", + "description": "the ID of the object store", + "name": "id", + "type": "string" + }, + { + "description": "the name of the object store", + "name": "name", + "type": "string" + }, + { + "description": "the provider name of the object store", + "name": "providername", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {}, + { + "description": "the object store currently used size", + "name": "storageused", + "type": "long" + } + ], + "since": "4.19.0" + }, + { + "description": "List DRS plans for a clusters", + "isasync": false, + "name": "listClusterDrsPlan", + "params": [ + { + "description": "", "length": 255, - "name": "maxdatavolumeslimit", + "name": "pagesize", "required": false, - "since": "4.16.0", "type": "integer" }, { - "description": "ID of the hypervisor capability", + "description": "ID of the drs plan", "length": 255, "name": "id", - "related": "listHypervisorCapabilities,updateHypervisorCapabilities", + "related": "listClusterDrsPlan,generateClusterDrsPlan,executeClusterDrsPlan", "required": false, "type": "uuid" }, { - "description": "the maximum number of the hypervisor hosts per cluster ", + "description": "ID of the cluster", "length": 255, - "name": "maxhostspercluster", + "name": "clusterid", + "related": "addCluster,listClusters,updateCluster", "required": false, - "since": "4.16.0", - "type": "integer" + "type": "uuid" }, { - "description": "set true to enable security group for this hypervisor.", + "description": "List by keyword", "length": 255, - "name": "securitygroupenabled", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" } ], - "related": "listHypervisorCapabilities", + "related": "generateClusterDrsPlan,executeClusterDrsPlan", "response": [ { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the maximum number of guest vms recommended for this hypervisor", - "name": "maxguestslimit", - "type": "long" + "description": "unique ID of the drs plan for cluster", + "name": "id", + "type": "string" }, {}, - { - "description": "true if VM snapshots are enabled for this hypervisor", - "name": "vmsnapshotenabled", - "type": "boolean" - }, {}, { - "description": "the hypervisor type", - "name": "hypervisor", - "type": "string" + "description": "List of migrations", + "name": "migrations", + "type": "list" }, + {}, { - "description": "the ID of the hypervisor capabilities row", - "name": "id", + "description": "Start event Id of the DRS Plan", + "name": "eventid", "type": "string" }, - { - "description": "true if storage motion is supported", - "name": "storagemotionenabled", - "type": "boolean" - }, - { - "description": "the maximum number of Hosts per cluster for this hypervisor", - "name": "maxhostspercluster", - "type": "integer" - }, - { - "description": "true if security group is supported", - "name": "securitygroupenabled", - "type": "boolean" - }, { "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", + "description": "Type of DRS Plan (Automated or Manual))", + "name": "type", + "type": "type" + }, + { + "description": "Id of the cluster", + "name": "clusterid", "type": "string" }, { - "description": "the maximum number of Data Volumes that can be attached for this hypervisor", - "name": "maxdatavolumeslimit", - "type": "integer" + "description": "Status of DRS Plan", + "name": "status", + "type": "status" } ], - "since": "3.0.0" + "since": "4.19.0" }, { - "description": "Find hosts suitable for migrating a virtual machine.", + "description": "This deprecated function used to locks an account. Look for the API DisableAccount instead", "isasync": false, - "name": "findHostsForMigration", + "name": "lockAccount", "params": [ { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", + "description": "Locks the specified account.", "length": 255, - "name": "keyword", - "required": false, + "name": "account", + "required": true, "type": "string" }, { - "description": "find hosts to which this VM can be migrated and flag the hosts with enough CPU/RAM to host the VM", + "description": "Locks the specified account on this domain.", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": true, "type": "uuid" + } + ], + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "response": [ + { + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" + }, + { + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, + { + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" + }, + { + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" + }, + { + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" + }, + { + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", + "type": "string" + }, + { + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", + "type": "long" + }, + { + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" + }, + { + "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) owned by account", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", + "type": "string" + }, + { + "description": "the default zone of the account", + "name": "defaultzoneid", + "type": "string" + }, + { + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", + "type": "string" + }, + { + "description": "the list of users associated with account", + "name": "user", + "response": [ + { + "description": "the ID of the role", + "name": "roleid", + "type": "string" + }, + { + "description": "the user firstname", + "name": "firstname", + "type": "string" + }, + { + "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", + "type": "string" + }, + { + "description": "the user state", + "name": "state", + "type": "string" + }, + { + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "the domain ID of the user", + "name": "domainid", + "type": "string" + }, + { + "description": "the user name", + "name": "username", + "type": "string" + }, + { + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, + { + "description": "the date and time the user account was created", + "name": "created", + "type": "date" + }, + { + "description": "the user email address", + "name": "email", + "type": "string" + }, + { + "description": "the name of the role", + "name": "rolename", + "type": "string" + }, + { + "description": "the secret key of the user", + "name": "secretkey", + "type": "string" + }, + { + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" + }, + { + "description": "the user lastname", + "name": "lastname", + "type": "string" + }, + { + "description": "the type of the role", + "name": "roletype", + "type": "string" + }, + { + "description": "the domain name of the user", + "name": "domain", + "type": "string" + }, + { + "description": "the account name of the user", + "name": "account", + "type": "string" + }, + { + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the api key of the user", + "name": "apikey", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" + }, + { + "description": "the user ID", + "name": "id", + "type": "string" + } + ], + "type": "list" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", - "type": "string" + "description": "the total number of vpcs owned by account", + "name": "vpctotal", + "type": "long" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "events available for the host", - "name": "events", - "type": "string" + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" }, + {}, { - "description": "the cluster name of the host", - "name": "clustername", + "description": "the total volume which can be used by this account", + "name": "volumelimit", "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" - }, - { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", - "type": "boolean" - }, - { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" - }, - { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ", - "name": "cpuwithoverprovisioning", + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", "type": "string" }, { - "description": "the cpu average load on the host", - "name": "averageload", - "type": "long" - }, - { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the CPU number of the host", - "name": "cpunumber", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", - "type": "long" - }, - { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "the host version", - "name": "version", + "description": "the state of the account", + "name": "state", "type": "string" }, { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "the total number of vpcs the account can own", + "name": "vpclimit", "type": "string" }, + {}, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" - }, - { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" - }, - { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", "type": "string" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, { - "description": "the Pod name of the host", - "name": "podname", + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "the date when this account was created", + "name": "created", + "type": "date" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "id of the Domain the account belongs to", + "name": "domainid", "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", - "type": "long" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "name of the Domain the account belongs to", + "name": "domain", + "type": "string" }, { - "description": "the name of the host", - "name": "name", - "type": "string" + "description": "details for the account", + "name": "accountdetails", + "type": "map" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", "type": "boolean" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": "the name of the account", + "name": "name", "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" - }, - { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", "type": "string" }, - {}, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", "type": "string" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "the Zone name of the host", - "name": "zonename", + "description": "path of the Domain the account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "true if account is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the total number of projects the account can own", + "name": "projectlimit", "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", "type": "string" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", + "type": "integer" }, - {}, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", "type": "long" }, { - "description": "the ID of the host", + "description": "the id of the account", "name": "id", "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" - }, - { - "description": "the OS category ID of the host", - "name": "oscategoryid", - "type": "string" - }, - { - "description": "the host hypervisor", - "name": "hypervisor", - "type": "string" - }, - { - "description": "true if migrating a vm to this host requires storage motion, false otherwise", - "name": "requiresStorageMotion", - "type": "boolean" - }, - { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" - }, - { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", - "type": "string" - }, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - }, - { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor ", - "name": "memorywithoverprovisioning", - "type": "string" - } - ] - }, - { - "description": "Enable a Cisco Nexus VSM device", - "isasync": true, - "name": "enableCiscoNexusVSM", - "params": [ - { - "description": "Id of the Cisco Nexus 1000v VSM device to be enabled", - "length": 255, - "name": "id", - "related": "listCiscoNexusVSMs,enableCiscoNexusVSM,disableCiscoNexusVSM", - "required": true, - "type": "uuid" - } - ], - "related": "listCiscoNexusVSMs,disableCiscoNexusVSM", - "response": [ - { - "description": "The Config State (Primary/Standby) of the VSM", - "name": "vsmconfigstate", - "type": "string" + "description": "the total number of networks owned by account", + "name": "networktotal", + "type": "long" }, { - "description": "the management IP address of the external Cisco Nexus 1000v Virtual Supervisor Module", - "name": "ipaddress", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "control vlan id of the VSM", - "name": "vsmctrlvlanid", - "type": "int" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "device state", - "name": "vsmdevicestate", - "type": "string" + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", "type": "string" }, { - "description": "packet vlan id of the VSM", - "name": "vsmpktvlanid", - "type": "int" + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" }, { - "description": "device id of the Cisco N1KV VSM device", - "name": "vsmdeviceid", + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", "type": "string" }, - {}, { - "description": "The VSM is a switch supervisor. This is the VSM's switch domain id", - "name": "vsmdomainid", + "description": "the total volume available for this account", + "name": "volumeavailable", "type": "string" }, { - "description": "device name", - "name": "vsmdevicename", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "The Device State (Enabled/Disabled) of the VSM", - "name": "vsmdevicestate", + "description": "the total number of networks the account can own", + "name": "networklimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "storage vlan id of the VSM", - "name": "vsmstoragevlanid", - "type": "int" - }, - {}, - { - "description": "management vlan id of the VSM", - "name": "vsmmgmtvlanid", + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", "type": "string" }, { - "description": "The mode of the VSM (standalone/HA)", - "name": "vsmconfigmode", + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", "type": "string" } ] }, { - "description": "Return true if the specified account is allowed to create offerings with tags.", - "isasync": false, - "name": "isAccountAllowedToCreateOfferingsWithTags", - "params": [ - { - "description": "Account UUID", - "length": 255, - "name": "id", - "related": "createAccount,disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "is domain admin allowed to create offerings with tags", - "name": "isallowed", - "type": "boolean" - }, - {} - ] - }, - { - "description": "Adds VM to specified network by creating a NIC", + "description": "Stops a router.", "isasync": true, - "name": "addNicToVirtualMachine", + "name": "stopRouter", "params": [ { - "description": "Network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" - }, - { - "description": "DHCP options which are passed to the nic Example: dhcpoptions[0].dhcp:114=url&dhcpoptions[0].dhcp:66=www.test.com", - "length": 255, - "name": "dhcpoptions", - "required": false, - "type": "map" - }, - { - "description": "Virtual Machine ID", + "description": "the ID of the router", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "name": "id", + "related": "destroyRouter,listRouters,rebootRouter,startRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", "required": true, "type": "uuid" }, { - "description": "Mac Address for the new network", - "length": 255, - "name": "macaddress", - "required": false, - "type": "string" - }, - { - "description": "IP Address for the new network", + "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", "length": 255, - "name": "ipaddress", + "name": "forced", "required": false, - "type": "string" + "type": "boolean" } ], - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "related": "destroyRouter,listRouters,rebootRouter,startRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", "response": [ { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the guest netmask for the router", + "name": "guestnetmask", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the Zone ID for the router", + "name": "zoneid", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", + "description": "Last executed health check result for the router", + "name": "healthcheckresults", "response": [ { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", + "description": "the type of the health check - basic or advanced", + "name": "checktype", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the name of the health check on the router", + "name": "checkname", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "result of the health check", + "name": "success", + "type": "boolean" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "detailed response generated on running health check", + "name": "details", "type": "string" } ], - "type": "set" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" - }, - { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" - }, - { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" - }, - { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" + "type": "list" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" }, + {}, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the link local netmask for the router", + "name": "linklocalnetmask", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the second DNS for the router", + "name": "dns2", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, {}, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" - }, - { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the public MAC address for the router", + "name": "publicmacaddress", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the public netmask for the router", + "name": "publicnetmask", "type": "string" }, { - "description": "the list of nics associated with vm", + "description": "the list of nics associated with the router", "name": "nic", "response": [ { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { @@ -22332,48 +15562,38 @@ "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { @@ -22382,9 +15602,14 @@ "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { "description": "the ID of the corresponding network", @@ -22392,33 +15617,33 @@ "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { @@ -22427,703 +15652,670 @@ "type": "integer" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" } ], "type": "set" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the hostname for the router", + "name": "hostname", + "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "the name of VPC the router belongs to", + "name": "vpcname", + "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the public IP address for the router", + "name": "publicip", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the name of the router", + "name": "name", + "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the guest MAC address for the router", + "name": "guestmacaddress", + "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the domain associated with the router", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", + "type": "string" + }, + { + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", + "type": "string" + }, + { + "description": "path of the Domain the router belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the guest IP address for the router", + "name": "guestipaddress", + "type": "string" + }, + { + "description": "the template ID for the router", + "name": "templateid", + "type": "string" + }, + { + "description": "the state of redundant virtual router", + "name": "redundantstate", + "type": "string" + }, + { + "description": "the Pod name for the router", + "name": "podname", + "type": "string" + }, + { + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", + "type": "string" + }, + { + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", + "type": "string" + }, + { + "description": "the account associated with the router", + "name": "account", + "type": "string" + }, + { + "description": "the template name for the router", + "name": "templatename", + "type": "string" + }, + { + "description": "the Zone name for the router", + "name": "zonename", + "type": "string" + }, + { + "description": "the link local IP address for the router", + "name": "linklocalip", + "type": "string" + }, + { + "description": "the version of template", + "name": "version", + "type": "string" + }, + { + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" + }, + { + "description": "role of the domain router", + "name": "role", + "type": "string" + }, + { + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the domain ID associated with the router", + "name": "domainid", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "Lists clusters.", + "isasync": false, + "name": "listClusters", + "params": [ + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "lists clusters by the cluster ID", + "length": 255, + "name": "id", + "related": "addCluster,listClusters,updateCluster", + "required": false, + "type": "uuid" + }, + { + "description": "lists clusters by Zone ID", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "lists clusters by Pod ID", + "length": 255, + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": false, + "type": "uuid" + }, + { + "description": "whether this cluster is managed by cloudstack", + "length": 255, + "name": "managedstate", + "required": false, + "type": "string" + }, + { + "description": "lists clusters by the cluster name", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "lists clusters by allocation state", + "length": 255, + "name": "allocationstate", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "lists clusters by cluster type", + "length": 255, + "name": "clustertype", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "flag to display the capacity of the clusters", + "length": 255, + "name": "showcapacities", + "required": false, + "type": "boolean" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "lists clusters by hypervisor type", + "length": 255, + "name": "hypervisor", + "required": false, + "type": "string" + } + ], + "related": "addCluster,updateCluster", + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the type of the cluster", + "name": "clustertype", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the allocation state of the cluster", + "name": "allocationstate", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" + }, + { + "description": "the Pod ID of the cluster", + "name": "podid", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the hypervisor type of the cluster", + "name": "hypervisortype", + "type": "string" }, - {}, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "The cpu overcommit ratio of the cluster", + "name": "cpuovercommitratio", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the capacity of the Cluster", + "name": "capacity", "response": [ { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "the Zone name", + "name": "zonename", "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the Pod name", + "name": "podname", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the capacity name", + "name": "name", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the Cluster ID", + "name": "clusterid", "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", - "type": "string" + "description": "the capacity type", + "name": "type", + "type": "short" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the Pod ID", + "name": "podid", "type": "string" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" } ], - "type": "set" + "type": "list" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the Pod name of the cluster", + "name": "podname", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "CPU Arch of the hosts in the cluster", + "name": "arch", "type": "string" }, + {}, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "whether this cluster is managed by cloudstack", + "name": "managedstate", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "The memory overcommit ratio of the cluster", + "name": "memoryovercommitratio", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Ovm3 VIP to use for pooling and/or clustering", + "name": "ovm3vip", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the cluster ID", + "name": "id", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the Zone ID of the cluster", + "name": "zoneid", + "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the Zone name of the cluster", + "name": "zonename", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the cluster name", + "name": "name", "type": "string" + } + ] + }, + { + "description": "Deletes project invitation", + "isasync": true, + "name": "deleteProjectInvitation", + "params": [ + { + "description": "id of the invitation", + "length": 255, + "name": "id", + "related": "listProjectInvitations", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Lists project invitations and provides detailed information for listed invitations", + "isasync": false, + "name": "listProjectInvitations", + "params": [ + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "if true, list only active invitations - having Pending state and ones that are not timed out yet", + "length": 255, + "name": "activeonly", + "required": false, + "type": "boolean" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" + "description": "list invitation by user ID", + "length": 255, + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": false, + "type": "uuid" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "list invitations by state", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "list invitations by id", + "length": 255, + "name": "id", + "related": "listProjectInvitations", + "required": false, + "type": "uuid" + }, + { + "description": "list by project id", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + {}, + {}, + { + "description": "the domain name where the project belongs to", + "name": "domain", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the id of the project", + "name": "projectid", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the User ID", + "name": "userid", + "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "path of the Domain the project belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - } - ], - "type": "set" + "description": "the email the invitation was sent to", + "name": "email", + "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the domain id the project belongs to", + "name": "domainid", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the id of the invitation", + "name": "id", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the account name of the project's owner", + "name": "account", + "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the name of the project", + "name": "project", + "type": "string" + }, + { + "description": "the invitation state", + "name": "state", + "type": "string" } - ] + ], + "since": "3.0.0" }, { - "description": "Lists all static routes", + "description": "Lists all egress firewall rules for network ID.", "isasync": false, - "name": "listStaticRoutes", + "name": "listEgressFirewallRules", "params": [ { - "description": "list static route by id", + "description": "", "length": 255, - "name": "id", - "related": "listStaticRoutes", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { "description": "list resources by account. Must be used with the domainId parameter.", @@ -23133,122 +16325,127 @@ "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "isrecursive", + "name": "listall", "required": false, "type": "boolean" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the network ID for the egress firewall services", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "listall", + "name": "tags", "required": false, - "type": "boolean" + "type": "map" }, { - "description": "list static routes by gateway id", + "description": "Lists rule with the specified ID.", "length": 255, - "name": "gatewayid", - "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", + "name": "id", + "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", "required": false, "type": "uuid" }, { - "description": "", + "description": "List by keyword", "length": 255, - "name": "page", + "name": "keyword", "required": false, - "type": "integer" + "type": "string" }, { - "description": "list static routes by state", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "state", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "pagesize", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "List resources by tags (key/value pairs)", + "description": "the ID of IP address of the firewall services", "length": 255, - "name": "tags", + "name": "ipaddressid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "list only resources belonging to the domain specified", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "isrecursive", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "list static routes by vpc id", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "name": "fordisplay", "required": false, - "type": "uuid" + "since": "4.4", + "type": "boolean" } ], - "related": "", + "related": "createFirewallRule,listFirewallRules,updateEgressFirewallRule", "response": [ { - "description": "the project id of the static route", - "name": "projectid", + "description": "the ID of the firewall rule", + "name": "id", "type": "string" }, + { + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" + }, {}, { - "description": "the list of resource tags associated with static route", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the account associated with the tag", - "name": "account", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -23262,8 +16459,8 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -23272,67 +16469,62 @@ "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" } ], "type": "list" }, { - "description": "VPC gateway the route is created for", - "name": "gatewayid", + "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", + "name": "destcidrlist", "type": "string" }, { - "description": "the domain associated with the static route", - "name": "domain", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the ID of static route", - "name": "id", + "description": "the public ip address id for the firewall rule", + "name": "ipaddressid", "type": "string" }, { - "description": "the account associated with the static route", - "name": "account", - "type": "string" + "description": "the starting port of firewall rule's port range", + "name": "startport", + "type": "integer" }, { - "description": "the domain path associated with the static route", - "name": "domainpath", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "VPC the static route belongs to", - "name": "vpcid", + "description": "the public ip address for the firewall rule", + "name": "ipaddress", "type": "string" }, + {}, { - "description": "the project name of the static route", - "name": "project", + "description": "the traffic type for the firewall rule", + "name": "traffictype", "type": "string" }, { - "description": "the state of the static route", - "name": "state", + "description": "the protocol of the firewall rule", + "name": "protocol", "type": "string" }, - {}, { - "description": "static route CIDR", - "name": "cidr", + "description": "the network id of the firewall rule", + "name": "networkid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "type of the icmp message being sent", + "name": "icmptype", "type": "integer" }, { @@ -23341,188 +16533,247 @@ "type": "string" }, { - "description": "the ID of the domain associated with the static route", - "name": "domainid", - "type": "string" + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the ending port of firewall rule's port range", + "name": "endport", + "type": "integer" } ] }, { - "description": "Lists all public ip addresses", + "description": "Updates a region", "isasync": false, - "name": "listPublicIpAddresses", + "name": "updateRegion", "params": [ { - "description": "List by keyword", + "description": "Id of region to update", "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "name": "id", + "required": true, + "type": "integer" }, { - "description": "", + "description": "updates region with this name", "length": 255, - "name": "page", + "name": "name", "required": false, - "type": "integer" + "type": "string" }, { - "description": "lists all public IP addresses by zone ID", + "description": "updates region with this end point", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "endpoint", "required": false, - "type": "uuid" + "type": "string" + } + ], + "related": "addRegion,listRegions", + "response": [ + { + "description": "the name of the region", + "name": "name", + "type": "string" }, { - "description": "makes the API's response contains only the resource count", - "length": 255, - "name": "retrieveonlyresourcecount", - "required": false, + "description": "true if security groups support is enabled, false otherwise", + "name": "portableipserviceenabled", "type": "boolean" }, + {}, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the ID of the region", + "name": "id", + "type": "integer" }, { - "description": "list only source NAT IP addresses", - "length": 255, - "name": "issourcenat", - "required": false, + "description": "true if GSLB service is enabled in the region, false otherwise", + "name": "gslbserviceenabled", "type": "boolean" }, { - "description": "List IPs belonging to the VPC", + "description": "the end point of the region", + "name": "endpoint", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {} + ] + }, + { + "description": "Deletes traffic type of a physical network", + "isasync": true, + "name": "deleteTrafficType", + "params": [ + { + "description": "traffic type id", "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", - "required": false, + "name": "id", + "related": "addTrafficType,updateTrafficType", + "required": true, "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "3.0.0" + }, + { + "description": "Destroy a Shared FileSystem by id", + "isasync": true, + "name": "destroySharedFileSystem", + "params": [ + { + "description": "If true is passed, the shared filesystem is expunged immediately. False by default.", "length": 255, - "name": "isrecursive", + "name": "expunge", "required": false, "type": "boolean" }, { - "description": "lists all public IP addresses by state", + "description": "If true is passed, the shared filesystem can be destroyed without stopping it first.", "length": 255, - "name": "state", + "name": "forced", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "lists all public IP addresses by VLAN ID", + "description": "the ID of the shared filesystem to delete", "length": 255, - "name": "vlanid", - "related": "createVlanIpRange,updateVlanIpRange,listVlanIpRanges,dedicatePublicIpRange", + "name": "id", + "related": "createSharedFileSystem,listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", "required": false, "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list only IPs used for load balancing", - "length": 255, - "name": "forloadbalancing", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "limits search results to allocated public IP addresses", - "length": 255, - "name": "allocatedonly", - "required": false, - "type": "boolean" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.20.0" + }, + { + "description": "Lists clusters metrics", + "isasync": false, + "name": "listClustersMetrics", + "params": [ { - "description": "lists IP address by ID", + "description": "lists clusters by the cluster ID", "length": 255, "name": "id", - "related": "associateIpAddress,reserveIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "related": "addCluster,updateCluster", "required": false, "type": "uuid" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "lists clusters by Zone ID", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "whether this cluster is managed by cloudstack", "length": 255, - "name": "account", + "name": "managedstate", "required": false, "type": "string" }, { - "description": "lists all public IP addresses by source network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "since": "4.13.0", - "type": "uuid" - }, - { - "description": "true if range is dedicated for system VMs", + "description": "lists clusters by the cluster name", "length": 255, - "name": "forsystemvms", + "name": "name", "required": false, - "since": "4.20.0", - "type": "boolean" + "type": "string" }, { - "description": "the virtual network for the IP address", + "description": "List by keyword", "length": 255, - "name": "forvirtualnetwork", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "lists all public IP addresses associated to the network specified", + "description": "lists clusters by Pod ID", "length": 255, - "name": "associatednetworkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", "required": false, "type": "uuid" }, { - "description": "list only static NAT IP addresses", + "description": "flag to display the capacity of the clusters", "length": 255, - "name": "isstaticnat", + "name": "showcapacities", "required": false, "type": "boolean" }, { - "description": "lists all public IP addresses by physical network ID", + "description": "lists clusters by hypervisor type", "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", + "name": "hypervisor", "required": false, - "type": "uuid" + "type": "string" }, { "description": "", @@ -23532,316 +16783,328 @@ "type": "integer" }, { - "description": "list only resources belonging to the domain specified", + "description": "lists clusters by allocation state", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "allocationstate", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "lists the specified IP address", + "description": "", "length": 255, - "name": "ipaddress", + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "lists clusters by cluster type", + "length": 255, + "name": "clustertype", "required": false, "type": "string" } ], - "related": "associateIpAddress,reserveIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "related": "", "response": [ { - "description": "the VLAN associated with the IP address", - "name": "vlanname", + "description": "the type of the cluster", + "name": "clustertype", "type": "string" }, - {}, { - "description": "the ID of the zone the public IP address belongs to", - "name": "zoneid", + "description": "the maximum cpu deviation", + "name": "cpumaxdeviation", "type": "string" }, { - "description": "true if the IP address is a source nat address, false otherwise", - "name": "issourcenat", - "type": "boolean" - }, - { - "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", - "name": "issystem", - "type": "boolean" - }, - { - "description": "true if range is dedicated for System VMs", - "name": "forsystemvms", - "type": "boolean" - }, - { - "description": "virtual machine name the ip address is assigned to", - "name": "virtualmachinename", + "description": "CPU Arch of the hosts in the cluster", + "name": "arch", "type": "string" }, { - "description": "the name of the Network associated with the IP address", - "name": "associatednetworkname", + "description": "The cpu overcommit ratio of the cluster", + "name": "cpuovercommitratio", "type": "string" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the virtual network for the IP address", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "public IP address id", - "name": "id", + "description": "the total cpu capacity in Ghz", + "name": "cputotal", "type": "string" }, { - "description": "is public IP portable across the zones", - "name": "isportable", + "description": "memory usage notification threshold exceeded", + "name": "memorythreshold", "type": "boolean" }, { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" - }, - { - "description": "is public ip for display to the regular user", - "name": "fordisplay", + "description": "memory usage disable threshold exceeded", + "name": "memorydisablethreshold", "type": "boolean" }, + {}, { - "description": "the domain ID the public IP address is associated with", - "name": "domainid", + "description": "the hypervisor type of the cluster", + "name": "hypervisortype", "type": "string" }, { - "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", - "name": "virtualmachinedisplayname", - "type": "string" + "description": "cpu usage disable threshold exceeded", + "name": "cpudisablethreshold", + "type": "boolean" }, { - "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", - "name": "state", + "description": "the maximum memory deviation", + "name": "memorymaxdeviation", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "virtual machine id the ip address is assigned to", - "name": "virtualmachineid", + "description": "the cluster ID", + "name": "id", "type": "string" }, { - "description": "path of the domain to which the public IP address belongs", - "name": "domainpath", - "type": "string" + "description": "cpu usage notification threshold exceeded", + "name": "cputhreshold", + "type": "boolean" }, { - "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", - "name": "purpose", + "description": "the Pod name of the cluster", + "name": "podname", "type": "string" }, { - "description": "the ID of the Network associated with the IP address", - "name": "associatednetworkid", + "description": "the total cpu used in Ghz", + "name": "cpuused", "type": "string" }, { - "description": "true if this ip is for static nat, false otherwise", - "name": "isstaticnat", + "description": "memory allocated notification threshold exceeded", + "name": "memoryallocatedthreshold", "type": "boolean" }, { - "description": "public IP address", - "name": "ipaddress", + "description": "the total cpu capacity in GiB", + "name": "memorytotal", "type": "string" }, { - "description": "date the public IP address was acquired", - "name": "allocated", - "type": "date" - }, - { - "description": "the name of the Network where ip belongs to", - "name": "networkname", + "description": "the cluster name", + "name": "name", "type": "string" }, { - "description": "the account the public IP address is associated with", - "name": "account", + "description": "the total cpu used in GiB", + "name": "memoryused", "type": "string" }, { - "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", - "name": "hasrules", - "type": "boolean" - }, - { - "description": "the name of the zone the public IP address belongs to", + "description": "the Zone name of the cluster", "name": "zonename", "type": "string" }, { - "description": "the domain the public IP address is associated with", - "name": "domain", + "description": "state of the cluster", + "name": "state", "type": "string" }, { - "description": "VPC name the ip belongs to", - "name": "vpcname", - "type": "string" + "description": "cpu allocated notification threshold exceeded", + "name": "cpuallocatedthreshold", + "type": "boolean" }, { - "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", - "name": "vmipaddress", + "description": "the total cpu allocated in Ghz", + "name": "cpuallocated", "type": "string" }, { - "description": "virtual machine type the ip address is assigned to", - "name": "virtualmachinetype", - "type": "string" + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" }, { - "description": "the project name of the address", - "name": "project", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", - "name": "vlanid", - "type": "string" + "description": "cpu allocated disable threshold exceeded", + "name": "cpuallocateddisablethreshold", + "type": "boolean" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "DRS imbalance for the cluster", + "name": "drsimbalance", "type": "string" }, { - "description": "VPC id the ip belongs to", - "name": "vpcid", + "description": "the Pod ID of the cluster", + "name": "podid", "type": "string" }, { - "description": "the list of resource tags associated with ip address", - "name": "tags", + "description": "the capacity of the Cluster", + "name": "capacity", "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "description": "the Pod ID", + "name": "podid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the capacity name", + "name": "name", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the percentage of capacity currently in use", + "name": "percentused", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the Zone name", + "name": "zonename", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the Cluster ID", + "name": "clusterid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" }, { - "description": "tag value", - "name": "value", + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "The tag for the capacity type", + "name": "tag", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the Pod name", + "name": "podname", "type": "string" } ], "type": "list" }, { - "description": "the ID of the Network where ip belongs to", - "name": "networkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Zone ID of the cluster", + "name": "zoneid", + "type": "string" + }, + { + "description": "the total cpu allocated in GiB", + "name": "memoryallocated", + "type": "string" + }, + { + "description": "the allocation state of the cluster", + "name": "allocationstate", + "type": "string" + }, + { + "description": "memory allocated disable threshold exceeded", + "name": "memoryallocateddisablethreshold", + "type": "boolean" + }, + { + "description": "running / total hosts in the cluster", + "name": "hosts", + "type": "string" + }, + { + "description": "The memory overcommit ratio of the cluster", + "name": "memoryovercommitratio", + "type": "string" + }, + { + "description": "whether this cluster is managed by cloudstack", + "name": "managedstate", + "type": "string" + }, + { + "description": "Ovm3 VIP to use for pooling and/or clustering", + "name": "ovm3vip", "type": "string" } - ] + ], + "since": "4.9.3" }, { - "description": "Lists OpenDyalight controllers", + "description": "Lists a project's project role permissions", "isasync": false, - "name": "listOpenDaylightControllers", + "name": "listProjectRolePermissions", "params": [ { - "description": "the Physical Network ID", + "description": "ID of the project", "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": false, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": true, "type": "uuid" }, { - "description": "the ID of a OpenDaylight Controller", + "description": "ID of the project role", "length": 255, - "name": "id", - "related": "addOpenDaylightController,deleteOpenDaylightController,listOpenDaylightControllers", + "name": "projectroleid", + "related": "createProjectRole,listProjectRoles,updateProjectRole", "required": false, "type": "uuid" } ], - "related": "addOpenDaylightController,deleteOpenDaylightController", + "related": "createProjectRolePermission", "response": [ { - "description": "the name assigned to the controller", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the url of the controller api", - "name": "url", + "description": "the ID of the project role permission", + "name": "id", "type": "string" }, { - "description": "device id of the controller", - "name": "id", + "description": "the ID of the project", + "name": "projectid", "type": "string" }, { @@ -23850,108 +17113,107 @@ "type": "integer" }, { - "description": "the username to authenticate to the controller", - "name": "username", + "description": "the ID of the project role to which the role permission belongs", + "name": "projectroleid", "type": "string" }, {}, { - "description": "the physical network to which this controller belongs to", - "name": "physicalnetworkid", + "description": "the name of the project role to which the role permission belongs", + "name": "projectrolename", + "type": "string" + }, + { + "description": "the permission type of the api name or wildcard rule, allow/deny", + "name": "permission", "type": "string" }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the api name or wildcard rule", + "name": "rule", + "type": "string" + }, + { + "description": "the description of the role permission", + "name": "description", "type": "string" } - ] + ], + "since": "4.15.0" }, { - "description": "Adds a BigSwitch BCF Controller device", - "isasync": true, - "name": "addBigSwitchBcfDevice", + "description": "Lists objects at specified path on a storage pool.", + "isasync": false, + "name": "listStoragePoolObjects", "params": [ { - "description": "the Physical Network ID", + "description": "", "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": true, - "type": "uuid" + "name": "page", + "required": false, + "type": "integer" }, { - "description": "NAT support of the BigSwitch BCF Controller.", + "description": "id of the storage pool", "length": 255, - "name": "nat", + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": true, - "type": "boolean" + "type": "uuid" }, { - "description": "Password of the BigSwitch BCF Controller.", + "description": "path to list on storage pool", "length": 255, - "name": "password", - "required": true, + "name": "path", + "required": false, "type": "string" }, { - "description": "Hostname of ip address of the BigSwitch BCF Controller.", + "description": "", "length": 255, - "name": "hostname", - "required": true, - "type": "string" + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "Username of the BigSwitch BCF Controller.", + "description": "List by keyword", "length": 255, - "name": "username", - "required": true, + "name": "keyword", + "required": false, "type": "string" } ], - "related": "listBigSwitchBcfDevices", + "related": "listImageStoreObjects", "response": [ - {}, - {}, - { - "description": "NAT support", - "name": "nat", - "type": "boolean" - }, - { - "description": "the physical network to which this BigSwitch BCF segment belongs to", - "name": "physicalnetworkid", - "type": "string" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the controller username", - "name": "username", + "description": "Volume ID associated with the data store object.", + "name": "volumeid", "type": "string" }, { - "description": "device id of the BigSwitch BCF Controller", - "name": "bcfdeviceid", - "type": "string" + "description": "Size is in Bytes.", + "name": "size", + "type": "long" }, { - "description": "name of the provider", - "name": "provider", + "description": "Name of the data store object.", + "name": "name", "type": "string" }, { - "description": "the controller password", - "name": "password", + "description": "Template Name associated with the data store object.", + "name": "templatename", "type": "string" }, { - "description": "the controller Ip address", - "name": "hostname", + "description": "Snapshot ID associated with the data store object.", + "name": "snapshotid", "type": "string" }, { @@ -23959,534 +17221,359 @@ "name": "jobstatus", "type": "integer" }, + {}, { - "description": "device name", - "name": "bigswitchdevicename", + "description": "Snapshot Name associated with the data store object.", + "name": "snapshotname", + "type": "string" + }, + { + "description": "Is it a directory.", + "name": "isdirectory", + "type": "boolean" + }, + { + "description": "Last modified date of the file/directory.", + "name": "lastupdated", + "type": "date" + }, + {}, + { + "description": "Volume Name associated with the data store object.", + "name": "volumename", + "type": "string" + }, + { + "description": "Format of template associated with the data store object.", + "name": "format", + "type": "string" + }, + { + "description": "Template ID associated with the data store object.", + "name": "templateid", "type": "string" } ], - "since": "4.6.0" + "since": "4.19.0" }, { - "description": "Changes the default NIC on a VM", - "isasync": true, - "name": "updateDefaultNicForVirtualMachine", + "description": "Lists all LDAP configurations", + "isasync": false, + "name": "listLdapConfigurations", "params": [ { - "description": "Virtual Machine ID", + "description": "Hostname", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" + "name": "hostname", + "required": false, + "type": "string" }, { - "description": "NIC ID", + "description": "If set to true, and no domainid specified, list all LDAP configurations irrespective of the linked domain", "length": 255, - "name": "nicid", - "related": "listNics", - "required": true, + "name": "listall", + "required": false, + "since": "4.13.2", + "type": "boolean" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "linked domain", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, "type": "uuid" + }, + { + "description": "Port", + "length": 255, + "name": "port", + "required": false, + "type": "integer" } ], - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "related": "addLdapConfiguration,deleteLdapConfiguration", "response": [ + {}, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, + {}, { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" + "description": "port the ldap server is running on", + "name": "port", + "type": "int" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "name of the host running the ldap server", + "name": "hostname", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "linked domain", + "name": "domainid", "type": "string" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, + } + ], + "since": "4.2.0" + }, + { + "description": "Lists secondary staging stores.", + "isasync": false, + "name": "listSecondaryStagingStores", + "params": [ { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the ID of the staging store", + "length": 255, + "name": "id", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,listSecondaryStagingStores,updateCloudToUseObjectStore", + "required": false, + "type": "uuid" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the Zone ID for the staging store", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the staging store protocol", + "length": 255, + "name": "protocol", + "required": false, + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the name of the staging store", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the staging store provider", + "length": 255, + "name": "provider", + "required": false, "type": "string" + } + ], + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,updateCloudToUseObjectStore", + "response": [ + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "defines if store is read-only", + "name": "readonly", "type": "boolean" }, {}, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the Zone ID of the image store", + "name": "zoneid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the provider name of the image store", + "name": "providername", "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "the Zone name of the image store", + "name": "zonename", + "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the name of the image store", + "name": "name", + "type": "string" + }, + { + "description": "the host's currently used disk size", + "name": "disksizeused", "type": "long" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the ID of the image store", + "name": "id", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ], + "since": "4.2.0" + }, + { + "description": "Creates a l2tp/ipsec remote access vpn", + "isasync": true, + "name": "createRemoteAccessVpn", + "params": [ + { + "description": "an optional field, whether to the display the vpn to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "an optional domainId for the VPN. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "public ip address id of the vpn server", + "length": 255, + "name": "publicipid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, + "type": "uuid" + }, + { + "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. Has value true by default", + "length": 255, + "name": "openfirewall", + "required": false, "type": "boolean" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "an optional account for the VPN. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the range of ip addresses to allocate to vpn clients. The first ip in the range will be taken by the vpn server", + "length": 255, + "name": "iprange", + "required": false, + "type": "string" + } + ], + "related": "listRemoteAccessVpns,updateRemoteAccessVpn", + "response": [ + { + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, + {}, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the account of the remote access vpn", + "name": "account", + "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the public ip address of the vpn server", + "name": "publicipid", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the id of the remote access vpn", + "name": "id", "type": "string" }, + {}, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the domain name of the account of the remote access vpn", + "name": "domain", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the public ip address of the vpn server", + "name": "publicip", "type": "string" }, { @@ -24495,34 +17582,111 @@ "type": "integer" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the range of ips to allocate to the clients", + "name": "iprange", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", + "description": "the state of the rule", + "name": "state", + "type": "string" + }, + { + "description": "the project name of the vpn", + "name": "project", + "type": "string" + }, + { + "description": "path of the domain to which the remote access vpn belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "is vpn for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the domain id of the account of the remote access vpn", "name": "domainid", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the ipsec preshared key", + "name": "presharedkey", + "type": "string" + } + ] + }, + { + "description": "Starts a router.", + "isasync": true, + "name": "startRouter", + "params": [ + { + "description": "the ID of the router", + "length": 255, + "name": "id", + "related": "destroyRouter,listRouters,rebootRouter,startRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", + "required": true, + "type": "uuid" + } + ], + "related": "destroyRouter,listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", + "response": [ + { + "description": "the domain ID associated with the router", + "name": "domainid", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "role of the domain router", + "name": "role", "type": "string" }, - {}, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "path of the Domain the router belongs to", + "name": "domainpath", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the Zone ID for the router", + "name": "zoneid", + "type": "string" + }, + { + "description": "the host ID for the router", + "name": "hostid", + "type": "string" + }, + { + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", + "type": "string" + }, + { + "description": "the state of the router", + "name": "state", + "type": "state" + }, + { + "description": "the hostname for the router", + "name": "hostname", + "type": "string" + }, + { + "description": "the Pod ID for the router", + "name": "podid", + "type": "string" + }, + { + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { @@ -24531,116 +17695,49 @@ "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - } - ], - "type": "set" + "description": "the control state of the host for the router", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the project name of the address", + "name": "project", + "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the public MAC address for the router", + "name": "publicmacaddress", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "the list of nics associated with vm", + "description": "the list of nics associated with the router", "name": "nic", "response": [ { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, { "description": "the cidr of IPv6 network", "name": "ip6cidr", @@ -24652,73 +17749,78 @@ "type": "list" }, { - "description": "the ID of the nic", - "name": "id", - "type": "string" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { @@ -24727,751 +17829,566 @@ "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "the type of the nic", + "name": "type", + "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", "type": "list" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" } ], "type": "set" }, { - "description": "the project name of the vm", - "name": "project", - "type": "string" + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the domain associated with the router", + "name": "domain", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the Zone name for the router", + "name": "zonename", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the guest IP address for the router", + "name": "guestipaddress", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the second DNS for the router", + "name": "dns2", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the name of the router", + "name": "name", + "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the guest netmask for the router", + "name": "guestnetmask", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the first DNS for the router", + "name": "dns1", + "type": "string" }, { "description": "the ID of the service offering of the virtual machine", "name": "serviceofferingid", "type": "string" }, - { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" - }, {}, { - "description": "the date when this virtual machine was created", + "description": "the date and time the router was created", "name": "created", "type": "date" }, + {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the public IP address for the router", + "name": "publicip", + "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the link local IP address for the router", + "name": "linklocalip", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the template ID for the router", + "name": "templateid", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the version of template", + "name": "version", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "the link local netmask for the router", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "Last executed health check result for the router", + "name": "healthcheckresults", "response": [ { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" + "description": "result of the health check", + "name": "success", + "type": "boolean" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the type of the health check - basic or advanced", + "name": "checktype", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "detailed response generated on running health check", + "name": "details", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the name of the health check on the router", + "name": "checkname", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" } ], - "type": "set" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "type": "list" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the account associated with the router", + "name": "account", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the guest MAC address for the router", + "name": "guestmacaddress", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the state of redundant virtual router", + "name": "redundantstate", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the public netmask for the router", + "name": "publicnetmask", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", "type": "string" } ] }, { - "description": "Generate DRS plan for a cluster", + "description": "(This API is deprecated, use scaleVirtualMachine API)Changes the service offering for a virtual machine. The virtual machine must be in a \"Stopped\" state for this command to take effect.", "isasync": false, - "name": "generateClusterDrsPlan", + "name": "changeServiceForVirtualMachine", "params": [ { - "description": "Maximum number of VMs to migrate for a DRS execution. Defaults to value of cluster's drs.vm.migrations setting", + "description": "New minimum number of IOPS for the custom disk offering", "length": 255, - "name": "migrations", + "name": "miniops", "required": false, - "type": "integer" + "since": "4.17", + "type": "long" }, { - "description": "the ID of the Cluster", + "description": "New maximum number of IOPS for the custom disk offering", "length": 255, - "name": "id", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - } - ], - "related": "executeClusterDrsPlan", - "response": [ - { - "description": "List of migrations", - "name": "migrations", - "type": "list" + "name": "maxiops", + "required": false, + "since": "4.17", + "type": "long" }, { - "description": "unique ID of the drs plan for cluster", + "description": "The ID of the virtual machine", + "length": 255, "name": "id", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Start event Id of the DRS Plan", - "name": "eventid", - "type": "string" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "Id of the cluster", - "name": "clusterid", - "type": "string" + "description": "the service offering ID to apply to the virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, - {}, { - "description": "Type of DRS Plan (Automated or Manual))", - "name": "type", - "type": "type" + "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "Status of DRS Plan", - "name": "status", - "type": "status" + "description": "Flag for automatic migration of the root volume with new compute offering whenever migration is required to apply the offering", + "length": 255, + "name": "automigrate", + "required": false, + "since": "4.17", + "type": "boolean" }, - {} - ], - "since": "4.19.0" - }, - { - "description": "Deletes a user for an account", - "isasync": false, - "name": "deleteUser", - "params": [ { - "description": "id of the user to be deleted", + "description": "Verify OK to Shrink", "length": 255, - "name": "id", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", - "required": true, - "type": "uuid" + "name": "shrinkok", + "required": false, + "since": "4.17", + "type": "boolean" } ], + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" - } - ] - }, - { - "description": "Initiates the specified power action to the host's out-of-band management interface", - "isasync": true, - "name": "issueOutOfBandManagementPowerAction", - "params": [ + }, { - "description": "out-of-band management power actions, valid actions are: ON, OFF, CYCLE, RESET, SOFT, STATUS", - "length": 255, - "name": "action", - "required": true, + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the ID of the host", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", + "type": "string" }, { - "description": "optional operation timeout in seconds that overrides the global or cluster-level out-of-band management timeout setting", - "length": 255, - "name": "timeout", - "required": false, - "type": "long" - } - ], - "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,configureOutOfBandManagement,changeOutOfBandManagementPassword", - "response": [ - { - "description": "the operation result description", - "name": "description", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, - {}, { - "description": "the out-of-band management interface address", - "name": "address", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" - }, - { - "description": "the out-of-band management interface password", + "description": "the password (if exists) of the virtual machine", "name": "password", "type": "string" }, { - "description": "the operation result", - "name": "status", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, - {}, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the out-of-band management driver for the host", - "name": "driver", - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.9.0" - }, - { - "description": "Create a new Shared File System of specified size and disk offering, attached to the given network", - "isasync": true, - "name": "createSharedFileSystem", - "params": [ + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" + }, { - "description": "the name of the shared filesystem.", - "length": 255, - "name": "name", - "required": true, + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the domain ID associated with the shared filesystem. If used with the account parameter returns the shared filesystem associated with the account for the specified domain.If account is NOT provided then the shared filesystem will be assigned to the caller account and domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the description for the shared filesystem.", - "length": 255, - "name": "description", - "required": false, - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "the disk offering to use for the underlying storage. This will define the size and other specifications like encryption and qos for the shared filesystem.", - "length": 255, - "name": "diskofferingid", - "related": "createDiskOffering,listDiskOfferings", - "required": true, - "type": "uuid" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the zone id.", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, - "type": "uuid" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "the account associated with the shared filesystem. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "max iops", - "length": 255, - "name": "maxiops", - "required": false, - "type": "long" + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" }, { - "description": "the filesystem format (XFS / EXT4) which will be installed on the shared filesystem.", - "length": 255, - "name": "filesystem", - "required": true, + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the size of the shared filesystem in GiB", - "length": 255, - "name": "size", - "required": false, - "type": "long" + "description": "the project name of the vm", + "name": "project", + "type": "string" }, { - "description": "network to attach the shared filesystem to", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" }, { - "description": "the project associated with the shared filesystem. Mutually exclusive with account parameter", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" }, { - "description": "min iops", - "length": 255, - "name": "miniops", - "required": false, - "type": "long" + "description": "the state of the virtual machine", + "name": "state", + "type": "string" }, { - "description": "the service offering to use for the shared filesystem instance hosting the data. The offering should be HA enabled and the cpu count and memory size should be greater than equal to sharedfsvm.min.cpu.count and sharedfsvm.min.ram.size respectively", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the provider to be used for the shared filesystem. The list of providers can be fetched by using the listSharedFileSystemProviders API.", - "length": 255, - "name": "provider", - "required": false, + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" - } - ], - "related": "listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "response": [ + }, {}, { - "description": "disk offering for the shared filesystem", - "name": "diskofferingname", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the shared filesystem provider", - "name": "provider", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, + {}, { - "description": "path to mount the shared filesystem", - "name": "path", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "Network ID of the shared filesystem", - "name": "networkid", - "type": "string" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "size of the shared filesystem", - "name": "size", - "type": "long" + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" }, { - "description": "the list of nics associated with the shared filesystem", + "description": "the list of nics associated with vm", "name": "nic", "response": [ { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { @@ -25480,39 +18397,34 @@ "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" }, { "description": "true if nic is default, false otherwise", @@ -25520,106 +18432,136 @@ "type": "boolean" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", + "description": "MTU configured on the NIC", + "name": "mtu", "type": "integer" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" } ], - "type": "list" + "type": "set" }, { - "description": "Name of the availability zone", - "name": "zonename", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" + }, + { + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "ID of the storage fs data volume", - "name": "volumeid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { @@ -25627,18 +18569,28 @@ "name": "tags", "response": [ { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -25646,434 +18598,845 @@ "name": "resourceid", "type": "string" }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, { "description": "customer associated with the tag", "name": "customer", "type": "string" }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, { "description": "the domain associated with the tag", "name": "domain", "type": "string" + } + ], + "type": "set" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", + "type": "string" + }, + { + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" + }, + { + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" + }, + { + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" + }, + { + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "path of the Domain associated with the tag", + "description": "path of the Domain the affinity group belongs to", "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", "type": "string" } ], "type": "set" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" }, { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "name of the storage pool hosting the data volume", - "name": "storage", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "ID of the shared filesystem", - "name": "id", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the project ID of the shared filesystem", - "name": "projectid", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "name of the storage fs data volume", - "name": "volumename", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the bytes allocated", - "name": "virtualsize", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "the project name of the shared filesystem", - "name": "project", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the filesystem format", - "name": "filesystem", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "ID of the storage fs vm", - "name": "vmstate", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the domain associated with the shared filesystem", - "name": "domain", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "Network name of the shared filesystem", - "name": "networkname", + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "service offering ID for the shared filesystem", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "the ID of the service offering of the virtual machine", "name": "serviceofferingid", "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, - {}, { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + } + ], + "type": "set" }, { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, + {}, { - "description": "the state of the shared filesystem", - "name": "state", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the account associated with the shared filesystem", - "name": "account", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { - "description": "name of the shared filesystem", - "name": "name", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "description of the shared filesystem", - "name": "description", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the shared filesystem's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" - } - ], - "since": "4.20.0" - }, - { - "description": "Deletes network device.", - "isasync": false, - "name": "deleteNetworkDevice", - "params": [ - { - "description": "Id of network device to delete", - "length": 255, - "name": "id", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, - {} + { + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", + "type": "string" + } ] }, { - "description": "Updates image store read-only status", + "description": "Resets a configuration. The configuration will be set to default value for global setting, and removed from account_details or domain_details for Account/Domain settings", "isasync": false, - "name": "updateImageStore", + "name": "resetConfiguration", "params": [ { - "description": "If set to true, it designates the corresponding image store to read-only, hence not considering them during storage migration", + "description": "the ID of the Zone to reset the parameter value for corresponding zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the Account to reset the parameter value for corresponding account", "length": 255, - "name": "readonly", + "name": "accountid", + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "The number of bytes CloudStack can use on this image storage.\n\tNOTE: this will be overwritten by the StatsCollector as soon as there is a SSVM to query the storage.", + "description": "the ID of the Image Store to reset the parameter value for corresponding image store", "length": 255, - "name": "capacitybytes", + "name": "imagestoreid", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,updateCloudToUseObjectStore", "required": false, - "type": "long" + "type": "uuid" }, { - "description": "The new name for the Image Store.", + "description": "the name of the configuration", "length": 255, "name": "name", - "required": false, + "required": true, "type": "string" }, { - "description": "Image Store UUID", + "description": "the ID of the Cluster to reset the parameter value for corresponding cluster", "length": 255, - "name": "id", - "related": "addSecondaryStorage,addSwift,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", - "required": true, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the Domain to reset the parameter value for corresponding domain", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the Storage pool to reset the parameter value for corresponding storage pool", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "required": false, "type": "uuid" } ], - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "related": "listConfigurations,updateConfiguration", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the name of the image store", - "name": "name", + "description": "the category of the configuration", + "name": "category", "type": "string" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "the group of the configuration", + "name": "group", "type": "string" }, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" + "description": "the value of the configuration", + "name": "id", + "type": "long" }, {}, { - "description": "the url of the image store", - "name": "url", + "description": "the component of the configuration", + "name": "component", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "the protocol of the image store", - "name": "protocol", + "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated", + "name": "scope", "type": "string" }, { - "description": "the Zone ID of the image store", - "name": "zoneid", + "description": "the name of the configuration", + "name": "name", "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the type of the configuration value", + "name": "type", + "type": "string" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the description of the configuration", + "name": "description", + "type": "string" }, { - "description": "the ID of the image store", - "name": "id", + "description": "the value of the configuration", + "name": "value", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if the configuration is dynamic", + "name": "isdynamic", "type": "boolean" }, - {} - ], - "since": "4.15.0" - }, - { - "description": "Assigns virtual machine or a list of virtual machines to a load balancer rule.", - "isasync": true, - "name": "assignToLoadBalancerRule", - "params": [ - { - "description": "the list of IDs of the virtual machine that are being assigned to the load balancer rule(i.e. virtualMachineIds=1,2,3)", - "length": 255, - "name": "virtualmachineids", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "type": "list" - }, { - "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].vmip=10.1.1.75", - "length": 255, - "name": "vmidipmap", - "required": false, - "since": "4.4", - "type": "map" + "description": "the subgroup of the configuration", + "name": "subgroup", + "type": "string" }, { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,createIpv6FirewallRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", + "description": "the display text of the configuration", "name": "displaytext", "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", - "name": "jobid", + "description": "the name of the parent configuration", + "name": "parent", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the possible options of the configuration value", + "name": "options", + "type": "string" + }, + { + "description": "the default value of the configuration", + "name": "defaultvalue", + "type": "string" }, {} - ] + ], + "since": "4.16.0" }, { - "description": "Lists all pending asynchronous jobs for the account.", + "description": "Lists all available OS mappings for given hypervisor", "isasync": false, - "name": "listAsyncJobs", + "name": "listGuestOsMapping", "params": [ { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "list mapping by Guest OS Type UUID", "length": 255, - "name": "account", + "name": "ostypeid", + "related": "listOsTypes,addGuestOs", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "list Guest OS mapping by hypervisor version. Must be used with hypervisor parameter", "length": 255, - "name": "pagesize", + "name": "hypervisorversion", "required": false, - "type": "integer" + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "", "length": 255, - "name": "listall", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { "description": "List by keyword", @@ -26083,784 +19446,720 @@ "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "list Guest OS mapping by OS display name", "length": 255, - "name": "isrecursive", + "name": "osdisplayname", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "", + "description": "list mapping by its UUID", "length": 255, - "name": "page", + "name": "id", + "related": "listGuestOsMapping,addGuestOsMapping,updateGuestOsMapping", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "The id of the management server", + "description": "", "length": 255, - "name": "managementserverid", - "related": "listManagementServers", + "name": "pagesize", "required": false, - "since": "4.19", - "type": "uuid" + "type": "integer" }, { - "description": "list only resources belonging to the domain specified", + "description": "list Guest OS mapping by OS mapping name with hypervisor", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "osnameforhypervisor", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "The start date of the async job (use format \"yyyy-MM-dd'T'HH:mm:ss'+'SSSS\")", + "description": "list Guest OS mapping by hypervisor", "length": 255, - "name": "startdate", + "name": "hypervisor", "required": false, - "type": "date" + "type": "string" } ], - "related": "queryAsyncJobResult", + "related": "addGuestOsMapping,updateGuestOsMapping", "response": [ { - "description": "the result type", - "name": "jobresulttype", - "type": "string" - }, - { - "description": "the domain that executed the async command", - "name": "domainpath", + "description": "the ID of the Guest OS type", + "name": "ostypeid", "type": "string" }, { - "description": "the current job status-should be 0 for PENDING", + "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the msid of the management server on which the job is running", - "name": "managementserverid", - "type": "long" - }, - { - "description": "the account that executed the async command", - "name": "account", + "description": "the hypervisor", + "name": "hypervisor", "type": "string" }, + {}, { - "description": "the async command executed", - "name": "cmd", + "description": "standard display name for the Guest OS", + "name": "osdisplayname", "type": "string" }, { - "description": "the result reason", - "name": "jobresult", - "type": "responseobject" + "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": "version of the hypervisor for mapping", + "name": "hypervisorversion", + "type": "string" }, { - "description": " the created date of the job", - "name": "created", - "type": "date" + "description": "hypervisor specific name for the Guest OS", + "name": "osnameforhypervisor", + "type": "string" }, { - "description": "the domain id that executed the async command", - "name": "domainid", + "description": "is the mapping user defined", + "name": "isuserdefined", "type": "string" }, { - "description": "the user that executed the async command", - "name": "userid", + "description": "the ID of the Guest OS mapping", + "name": "id", "type": "string" - }, + } + ], + "since": "4.4.0" + }, + { + "description": "List all public, private, and privileged templates.", + "isasync": false, + "name": "listTemplates", + "params": [ { - "description": "the result code for the job", - "name": "jobresultcode", - "type": "integer" + "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).", + "length": 255, + "name": "templatefilter", + "required": true, + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the progress information of the PENDING job", - "name": "jobprocstatus", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, - {}, { - "description": "the unique ID of the instance/entity object related to the job", - "name": "jobinstanceid", - "type": "string" + "description": "flag to list VNF templates or not; true if need to list VNF templates, false otherwise.", + "length": 255, + "name": "isvnf", + "required": false, + "since": "4.19.0", + "type": "boolean" }, { - "description": " the completed date of the job", - "name": "completed", - "type": "date" + "description": "ID of the image or image cache store", + "length": 255, + "name": "imagestoreid", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,createSecondaryStagingStore,updateCloudToUseObjectStore", + "required": false, + "since": "4.19", + "type": "uuid" }, { - "description": "the account id that executed the async command", - "name": "accountid", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the instance/entity object related to the job", - "name": "jobinstancetype", - "type": "string" + "description": "comma separated list of template details requested, value can be a list of [ all, min]", + "length": 255, + "name": "details", + "required": false, + "since": "4.15", + "type": "list" }, - {} - ] - }, - { - "description": "Archive one or more alerts.", - "isasync": false, - "name": "archiveAlerts", - "params": [ { - "description": "the IDs of the alerts", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "ids", - "related": "listAlerts,listAlertTypes", + "name": "isrecursive", "required": false, - "type": "list" + "type": "boolean" }, { - "description": "end date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "enddate", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "date" + "type": "uuid" }, { - "description": "start date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "startdate", + "name": "tags", "required": false, - "type": "date" + "type": "map" }, { - "description": "archive by alert type", + "description": "the template ID", "length": 255, - "name": "type", + "name": "id", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, - "type": "string" - } - ], - "response": [ + "type": "uuid" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the template name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the type of the template", + "length": 255, + "name": "templatetype", + "required": false, + "since": "4.19.0", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ] - }, - { - "description": "Deletes a Cisco Vnmc controller", - "isasync": false, - "name": "deleteCiscoVnmcResource", - "params": [ { - "description": "Cisco Vnmc resource ID", + "description": "list datadisk templates by parent template id", "length": 255, - "name": "resourceid", - "related": "addCiscoVnmcResource,listCiscoVnmcResources", - "required": true, + "name": "parenttemplateid", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "since": "4.4", "type": "uuid" - } - ], - "response": [ - {}, + }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "show removed templates as well", + "length": 255, + "name": "showremoved", + "required": false, "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "flag to display the resource image for the templates", + "length": 255, + "name": "showicon", + "required": false, + "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Creates a secondary storage selector, described by the heuristic rule.", - "isasync": false, - "name": "createSecondaryStorageSelector", - "params": [ + "description": "If set to true, list only unique templates across zones", + "length": 255, + "name": "showunique", + "required": false, + "since": "4.13.2", + "type": "boolean" + }, { - "description": "The description of the heuristic rule.", + "description": "ID of the storage pool", "length": 255, - "name": "description", - "required": true, - "type": "string" + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "required": false, + "since": "4.19", + "type": "uuid" }, { - "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "type", - "required": true, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "the hypervisor for which to restrict the search", + "length": 255, + "name": "hypervisor", + "required": false, "type": "string" }, { - "description": "The zone in which the heuristic rule will be applied.", + "description": "list templates by zoneId", "length": 255, "name": "zoneid", "related": "createZone,updateZone,listZones,listZones", - "required": true, + "required": false, "type": "uuid" }, { - "description": "The name identifying the heuristic rule.", + "description": "List by keyword", "length": 255, - "name": "name", - "required": true, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "The heuristic rule, in JavaScript language. It is required that it returns the UUID of a secondary storage pool. An example of a rule is `if (snapshot.hypervisorType === 'KVM') { '7832f261-c602-4e8e-8580-2496ffbbc45d'; }` would allocate all snapshots with the KVM hypervisor to the specified secondary storage UUID.", - "length": 65535, - "name": "heuristicrule", - "required": true, - "type": "string" + "description": "the IDs of the templates, mutually exclusive with id", + "length": 255, + "name": "ids", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "since": "4.9", + "type": "list" } ], - "related": "listSecondaryStorageSelectors,updateSecondaryStorageSelector", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ { - "description": "ID of the heuristic.", - "name": "id", - "type": "string" - }, - { - "description": "When the heuristic was removed.", - "name": "removed", - "type": "date" - }, - {}, - { - "description": "When the heuristic was created.", + "description": "the date this template was created", "name": "created", "type": "date" }, { - "description": "The heuristic rule, in JavaScript language, used to select a secondary storage to be directed.", - "name": "heuristicrule", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "Name of the heuristic.", - "name": "name", - "type": "string" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "Description of the heuristic.", - "name": "description", - "type": "string" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "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 zone which the heuristic is valid upon.", - "name": "zoneid", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", - "name": "type", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, - {} - ], - "since": "4.19.0" - }, - { - "description": "Adds a Brocade VCS Switch", - "isasync": true, - "name": "addBrocadeVcsDevice", - "params": [ { - "description": "Credentials to access the Brocade VCS Switch API", - "length": 255, - "name": "password", - "required": true, + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "Hostname of ip address of the Brocade VCS Switch.", - "length": 255, - "name": "hostname", - "required": true, + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "Credentials to access the Brocade VCS Switch API", - "length": 255, - "name": "username", - "required": true, - "type": "string" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, + {}, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": true, - "type": "uuid" - } - ], - "related": "listBrocadeVcsDevices", - "response": [ + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" + }, { - "description": "the principal switch Ip address", - "name": "hostname", + "description": "the ID of the secondary storage host for the template", + "name": "hostid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "device name", - "name": "brocadedevicename", - "type": "string" + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" }, { - "description": "the physical Network to which this Brocade VCS belongs to", - "name": "physicalnetworkid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "device id of the Brocade Vcs", - "name": "vcsdeviceid", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "name of the provider", - "name": "provider", + "description": "the status of the template", + "name": "status", "type": "string" }, - {}, - {} - ] - }, - { - "description": "Deleting resource tag(s)", - "isasync": true, - "name": "deleteTags", - "params": [ { - "description": "Delete tags for resource id(s)", - "length": 255, - "name": "resourceids", - "required": true, - "type": "list" + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "Delete tags matching key/value pairs", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", + "type": "string" }, { - "description": "Delete tag by resource type", - "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" - } - ], - "response": [ + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" + }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "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", + "description": "the project name of the template", + "name": "project", "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" - } - ], - "since": "4.0.0" - }, - { - "description": "create Tungsten-Fabric tag type", - "isasync": true, - "name": "createTungstenFabricTagType", - "params": [ - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, - "type": "uuid" }, { - "description": "Tungsten-Fabric tag type name", - "length": 255, - "name": "name", - "required": true, + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" - } - ], - "related": "listTungstenFabricTagType", - "response": [ + }, { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "Tungsten-Fabric tag type name", - "name": "name", - "type": "string" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - } - ] - }, - { - "description": "Restarts the network; includes 1) restarting network elements - virtual routers, DHCP servers 2) reapplying all public IPs 3) reapplying loadBalancing/portForwarding rules", - "isasync": true, - "name": "restartNetwork", - "params": [ - { - "description": "If cleanup old network elements", - "length": 255, - "name": "cleanup", - "required": false, + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", "type": "boolean" }, { - "description": "The ID of the network to restart.", - "length": 255, - "name": "id", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "Turn the network into a network with redundant routers.", - "length": 255, - "name": "makeredundant", - "required": false, - "since": "4.11.1", - "type": "boolean" + "description": "the ID of the OS type for this template.", + "name": "ostypeid", + "type": "string" }, { - "description": "Live patches the router software before restarting it. This parameter will only work when 'cleanup' is false.", - "length": 255, - "name": "livepatch", - "required": false, - "since": "4.17.0", + "description": "the processor bit size", + "name": "bits", + "type": "int" + }, + { + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, - {}, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] - }, - { - "description": "Logs a user into the CloudStack. A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the \"logout\" command has been issued or the session has expired.", - "isasync": false, - "name": "login", - "params": [ - { - "description": "Path of the domain that the user belongs to. Example: domain=/com/cloud/internal. If no domain is passed in, the ROOT (/) domain is assumed.", - "length": 255, - "name": "domain", - "required": false, - "type": "string" }, { - "description": "Username", - "length": 255, - "name": "username", - "required": true, + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "The id of the domain that the user belongs to. If both domain and domainId are passed in, \"domainId\" parameter takes precedence.", - "length": 255, - "name": "domainId", - "required": false, + "description": "the size of the template", + "name": "size", "type": "long" }, { - "description": "Hashed password (Default is MD5). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.", - "length": 255, - "name": "password", - "required": true, - "type": "string" - } - ], - "related": "oauthlogin", - "response": [ - { - "description": "Two factor authentication issuer", - "name": "issuerfor2fa", - "type": "string" - }, - { - "description": "Session key that can be passed in subsequent Query command calls", - "name": "sessionkey", - "type": "string" - }, - { - "description": "user time zoneoffset", - "name": "timezoneoffset", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "the account name the user belongs to", - "name": "account", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "first name of the user", - "name": "firstname", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the time period before the session has expired", - "name": "timeout", - "type": "integer" - }, - {}, - { - "description": "user time zone", - "name": "timezone", - "type": "string" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, { - "description": "User ID", - "name": "userid", + "description": "the ID of the zone for this template", + "name": "zoneid", "type": "string" }, { - "description": "the account type (admin, domain-admin, read-only-admin, user)", - "name": "type", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "Username", - "name": "username", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "Is two factor authentication verified", - "name": "is2faverified", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "Domain ID that the user belongs to", - "name": "domainid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "last name of the user", - "name": "lastname", - "type": "string" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "Two factor authentication provider", - "name": "providerfor2fa", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Is user registered", - "name": "registered", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "Is two factor authentication enabled", - "name": "is2faenabled", + "description": "the template display text", + "name": "displaytext", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" } ] }, { - "description": "Lists all hypervisor capabilities.", - "isasync": false, - "name": "listHypervisorCapabilities", + "description": "Creates an autoscale policy for a provision or deprovision action, the action is taken when the all the conditions evaluates to true for the specified duration. The policy is in effect once it is attached to a autscale vm group.", + "isasync": true, + "name": "createAutoScalePolicy", "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the hypervisor for which to restrict the search", + "description": "the list of IDs of the conditions that are being evaluated on every interval", "length": 255, - "name": "hypervisor", - "required": false, - "type": "string" + "name": "conditionids", + "related": "createCondition,listConditions", + "required": true, + "type": "list" }, { - "description": "", + "description": "the cool down period in which the policy should not be evaluated after the action has been taken", "length": 255, - "name": "pagesize", + "name": "quiettime", "required": false, "type": "integer" }, { - "description": "ID of the hypervisor capability", + "description": "the name of the autoscale policy", "length": 255, - "name": "id", - "related": "listHypervisorCapabilities", + "name": "name", "required": false, - "type": "uuid" + "since": "4.18.0", + "type": "string" }, { - "description": "", + "description": "the duration in which the conditions have to be true before action is taken", "length": 255, - "name": "page", - "required": false, + "name": "duration", + "required": true, "type": "integer" + }, + { + "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", + "length": 255, + "name": "action", + "required": true, + "type": "string" } ], - "related": "", + "related": "listAutoScalePolicies,updateAutoScalePolicy", "response": [ { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the project id autoscale policy", + "name": "projectid", "type": "string" }, { - "description": "the hypervisor type", - "name": "hypervisor", + "description": "the account owning the autoscale policy", + "name": "account", "type": "string" }, { - "description": "the maximum number of guest vms recommended for this hypervisor", - "name": "maxguestslimit", - "type": "long" + "description": "the domain name of the autoscale policy", + "name": "domain", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "name of the autoscale policy", + "name": "name", + "type": "string" }, { - "description": "true if security group is supported", - "name": "securitygroupenabled", - "type": "boolean" + "description": "the domain ID of the autoscale policy", + "name": "domainid", + "type": "string" + }, + {}, + { + "description": "the list of IDs of the conditions that are being evaluated on every interval", + "name": "conditions", + "type": "list" + }, + { + "description": "the project name of the autoscale policy", + "name": "project", + "type": "string" + }, + { + "description": "path of the domain to which the autoscale policy belongs", + "name": "domainpath", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -26868,160 +20167,139 @@ "type": "string" }, { - "description": "the ID of the hypervisor capabilities row", + "description": "the duration for which the conditions have to be true before action is taken", + "name": "duration", + "type": "integer" + }, + { + "description": "the autoscale policy ID", "name": "id", "type": "string" }, { - "description": "the maximum number of Data Volumes that can be attached for this hypervisor", - "name": "maxdatavolumeslimit", + "description": "the cool down period for which the policy should not be evaluated after the action has been taken", + "name": "quiettime", "type": "integer" }, { - "description": "true if VM snapshots are enabled for this hypervisor", - "name": "vmsnapshotenabled", - "type": "boolean" + "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", + "name": "action", + "type": "string" }, {}, { - "description": "true if storage motion is supported", - "name": "storagemotionenabled", - "type": "boolean" - }, - { - "description": "the maximum number of Hosts per cluster for this hypervisor", - "name": "maxhostspercluster", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" - }, - {} - ], - "since": "3.0.0" + } + ] }, { - "description": "Delete Project roles in CloudStack", + "description": "Removes stratosphere ssp server", "isasync": false, - "name": "deleteProjectRole", + "name": "deleteStratosphereSsp", "params": [ { - "description": "ID of the project from where the role is to be deleted", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": true, - "type": "uuid" - }, - { - "description": "ID of the project role to be deleted", + "description": "the host ID of ssp server", "length": 255, - "name": "id", - "related": "createProjectRole,listProjectRoles,updateProjectRole", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": true, "type": "uuid" } ], "response": [ { - "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": "any text associated with the success or failure", - "name": "displaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, {} - ], - "since": "4.15.0" + ] }, { - "description": "Get SolidFire Account ID", + "description": "deletes a range of Autonomous Systems for BGP Dynamic Routing", "isasync": false, - "name": "getSolidFireAccountId", + "name": "deleteASNRange", "params": [ { - "description": "CloudStack Account UUID", - "length": 255, - "name": "accountid", - "required": true, - "type": "string" - }, - { - "description": "Storage Pool UUID", + "description": "ID of the AS range", "length": 255, - "name": "storageid", + "name": "id", + "related": "createASNRange,listASNRanges", "required": true, - "type": "string" + "type": "uuid" } ], - "related": "", "response": [ + { + "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": "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": "SolidFire Account ID", - "name": "solidFireAccountId", - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" } - ] + ], + "since": "4.20.0" }, { - "description": "Lists role permissions", + "description": "Lists Usage Server metrics", "isasync": false, - "name": "listRolePermissions", - "params": [ - { - "description": "ID of the role", - "length": 255, - "name": "roleid", - "related": "createRole,importRole,listRoles,updateRole", - "required": false, - "type": "uuid" - } - ], + "name": "listUsageServerMetrics", + "params": [], "related": "", "response": [ {}, { - "description": "the api name or wildcard rule", - "name": "rule", - "type": "string" + "description": "the time these statistics were collected", + "name": "collectiontime", + "type": "date" }, { - "description": "the ID of the role permission", - "name": "id", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the role to which the role permission belongs", - "name": "roleid", + "description": "the name of the active usage server", + "name": "hostname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the last time a usage job successfully completed", + "name": "lastsuccessfuljob", + "type": "date" }, { "description": "the UUID of the latest async job acting on this object", @@ -27029,587 +20307,618 @@ "type": "string" }, { - "description": "the name of the role to which the role permission belongs", - "name": "rolename", - "type": "string" + "description": "the last time this Usage Server checked for jobs", + "name": "lastheartbeat", + "type": "date" }, - {}, { - "description": "the description of the role permission", - "name": "description", - "type": "string" + "description": "the state of the usage server", + "name": "state", + "type": "state" }, - { - "description": "the permission type of the api name or wildcard rule, allow/deny", - "name": "permission", - "type": "string" - } + {} ], - "since": "4.9.0" + "since": "4.17.0" }, { - "description": "Lists dedicated guest vlan ranges", - "isasync": false, - "name": "listDedicatedGuestVlanRanges", + "description": "Creates a bucket in the specified object storage pool. ", + "isasync": true, + "name": "createBucket", "params": [ { - "description": "the dedicated guest vlan range", + "description": "the domain ID associated with the bucket. If used with the account parameter returns the bucket associated with the account for the specified domain.", "length": 255, - "name": "guestvlanrange", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "Id of the Object Storage Pool where bucket is created", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "objectstorageid", + "related": "addObjectStoragePool,listObjectStoragePools", + "required": true, + "type": "uuid" }, { - "description": "the domain ID with which the guest VLAN range is associated. If used with the account parameter, returns all guest VLAN ranges for that account in the specified domain.", + "description": "Enable bucket encryption", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "encryption", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "physical network id of the guest VLAN range", + "description": "Enable object locking in bucket", "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", + "name": "objectlocking", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "project who will own the guest VLAN range", + "description": "the name of the bucket", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "name": "name", + "required": true, + "type": "string" }, { - "description": "", + "description": "the account associated with the bucket. Must be used with the domainId parameter.", "length": 255, - "name": "page", + "name": "account", "required": false, - "type": "integer" + "type": "string" }, { - "description": "list dedicated guest vlan ranges by id", + "description": "The Bucket access policy", "length": 255, - "name": "id", - "related": "dedicateGuestVlanRange,listDedicatedGuestVlanRanges", + "name": "policy", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the account with which the guest VLAN range is associated. Must be used with the domainId parameter.", + "description": "Enable bucket versioning", "length": 255, - "name": "account", + "name": "versioning", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "zone of the guest VLAN range", + "description": "the project associated with the bucket. Mutually exclusive with account parameter", "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 keyword", + "description": "Bucket Quota in GB", "length": 255, - "name": "keyword", + "name": "quota", "required": false, - "type": "string" + "type": "integer" } ], - "related": "dedicateGuestVlanRange", + "related": "listBuckets", "response": [ { - "description": "the account of the guest VLAN range", - "name": "account", - "type": "string" + "description": "Total size of objects in Bucket", + "name": "size", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project name of the bucket", + "name": "project", "type": "string" }, { - "description": "path of the domain to which the guest VLAN range belongs", - "name": "domainpath", + "description": "name of the Bucket", + "name": "name", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "Bucket Quota in GB", + "name": "quota", "type": "integer" }, { - "description": "the domain ID of the guest VLAN range", - "name": "domainid", + "description": "Bucket Access Key", + "name": "accesskey", "type": "string" }, + {}, { - "description": "the project name of the guest vlan range", - "name": "project", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "the guest VLAN range", - "name": "guestvlanrange", + "description": "path of the domain to which the bucket belongs", + "name": "domainpath", "type": "string" }, { - "description": "the physical network of the guest vlan range", - "name": "physicalnetworkid", - "type": "long" + "description": "the domain associated with the bucket", + "name": "domain", + "type": "string" }, { - "description": "the ID of the guest VLAN range", - "name": "id", + "description": "Name of the object storage hosting the Bucket; returned to admin user only", + "name": "objectstore", "type": "string" }, - {}, { - "description": "the domain name of the guest VLAN range", - "name": "domain", - "type": "string" + "description": "Bucket Versioning", + "name": "versioning", + "type": "boolean" }, { - "description": "the project id of the guest vlan range", - "name": "projectid", + "description": "Bucket Object Locking", + "name": "objectlocking", + "type": "boolean" + }, + { + "description": "Bucket Access Policy", + "name": "policy", "type": "string" }, { - "description": "the zone of the guest vlan range", - "name": "zoneid", - "type": "long" + "description": "Bucket Encryption", + "name": "encryption", + "type": "boolean" }, - {} - ] - }, - { - "description": "Lists all network ACL items", - "isasync": false, - "name": "listNetworkACLs", - "params": [ { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, + "description": "the date the Bucket was created", + "name": "created", + "type": "date" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "list network ACL items by protocol", - "length": 255, - "name": "protocol", - "required": false, + "description": "the account associated with the Bucket", + "name": "account", "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, + "description": "ID of the Bucket", + "name": "id", + "type": "string" + }, + { + "description": "the ID of the domain associated with the bucket", "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "Object storage provider", + "name": "provider", + "type": "string" }, { - "description": "Lists network ACL Item with the specified ID", - "length": 255, - "name": "id", - "related": "createNetworkACL,listNetworkACLs,updateNetworkACLItem,moveNetworkAclItem", - "required": false, - "type": "uuid" + "description": "id of the object storage hosting the Bucket; returned to admin user only", + "name": "objectstorageid", + "type": "string" }, { - "description": "list network ACL items by network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" + "description": "the project id of the bucket", + "name": "projectid", + "type": "string" }, + {}, { - "description": "list network ACL items by traffic type - ingress or egress", - "length": 255, - "name": "traffictype", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "Bucket Secret Key", + "name": "usersecretkey", "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "State of the Bucket", + "name": "state", + "type": "string" }, { - "description": "list network ACL items by ACL ID", + "description": "Bucket URL", + "name": "url", + "type": "string" + } + ], + "since": "4.19.0" + }, + { + "description": "Lists physical networks", + "isasync": false, + "name": "listPhysicalNetworks", + "params": [ + { + "description": "the Zone ID for the physical network", "length": 255, - "name": "aclid", - "related": "createNetworkACLList,listNetworkACLLists", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "List by keyword", + "description": "search by name", "length": 255, - "name": "keyword", + "name": "name", "required": false, "type": "string" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "List by keyword", "length": 255, - "name": "listall", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "list network ACL items by action", + "description": "list physical network by id", "length": 255, - "name": "action", + "name": "id", + "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", "required": false, - "type": "string" + "type": "uuid" } ], - "related": "createNetworkACL,updateNetworkACLItem,moveNetworkAclItem", + "related": "createPhysicalNetwork,updatePhysicalNetwork", "response": [ { - "description": "the name of the ACL this item belongs to", - "name": "aclname", + "description": "the speed of the physical network", + "name": "networkspeed", "type": "string" }, + {}, { - "description": "the ending port of ACL's port range", - "name": "endport", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "error code for this icmp message", - "name": "icmpcode", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "Action of ACL Item. Allow/Deny", - "name": "action", + "description": "zone name of the physical network", + "name": "zonename", "type": "string" }, + {}, { - "description": "Number of the ACL Item", - "name": "number", - "type": "integer" - }, - { - "description": "the ID of the ACL Item", + "description": "the uuid of the physical network", "name": "id", "type": "string" }, { - "description": "the ID of the ACL this item belongs to", - "name": "aclid", + "description": "the domain id of the physical network owner", + "name": "domainid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "comma separated tag", + "name": "tags", "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "zone id of the physical network", + "name": "zoneid", "type": "string" }, { - "description": "the list of resource tags associated with the network ACLs", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "list" + "description": "the vlan of the physical network", + "name": "vlan", + "type": "string" }, { - "description": "the protocol of the ACL", - "name": "protocol", + "description": "state of the physical network", + "name": "state", "type": "string" }, { - "description": "an explanation on why this ACL rule is being applied", - "name": "reason", + "description": "isolation methods", + "name": "isolationmethods", "type": "string" }, { - "description": "the starting port of ACL's port range", - "name": "startport", + "description": "name of the physical network", + "name": "name", "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, + "description": "Broadcast domain range of the physical network", + "name": "broadcastdomainrange", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Enables HA for a zone", + "isasync": true, + "name": "enableHAForZone", + "params": [ { - "description": "the state of the rule", - "name": "state", + "description": "ID of the zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the traffic type for the ACL", - "name": "traffictype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, + {}, { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" + "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" - }, - {} - ] + } + ], + "since": "4.11" }, { - "description": "Copies a template from one zone to another.", - "isasync": true, - "name": "copyTemplate", + "description": "Lists all firewall rules for an IP address.", + "isasync": false, + "name": "listFirewallRules", "params": [ { - "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": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "destzoneids", - "related": "createZone,updateZone,listZones,listZones", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "list" + "type": "uuid" }, { - "description": "Template ID.", + "description": "", "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "list firewall rules for certain network", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "since": "4.3", "type": "uuid" }, { - "description": "ID of the zone the template is being copied to.", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "destzoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, "type": "uuid" }, { - "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.", + "description": "the ID of IP address of the firewall services", "length": 255, - "name": "sourcezoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "ipaddressid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", "required": false, "type": "uuid" - } - ], - "related": "prepareTemplate,listIsos,registerIso,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "response": [ + }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, "type": "map" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" - }, - { - "description": "the project id of the template", - "name": "projectid", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", - "name": "deployasis", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "Lists rule with the specified ID.", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "required": false, + "type": "uuid" }, - {}, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "createFirewallRule,updateEgressFirewallRule", + "response": [ { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "the public ip address for the firewall rule", + "name": "ipaddress", "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the network id of the firewall rule", + "name": "networkid", "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the protocol of the firewall rule", + "name": "protocol", "type": "string" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "the public ip address id for the firewall rule", + "name": "ipaddressid", "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", + "name": "destcidrlist", "type": "string" }, - {}, { - "description": "checksum of the template", - "name": "checksum", - "type": "string" + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "the state of the rule", + "name": "state", "type": "string" }, + {}, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the list of resource tags associated", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -27618,38 +20927,38 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" }, { @@ -27658,226 +20967,142 @@ "type": "string" } ], - "type": "set" - }, - { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", - "type": "string" - }, - { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - }, - { - "description": "the name of the domain to which the template belongs", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", - "type": "string" - }, - { - "description": "the processor bit size", - "name": "bits", - "type": "int" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" - }, - { - "description": "the name of the OS type for this template.", - "name": "ostypename", - "type": "string" - }, - { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the date this template was removed", - "name": "removed", - "type": "date" - }, - { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" - }, - { - "description": "the template name", - "name": "name", - "type": "string" - }, - { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", - "type": "string" - }, - { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" - }, - { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "the account name to which the template belongs", - "name": "account", - "type": "string" - }, - { - "description": "the name of the zone for this template", - "name": "zonename", - "type": "string" - }, - { - "description": "the project name of the template", - "name": "project", - "type": "string" - }, - { - "description": "the template display text", - "name": "displaytext", - "type": "string" - }, - { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" + "type": "list" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", - "type": "boolean" + "description": "the starting port of firewall rule's port range", + "name": "startport", + "type": "integer" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "the traffic type for the firewall rule", + "name": "traffictype", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the ID of the firewall rule", + "name": "id", "type": "string" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" + "description": "the ending port of firewall rule's port range", + "name": "endport", + "type": "integer" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, + {} + ] + }, + { + "description": "Cleanups VM reservations in the database.", + "isasync": true, + "name": "cleanVMReservations", + "params": [], + "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "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", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {} + ] + }, + { + "description": " delete a Brocade VCS Switch", + "isasync": true, + "name": "deleteBrocadeVcsDevice", + "params": [ { - "description": "the tag of this template", - "name": "templatetag", - "type": "string" - }, + "description": "Brocade Switch ID", + "length": 255, + "name": "vcsdeviceid", + "related": "addBrocadeVcsDevice,listBrocadeVcsDevices", + "required": true, + "type": "uuid" + } + ], + "response": [ { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", - "type": "string" - } + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {} ] }, { - "description": "lists network that are using a nicira nvp device", + "description": "Lists all Routing firewall rules", "isasync": false, - "name": "listNiciraNvpDeviceNetworks", + "name": "listRoutingFirewallRules", "params": [ { - "description": "List by keyword", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "keyword", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "nicira nvp device ID", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "nvpdeviceid", - "related": "addNiciraNvpDevice,listNiciraNvpDevices", - "required": true, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, "type": "uuid" }, { - "description": "", + "description": "Lists Routing firewall rule with the specified ID", "length": 255, - "name": "page", + "name": "id", + "related": "createRoutingFirewallRule,listRoutingFirewallRules,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", "required": false, - "type": "integer" + "type": "uuid" }, { "description": "", @@ -27885,405 +21110,408 @@ "name": "pagesize", "required": false, "type": "integer" - } - ], - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "response": [ - { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", - "type": "string" - }, - { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", - "type": "boolean" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "The external id of the network", - "name": "externalid", - "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", - "type": "string" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "true network requires restart", - "name": "restartrequired", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "The IPv4 routing type of network", - "name": "ip4routing", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the network's netmask", - "name": "netmask", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "ACL name associated with the VPC network", - "name": "aclname", - "type": "string" + "description": "list Routing firewall rules by network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the traffic type of the network", - "name": "traffictype", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", + "description": "list Routing firewall rules by traffic type - ingress or egress", + "length": 255, + "name": "traffictype", + "required": false, "type": "string" }, { - "description": "list networks that are persistent", - "name": "ispersistent", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the network's gateway", - "name": "gateway", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" - }, + } + ], + "related": "createRoutingFirewallRule,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "response": [ { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the ID of the port forwarding rule", + "name": "id", "type": "string" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, + {}, { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" - }, - { - "description": "the first IPv4 DNS for the network", - "name": "dns1", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", + "type": "string" }, - {}, { - "description": "zone id of the network", - "name": "zoneid", + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", "type": "string" }, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", - "type": "boolean" + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", + "type": "string" }, { - "description": "the list of services", - "name": "service", + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "the service name", - "name": "name", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - } - ], - "type": "list" + "description": "id of the resource", + "name": "resourceid", + "type": "string" }, { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - } - ], - "type": "list" + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" } ], "type": "list" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, - {}, { - "description": "the id of the network", - "name": "id", + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", "type": "string" }, { - "description": "the name of the network", - "name": "name", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "acl type - access type to the network", - "name": "acltype", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" - }, + } + ], + "since": "4.20.0" + }, + { + "description": "Extracts an ISO", + "isasync": true, + "name": "extractIso", + "params": [ { - "description": "the physical network id", - "name": "physicalnetworkid", - "type": "string" + "description": "the ID of the ISO file", + "length": 255, + "name": "id", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", - "type": "string" + "description": "the ID of the zone where the ISO is originally located", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "the URL to which the ISO would be extracted", + "length": 2048, + "name": "url", + "required": false, "type": "string" }, { - "description": "the owner of the network", - "name": "account", + "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD", + "length": 255, + "name": "mode", + "required": true, "type": "string" - }, - { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", - "type": "boolean" - }, + } + ], + "related": "extractSnapshot,extractTemplate,extractVolume,downloadImageStoreObject", + "response": [ { - "description": "true if network is system, false otherwise", - "name": "issystem", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the name of the extracted object", + "name": "name", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "zone ID the object was extracted from", + "name": "zoneid", + "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "", + "name": "resultstring", + "type": "string" }, + {}, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", + "description": "the status of the extraction", + "name": "status", "type": "string" }, { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", - "type": "string" + "description": "the time and date the object was created", + "name": "created", + "type": "date" }, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" + "description": "the percentage of the entity uploaded to the specified location", + "name": "uploadpercentage", + "type": "integer" }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", + "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", + "name": "url", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the upload id of extracted object", + "name": "extractId", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "type of the storage", + "name": "storagetype", + "type": "string" }, { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" + "description": "the mode of extraction - upload or download", + "name": "extractMode", + "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", - "type": "boolean" + "description": "the state of the extracted object", + "name": "state", + "type": "string" }, { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", + "description": "zone name the object was extracted from", + "name": "zonename", "type": "string" }, + {}, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "the account id to which the extracted object belongs", + "name": "accountid", "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "the id of extracted object", + "name": "id", "type": "string" - }, + } + ] + }, + { + "description": "Updates Routing firewall rule with specified ID", + "isasync": true, + "name": "updateRoutingFirewallRule", + "params": [ { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", + "description": "an optional field, whether to the display the Routing firewall rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, "type": "boolean" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", - "type": "string" + "description": "the ID of the Routing firewall rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,updateRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" }, { - "description": "the type of the network", - "name": "type", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" - }, + } + ], + "related": "createRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "response": [ { - "description": "related to what other network configuration", - "name": "related", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, + {}, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "the list of resource tags associated with network", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -28292,23 +21520,23 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -28317,1594 +21545,1642 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "list" }, { - "description": "the name of the zone the network belongs to", - "name": "zonename", - "type": "string" - }, - { - "description": "VPC the network belongs to", - "name": "vpcid", + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", "type": "string" }, { - "description": "state of the network", - "name": "state", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", - "type": "string" + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" }, + {}, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" - }, - { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the date this network was created", - "name": "created", - "type": "date" + "description": "the ID of the port forwarding rule", + "name": "id", + "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the state of the rule", + "name": "state", + "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "the protocol of the port forwarding rule", + "name": "protocol", + "type": "string" }, { - "description": "the details of the network", - "name": "details", - "type": "map" + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", + "type": "string" }, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" }, { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", - "type": "integer" + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", + "type": "string" } - ] + ], + "since": "4.20.0" }, { - "description": " delete a BigSwitch BCF Controller device", - "isasync": true, - "name": "deleteBigSwitchBcfDevice", + "description": "Lists object storage pools.", + "isasync": false, + "name": "listObjectStoragePools", "params": [ { - "description": "BigSwitch device ID", + "description": "the object store provider", "length": 255, - "name": "bcfdeviceid", - "related": "listBigSwitchBcfDevices", - "required": true, + "name": "provider", + "required": false, + "type": "string" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "the ID of the storage pool", + "length": 255, + "name": "id", + "related": "addObjectStoragePool,listObjectStoragePools", + "required": false, "type": "uuid" + }, + { + "description": "the name of the object store", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" } ], + "related": "addObjectStoragePool", "response": [ - {}, + { + "description": "the ID of the object store", + "name": "id", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + { + "description": "the provider name of the object store", + "name": "providername", + "type": "string" + }, + {}, + {}, + { + "description": "the name of the object store", + "name": "name", + "type": "string" + }, + { + "description": "the object store currently used size", + "name": "storageused", + "type": "long" + }, { "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 total size of the object store", + "name": "storagetotal", + "type": "long" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the url of the object store", + "name": "url", "type": "string" - }, - {} + } ], - "since": "4.6.0" + "since": "4.19.0" }, { - "description": "Lists all available ovs elements.", + "description": "create secondary staging store.", "isasync": false, - "name": "listOvsElements", + "name": "createSecondaryStagingStore", "params": [ { - "description": "list ovs elements by id", + "description": "the Zone ID for the staging store", "length": 255, - "name": "id", - "related": "listOvsElements,configureOvsElement", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "list network offerings by enabled state", - "length": 255, - "name": "enabled", - "required": false, - "type": "boolean" - }, - { - "description": "list ovs elements by network service provider id", + "description": "the details for the staging store", "length": 255, - "name": "nspid", - "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", + "name": "details", "required": false, - "type": "uuid" + "type": "map" }, { - "description": "", + "description": "the scope of the staging store: zone only for now", "length": 255, - "name": "page", + "name": "scope", "required": false, - "type": "integer" + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the URL for the staging store", + "length": 2048, + "name": "url", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "the staging store provider name", "length": 255, - "name": "keyword", + "name": "provider", "required": false, "type": "string" } ], - "related": "configureOvsElement", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", "response": [ { - "description": "the id of the ovs", - "name": "id", + "description": "the provider name of the image store", + "name": "providername", "type": "string" }, { - "description": "the physical network service provider id of the provider", - "name": "nspid", + "description": "the Zone name of the image store", + "name": "zonename", "type": "string" }, { - "description": "the domain ID associated with the provider", - "name": "domainid", + "description": "the Zone ID of the image store", + "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", "name": "jobid", "type": "string" }, - {}, + { + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the protocol of the image store", + "name": "protocol", + "type": "string" + }, {}, { - "description": "the account associated with the provider", - "name": "account", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "Enabled/Disabled the service provider", - "name": "enabled", - "type": "boolean" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "the domain associated with the provider", - "name": "domain", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the ID of the image store", + "name": "id", "type": "string" }, + {}, { - "description": "the project name of the address", - "name": "project", - "type": "string" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, { - "description": "path of the domain to which the provider belongs", - "name": "domainpath", + "description": "the name of the image store", + "name": "name", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" } ] }, { - "description": "associate a profile to a blade", + "description": "Creates an affinity/anti-affinity group", "isasync": true, - "name": "associateUcsProfileToBlade", + "name": "createAffinityGroup", "params": [ { - "description": "blade id", + "description": "name of the affinity group", "length": 255, - "name": "bladeid", - "related": "associateUcsProfileToBlade", + "name": "name", "required": true, + "type": "string" + }, + { + "description": "create affinity group for project", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, "type": "uuid" }, { - "description": "profile dn", + "description": "domainId of the account owning the affinity group", "length": 255, - "name": "profiledn", - "required": true, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" + }, + { + "description": "optional description of the affinity group", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": "ucs manager id", + "description": "an account for the affinity group. Must be used with domainId.", "length": 255, - "name": "ucsmanagerid", - "related": "listUcsManagers,addUcsManager", + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "Type of the affinity group from the available affinity/anti-affinity group types", + "length": 255, + "name": "type", "required": true, - "type": "uuid" + "type": "string" } ], "related": "", "response": [ { - "description": "ucs blade id", + "description": "the ID of the affinity group", "name": "id", "type": "string" }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "ucs manager id", - "name": "ucsmanagerid", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "ucs blade dn", - "name": "bladedn", + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + {}, + { + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "cloudstack host id this blade associates to", - "name": "hostid", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, - {}, { - "description": "associated ucs profile dn", - "name": "profiledn", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, {}, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" } ] }, { - "description": "Updates a VMware datacenter details for a zone", + "description": "Logs a user into the CloudStack after successful verification of OAuth secret code from the particular provider.A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the \"logout\" command has been issued or the session has expired.", "isasync": false, - "name": "updateVmwareDc", + "name": "oauthlogin", "params": [ { - "description": "The username required to connect to resource.", + "description": "Path of the domain that the user belongs to. Example: domain=/com/cloud/internal. If no domain is passed in, the ROOT (/) domain is assumed.", "length": 255, - "name": "username", + "name": "domain", "required": false, "type": "string" }, { - "description": "VMware datacenter name.", + "description": "The id of the domain that the user belongs to. If both domain and domainId are passed in, \"domainId\" parameter takes precedence.", "length": 255, - "name": "name", + "name": "domainId", "required": false, - "type": "string" + "type": "long" }, { - "description": "The password for specified username.", + "description": "Name of the provider", "length": 255, - "name": "password", - "required": false, + "name": "provider", + "required": true, "type": "string" }, { - "description": "The zone ID", + "description": "Email id with which user tried to login using OAuth provider", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "email", "required": true, - "type": "uuid" - }, - { - "description": "Specify if cluster level username/password/url and host level guid need to be updated as well. By default this is true.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "type": "string" }, { - "description": "The name/IP of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", + "description": "Code that is provided by OAuth provider (Eg. google, github) after successful login", "length": 255, - "name": "vcenter", + "name": "secretcode", "required": false, "type": "string" } ], - "related": "addVmwareDc,listVmwareDcs", + "related": "login", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account type (admin, domain-admin, read-only-admin, user)", + "name": "type", "type": "string" }, { - "description": "The VMware Datacenter name", - "name": "name", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "The VMware Datacenter ID", - "name": "id", + "description": "Two factor authentication issuer", + "name": "issuerfor2fa", "type": "string" }, { - "description": "the Zone ID associated with this VMware Datacenter", - "name": "zoneid", - "type": "long" + "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": "Is two factor authentication verified", + "name": "is2faverified", + "type": "string" }, - {}, { - "description": "The VMware vCenter name/ip", - "name": "vcenter", + "description": "the account name the user belongs to", + "name": "account", "type": "string" - } - ], - "since": "4.12.0" - }, - { - "description": "Checks the 2FA code for the user.", - "isasync": false, - "name": "validateUserTwoFactorAuthenticationCode", - "params": [ + }, { - "description": "two factor authentication code", - "length": 255, - "name": "codefor2fa", - "required": true, + "description": "Username", + "name": "username", "type": "string" - } - ], - "response": [ + }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "Session key that can be passed in subsequent Query command calls", + "name": "sessionkey", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Two factor authentication provider", + "name": "providerfor2fa", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "first name of the user", + "name": "firstname", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "user time zoneoffset", + "name": "timezoneoffset", "type": "string" }, - {} - ], - "since": "4.18.0" - }, - { - "description": "Starts a router.", - "isasync": false, - "name": "getRouterHealthCheckResults", - "params": [ { - "description": "if true is passed for this parameter, health checks are performed on the fly. Else last performed checks data is fetched", - "length": 255, - "name": "performfreshchecks", - "required": false, - "type": "boolean" + "description": "Is user registered", + "name": "registered", + "type": "string" }, { - "description": "the ID of the router", - "length": 255, - "name": "routerid", - "related": "destroyRouter,listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - {}, + "description": "last name of the user", + "name": "lastname", + "type": "string" + }, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the time period before the session has expired", + "name": "timeout", "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Domain ID that the user belongs to", + "name": "domainid", "type": "string" }, { - "description": "the id of the router", - "name": "routerid", + "description": "Is two factor authentication enabled", + "name": "is2faenabled", "type": "string" }, { - "description": "the id of the router", - "name": "healthchecks", - "type": "list" - } + "description": "user time zone", + "name": "timezone", + "type": "string" + }, + { + "description": "User ID", + "name": "userid", + "type": "string" + }, + {} ], - "since": "4.14.0" + "since": "4.19.0" }, { - "description": "list control center", + "description": "Lists all available Internal Load Balancer elements.", "isasync": false, - "name": "listNetscalerControlCenter", + "name": "listInternalLoadBalancerElements", "params": [ { - "description": "List by keyword", + "description": "list internal load balancer elements by network service provider id", "length": 255, - "name": "keyword", + "name": "nspid", + "related": "addNetworkServiceProvider,listNetworkServiceProviders,updateNetworkServiceProvider,listTrafficTypes", "required": false, - "type": "string" + "type": "uuid" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "", + "description": "List by keyword", "length": 255, - "name": "pagesize", + "name": "keyword", "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "username", - "name": "username", "type": "string" }, { - "description": "ncc_ip", - "name": "ipaddress", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "num_retries", - "name": "numretries", - "type": "string" + "description": "list internal load balancer elements by enabled state", + "length": 255, + "name": "enabled", + "required": false, + "type": "boolean" }, { - "description": "id", + "description": "list internal load balancer elements by id", + "length": 255, "name": "id", - "type": "string" + "related": "configureInternalLoadBalancerElement,createInternalLoadBalancerElement,listInternalLoadBalancerElements", + "required": false, + "type": "uuid" + } + ], + "related": "configureInternalLoadBalancerElement,createInternalLoadBalancerElement", + "response": [ + { + "description": "Enabled/Disabled the element", + "name": "enabled", + "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": "uuid", - "name": "uuid", + "description": "the physical network service provider id of the element", + "name": "nspid", + "type": "string" + }, + { + "description": "the id of the internal load balancer element", + "name": "id", "type": "string" } - ] + ], + "since": "4.2.0" }, { - "description": "Resizes a volume", + "description": "Updates load balancer health check policy", "isasync": true, - "name": "resizeVolume", + "name": "updateLBHealthCheckPolicy", "params": [ { - "description": "New maximum number of IOPS", + "description": "an optional field, whether to the display the policy to the end user or not", "length": 255, - "name": "maxiops", + "name": "fordisplay", "required": false, - "type": "long" + "since": "4.4", + "type": "boolean" }, { - "description": "New minimum number of IOPS", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "miniops", + "name": "customid", "required": false, - "type": "long" + "since": "4.4", + "type": "string" }, { - "description": "the ID of the disk volume", + "description": "ID of load balancer health check policy", "length": 255, "name": "id", - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "createLBHealthCheckPolicy,listLBHealthCheckPolicies,updateLBHealthCheckPolicy", "required": true, "type": "uuid" - }, - { - "description": "Verify OK to Shrink", - "length": 255, - "name": "shrinkok", - "required": false, - "type": "boolean" - }, - { - "description": "new disk offering id", - "length": 255, - "name": "diskofferingid", - "related": "createDiskOffering,listDiskOfferings", - "required": false, - "type": "uuid" - }, - { - "description": "New volume size in GB", - "length": 255, - "name": "size", - "required": false, - "type": "long" } ], - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "createLBHealthCheckPolicy,listLBHealthCheckPolicies", "response": [ { - "description": "the path of the volume", - "name": "path", - "type": "string" - }, - { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "pod id of the volume", - "name": "podid", - "type": "string" - }, - {}, - { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", - "type": "string" - }, - { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" - }, - { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the LB rule ID", + "name": "lbruleid", "type": "string" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "the domain ID of the HealthCheck policy", + "name": "domainid", "type": "string" }, { - "description": "the status of the volume", - "name": "status", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "the account of the HealthCheck policy", + "name": "account", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of healthcheckpolicies", + "name": "healthcheckpolicy", "response": [ { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", + "description": "the LB HealthCheck policy ID", + "name": "id", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the description of the healthcheck policy", + "name": "description", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" + "description": "is policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the pingpath of the healthcheck policy", + "name": "pingpath", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the state of the policy", + "name": "state", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" + "description": "Number of consecutive health check success before declaring an instance healthy", + "name": "healthcheckthresshold", + "type": "int" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "Number of consecutive health check failures before declaring an instance unhealthy.", + "name": "unhealthcheckthresshold", + "type": "int" }, { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" + "description": "Amount of time between health checks", + "name": "healthcheckinterval", + "type": "int" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "Time to wait when receiving a response from the health check", + "name": "responsetime", + "type": "int" } ], - "type": "set" - }, - { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" - }, - { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "ID of the disk offering", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" + "type": "list" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the domain of the HealthCheck policy", + "name": "domain", "type": "string" }, + {}, { - "description": "pod name of the volume", - "name": "podname", + "description": "the id of the zone the HealthCheck policy belongs to", + "name": "zoneid", "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" - }, - { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ], + "since": "4.4" + }, + { + "description": "Gets the guest OS names in the hypervisor", + "isasync": true, + "name": "getHypervisorGuestOsNames", + "params": [ { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "Hypervisor type. One of : VMware, XenServer", + "length": 255, + "name": "hypervisor", + "required": true, "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" - }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "Hypervisor version to get the guest os names (atleast one hypervisor host with the version specified must be available)", + "length": 255, + "name": "hypervisorversion", + "required": true, "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" - }, - { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "Keyword for guest os name", + "length": 255, + "name": "keyword", + "required": false, "type": "string" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, + } + ], + "related": "", + "response": [ + {}, + {}, { - "description": "cluster id of the volume", - "name": "clusterid", - "type": "string" + "description": "the guest OS count of the hypervisor", + "name": "guestoscount", + "type": "integer" }, { - "description": "Hypervisor the volume belongs to", + "description": "the hypervisor", "name": "hypervisor", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" - }, - { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" - }, - { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" - }, - { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", - "type": "string" + "description": "the guest OS list of the hypervisor", + "name": "guestoslist", + "response": [ + { + "description": "standard display name for the Guest OS", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "hypervisor specific name for the Guest OS", + "name": "osnameforhypervisor", + "type": "string" + } + ], + "type": "list" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "version of the hypervisor for guest os names", + "name": "hypervisorversion", "type": "string" }, - { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, - { - "description": "the state of the disk volume", - "name": "state", - "type": "string" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", - "type": "string" - }, - { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" - }, - { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" - }, - { - "description": "the disk utilization", - "name": "utilization", - "type": "string" - }, - { - "description": "cluster name where the volume is allocated", - "name": "clustername", - "type": "string" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" - }, + } + ], + "since": "4.19.0" + }, + { + "description": "Reboots a virtual machine.", + "isasync": true, + "name": "rebootVirtualMachine", + "params": [ { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "Force reboot the VM (VM is Stopped and then Started)", + "length": 255, + "name": "forced", + "required": false, + "since": "4.16.0", + "type": "boolean" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", + "description": "Boot into hardware setup menu or not", + "length": 255, + "name": "bootintosetup", + "required": false, + "since": "4.15.0.0", "type": "boolean" }, { - "description": "the project name of the vpn", - "name": "project", - "type": "string" - }, + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + } + ], + "type": "set" + } + ], + "type": "set" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the project id of the vpn", + "description": "the project id of the vm", "name": "projectid", "type": "string" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", - "type": "string" - }, - {}, - { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" - }, - { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" - }, - { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" - }, - { - "description": "name of the disk volume", - "name": "name", - "type": "string" - }, - { - "description": "id of the virtual machine", - "name": "virtualmachineid", - "type": "string" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", "type": "long" - } - ] - }, - { - "description": "Deletes affinity group", - "isasync": true, - "name": "deleteAffinityGroup", - "params": [ - { - "description": "the account of the affinity group. Must be specified with domain ID", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "the domain ID of account owning the affinity group", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "The ID of the affinity group. Mutually exclusive with name parameter", - "length": 255, - "name": "id", - "related": "createAffinityGroup,listAffinityGroups", - "required": false, - "type": "uuid" - }, - { - "description": "The name of the affinity group. Mutually exclusive with ID parameter", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "the project of the affinity group", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" - } - ], - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {}, - { - "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": "Deletes a network offering.", - "isasync": false, - "name": "deleteNetworkOffering", - "params": [ - { - "description": "the ID of the network offering", - "length": 255, - "name": "id", - "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the host for the virtual machine", + "name": "hostname", "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" - } - ], - "since": "3.0.0" - }, - { - "description": "Dedicates a Pod.", - "isasync": true, - "name": "dedicatePod", - "params": [ { - "description": "the name of the account which needs dedication. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the ID of the Pod", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": true, - "type": "uuid" - }, - { - "description": "the ID of the containing domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": true, - "type": "uuid" - } - ], - "related": "listDedicatedPods", - "response": [ - { - "description": "the ID of the Pod", - "name": "podid", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, - {}, - { - "description": "the domain ID to which the Pod is dedicated", - "name": "domainid", - "type": "string" - }, - { - "description": "the ID of the dedicated resource", - "name": "id", - "type": "string" - }, - { - "description": "the Name of the Pod", - "name": "podname", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the Account Id to which the Pod is dedicated", - "name": "accountid", - "type": "string" - }, - {}, - { - "description": "the Dedication Affinity Group ID of the pod", - "name": "affinitygroupid", - "type": "string" - } - ] - }, - { - "description": "Update a Storage network IP range, only allowed when no IPs in this range have been allocated.", - "isasync": true, - "name": "updateStorageNetworkIpRange", - "params": [ - { - "description": "UUID of storage network ip range", - "length": 255, - "name": "id", - "related": "createStorageNetworkIpRange,listStorageNetworkIpRange,updateStorageNetworkIpRange", - "required": true, - "type": "uuid" - }, { - "description": "the ending IP address", - "length": 255, - "name": "endip", - "required": false, - "type": "string" - }, - { - "description": "Optional. the vlan the ip range sits on", - "length": 255, - "name": "vlan", - "required": false, - "type": "integer" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the netmask for storage network", - "length": 255, - "name": "netmask", - "required": false, + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "the beginning IP address", - "length": 255, - "name": "startip", - "required": false, - "type": "string" - } - ], - "related": "createStorageNetworkIpRange,listStorageNetworkIpRange", - "response": [ - { - "description": "the netmask of the storage network IP range", - "name": "netmask", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the end ip of the storage network IP range", - "name": "endip", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the start ip of the storage network IP range", - "name": "startip", - "type": "string" - }, - { - "description": "the network uuid of storage network IP range", - "name": "networkid", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the uuid of storage network IP range.", - "name": "id", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the Pod uuid for the storage network IP range", - "name": "podid", + "description": "User VM type", + "name": "vmtype", "type": "string" }, - {}, { - "description": "the Zone uuid of the storage network IP range", - "name": "zoneid", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", - "type": "integer" - }, - { - "description": "the gateway of the storage network IP range", - "name": "gateway", - "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Synchronize Tungsten-Fabric data", - "isasync": false, - "name": "synchronizeTungstenFabricData", - "params": [ - { - "description": "provider id", - "length": 255, - "name": "id", - "related": "createTungstenFabricProvider,listTungstenFabricProviders", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the VM's primary IP address", + "name": "ipaddress", "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": "Purge expunged resources", - "isasync": true, - "name": "purgeExpungedResources", - "params": [ - { - "description": "The end date range of the expunged resources used for purging (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\")", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" - }, - { - "description": "The size of batch used during purging", - "length": 255, - "name": "batchsize", - "required": false, - "type": "long" - }, - { - "description": "The type of the resource which need to be purged. Supported types: VirtualMachine", - "length": 255, - "name": "resourcetype", - "required": false, - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "The start date range of the expunged resources used for purging (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, - "type": "date" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "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 UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.20" - }, - { - "description": "Change disk offering of the volume and also an option to auto migrate if required to apply the new disk offering", - "isasync": true, - "name": "changeOfferingForVolume", - "params": [ { - "description": "New volume size in GB for the custom disk offering", - "length": 255, - "name": "size", - "required": false, - "type": "long" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the ID of the volume", - "length": 255, + "description": "the ID of the virtual machine", "name": "id", - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" - }, - { - "description": "New maximum number of IOPS for the custom disk offering", - "length": 255, - "name": "maxiops", - "required": false, - "type": "long" - }, - { - "description": "new disk offering id", - "length": 255, - "name": "diskofferingid", - "related": "createDiskOffering,listDiskOfferings", - "required": true, - "type": "uuid" + "type": "string" }, { - "description": "New minimum number of IOPS for the custom disk offering", - "length": 255, - "name": "miniops", - "required": false, - "type": "long" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + } + ], + "type": "set" }, { - "description": "Verify OK to Shrink", - "length": 255, - "name": "shrinkok", - "required": false, + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": "Flag for automatic migration of the volume with new disk offering whenever migration is required to apply the offering", - "length": 255, - "name": "automigrate", - "required": false, + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" - } - ], - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "response": [ - { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", - "type": "string" - }, - { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" - }, - { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", - "type": "string" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" - }, - { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" - }, - { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", - "type": "string" - }, - {}, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" - }, - { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "name of the disk volume", - "name": "name", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { "description": "the list of resource tags associated", "name": "tags", "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, { "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -29918,433 +23194,375 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { "description": "path of the Domain associated with the tag", "name": "domainpath", "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" } ], "type": "set" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" - }, - { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" - }, - { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" - }, - { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "state of the virtual machine", - "name": "vmstate", - "type": "string" - }, - { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", - "type": "string" - }, - { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" - }, - { - "description": "the path of the volume", - "name": "path", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" - }, - { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "ID of the service offering for root disk", + "description": "the ID of the service offering of the virtual machine", "name": "serviceofferingid", "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", + "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "shared or local storage", - "name": "storagetype", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" - }, - { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" - }, - { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" - }, - { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" - }, - { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, - {}, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", "type": "long" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the status of the volume", - "name": "status", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" - } - ], - "since": "4.17" - }, - { - "description": "Remove an Ldap Configuration", - "isasync": false, - "name": "deleteLdapConfiguration", - "params": [ - { - "description": "port", - "length": 255, - "name": "port", - "required": false, - "type": "integer" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "Hostname", - "length": 255, - "name": "hostname", - "required": true, - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "linked domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - } - ], - "related": "addLdapConfiguration,listLdapConfigurations", - "response": [ + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" + }, { - "description": "linked domain", - "name": "domainid", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "name of the host running the ldap server", - "name": "hostname", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, - { - "description": "port the ldap server is running on", - "name": "port", - "type": "int" - } - ], - "since": "4.2.0" + {} + ] }, { - "description": "Creates a Project role", - "isasync": false, - "name": "createProjectRole", + "description": "Enables HA cluster-wide", + "isasync": true, + "name": "enableHAForCluster", "params": [ { - "description": "The description of the Project role", - "length": 255, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "ID of project where role is being created", + "description": "ID of the cluster", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "clusterid", + "related": "addCluster,updateCluster", "required": true, "type": "uuid" - }, - { - "description": "creates a project role with this unique name", - "length": 255, - "name": "name", - "required": true, - "type": "string" } ], - "related": "listProjectRoles,updateProjectRole", "response": [ { - "description": "the name of the role", - "name": "name", - "type": "string" - }, - { - "description": "the id of the project", - "name": "projectid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, {}, { - "description": "the description of the role", - "name": "description", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, - { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", - "type": "boolean" - }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", @@ -30354,199 +23572,266 @@ "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, - { - "description": "the ID of the role", - "name": "id", - "type": "string" - }, - {} + } ], - "since": "4.15.0" + "since": "4.11" }, { - "description": "Creates an Ipv6 firewall rule in the given network (the network must not belong to VPC)", + "description": "Creates a load balancer rule", "isasync": true, - "name": "createIpv6FirewallRule", + "name": "createLoadBalancerRule", "params": [ + { + "description": "The protocol for the LB such as tcp, udp or tcp-proxy.", + "length": 255, + "name": "protocol", + "required": false, + "type": "string" + }, + { + "description": "public IP address ID from where the network traffic will be load balanced from", + "length": 255, + "name": "publicipid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": false, + "type": "uuid" + }, { "description": "an optional field, whether to the display the rule to the end user or not", "length": 255, "name": "fordisplay", "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "type of the ICMP message being sent", + "description": "the public port from where the network traffic will be load balanced from", "length": 255, - "name": "icmptype", - "required": false, + "name": "publicport", + "required": true, "type": "integer" }, { - "description": "the starting port of Ipv6 firewall rule", + "description": "The guest network this rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)", "length": 255, - "name": "startport", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the protocol for the Ipv6 firewall rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", + "description": "zone where the load balancer is going to be created. This parameter is required when LB service provider is ElasticLoadBalancerVm", "length": 255, - "name": "protocol", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "the private port of the private IP address/virtual machine where the network traffic will be load balanced to", + "length": 255, + "name": "privateport", "required": true, + "type": "integer" + }, + { + "description": "the description of the load balancer rule", + "length": 4096, + "name": "description", + "required": false, "type": "string" }, { - "description": "The network of the VM the Ipv6 firewall rule will be created for", + "description": "load balancer algorithm (source, roundrobin, leastconn)", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "algorithm", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "the destination CIDR list to allow traffic to. Multiple entries must be separated by a single comma character (,).", + "description": "the domain ID associated with the load balancer", "length": 255, - "name": "destcidrlist", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "list" + "type": "uuid" }, { - "description": "error code for this ICMP message", + "description": "the account associated with the load balancer. Must be used with the domainId parameter.", "length": 255, - "name": "icmpcode", + "name": "account", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the ending port of Ipv6 firewall rule", + "description": "name of the load balancer rule", "length": 255, - "name": "endport", - "required": false, - "type": "integer" + "name": "name", + "required": true, + "type": "string" }, { - "description": "the traffic type for the Ipv6 firewall rule, can be ingress or egress, defaulted to ingress if not specified", + "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. If not specified 1) defaulted to false when LB rule is being created for VPC guest network 2) in all other cases defaulted to true", "length": 255, - "name": "traffictype", + "name": "openfirewall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the source CIDR list to allow traffic from. Multiple entries must be separated by a single comma character (,).", + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,). By default, all CIDRs are allowed.", "length": 255, "name": "cidrlist", "required": false, + "since": "4.18.0.0", "type": "list" } ], - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", + "related": "listLoadBalancerRules,updateLoadBalancerRule", "response": [ { - "description": "the ID of the port forwarding rule", - "name": "id", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", + "description": "the protocol of the loadbalanacer rule", + "name": "protocol", "type": "string" }, { - "description": "is firewall for display to the regular user", + "description": "the project id of the load balancer", + "name": "projectid", + "type": "string" + }, + { + "description": "is rule for display to the regular user", "name": "fordisplay", "type": "boolean" }, - {}, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the zone the load balancer rule belongs to", + "name": "zonename", "type": "string" }, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "the private port", + "name": "privateport", + "type": "string" + }, + { + "description": "the name of the load balancer", + "name": "name", + "type": "string" + }, + { + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" + }, + { + "description": "the domain of the load balancer rule", + "name": "domain", "type": "string" }, {}, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "the project name of the load balancer", + "name": "project", "type": "string" }, + {}, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", + "description": "the id of the guest network the lb rule belongs to", + "name": "networkid", "type": "string" }, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "the account of the load balancer rule", + "name": "account", "type": "string" }, { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" }, { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", + "description": "the load balancer rule ID", + "name": "id", "type": "string" }, { - "description": "the list of resource tags associated with the rule", + "description": "the id of the zone the rule belongs to", + "name": "zoneid", + "type": "string" + }, + { + "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": "the description of the load balancer", + "name": "description", + "type": "string" + }, + { + "description": "the list of resource tags associated with load balancer", "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -30555,75 +23840,169 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "list" + } + ] + }, + { + "description": "Adds a guest OS name to hypervisor OS name mapping", + "isasync": true, + "name": "addGuestOsMapping", + "params": [ + { + "description": "Hypervisor type. One of : XenServer, KVM, VMWare", + "length": 255, + "name": "hypervisor", + "required": true, + "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "UUID of Guest OS type. Either the UUID or Display Name must be passed", + "length": 255, + "name": "ostypeid", + "related": "listOsTypes,addGuestOs", + "required": false, + "type": "uuid" + }, + { + "description": "OS name specific to the hypervisor", + "length": 255, + "name": "osnameforhypervisor", + "required": true, "type": "string" }, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "Display Name of Guest OS standard type. Either Display Name or UUID must be passed", + "length": 255, + "name": "osdisplayname", + "required": false, + "type": "string" + }, + { + "description": "Hypervisor version to create the mapping. Use 'default' for default versions. Please check hypervisor capabilities for correct version", + "length": 255, + "name": "hypervisorversion", + "required": true, + "type": "string" + }, + { + "description": "Forces add user defined guest os mapping, overrides any existing user defined mapping", + "length": 255, + "name": "forced", + "required": false, + "since": "4.19.0", + "type": "boolean" + }, + { + "description": "When set to true, checks for the correct guest os mapping name in the provided hypervisor (supports VMware and XenServer only. At least one hypervisor host with the version specified must be available. Default version will not work.)", + "length": 255, + "name": "osmappingcheckenabled", + "required": false, + "since": "4.19.0", + "type": "boolean" + } + ], + "related": "updateGuestOsMapping", + "response": [ + { + "description": "standard display name for the Guest OS", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "is the mapping user defined", + "name": "isuserdefined", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "hypervisor specific name for the Guest OS", + "name": "osnameforhypervisor", + "type": "string" + }, + {}, + { + "description": "version of the hypervisor for mapping", + "name": "hypervisorversion", "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] + }, + { + "description": "the hypervisor", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the ID of the Guest OS mapping", + "name": "id", + "type": "string" + }, + { + "description": "the ID of the Guest OS type", + "name": "ostypeid", + "type": "string" + }, + {} + ], + "since": "4.4.0" }, { - "description": "Triggers an automatic safe shutdown of CloudStack by not accepting new jobs and shutting down when all pending jobbs have been completed. Triggers an immediate shutdown if forced", - "isasync": false, - "name": "triggerShutdown", + "description": "Disables out-of-band management for a zone", + "isasync": true, + "name": "disableOutOfBandManagementForZone", "params": [ { - "description": "the uuid of the management server", + "description": "the ID of the zone", "length": 255, - "name": "managementserverid", - "related": "listManagementServers", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": true, "type": "uuid" } ], - "related": "cancelShutdown,prepareForShutdown,readyForShutdown", + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,enableOutOfBandManagementForZone,issueOutOfBandManagementPowerAction,changeOutOfBandManagementPassword", "response": [ - {}, { - "description": "Indicates whether CloudStack is ready to shutdown", - "name": "readyforshutdown", - "type": "boolean" + "description": "the ID of the host", + "name": "hostid", + "type": "string" }, { - "description": "Indicates whether a shutdown has been triggered", - "name": "shutdowntriggered", + "description": "the operation result", + "name": "status", "type": "boolean" }, { @@ -30632,851 +24011,1131 @@ "type": "integer" }, { - "description": "The number of jobs in progress", - "name": "pendingjobscount", - "type": "long" + "description": "the out-of-band management action (if issued)", + "name": "action", + "type": "string" }, { - "description": "The id of the management server", - "name": "managementserverid", - "type": "long" + "description": "the out-of-band management interface password", + "name": "password", + "type": "string" + }, + { + "description": "the out-of-band management driver for the host", + "name": "driver", + "type": "string" + }, + { + "description": "the out-of-band management interface port", + "name": "port", + "type": "string" + }, + {}, + { + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" + }, + { + "description": "the operation result description", + "name": "description", + "type": "string" }, {}, + { + "description": "the out-of-band management interface address", + "name": "address", + "type": "string" + }, + { + "description": "the out-of-band management interface username", + "name": "username", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" + }, + { + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" } ], - "since": "4.19.0" + "since": "4.9.0" }, { - "description": "Updates a network", - "isasync": true, - "name": "updateNetwork", + "description": "List all public, private, and privileged VNF templates.", + "isasync": false, + "name": "listVnfTemplates", "params": [ { - "description": "Setting this to true will cause a forced network update,", + "description": "the IDs of the templates, mutually exclusive with id", "length": 255, - "name": "forced", + "name": "ids", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, - "type": "boolean" + "since": "4.9", + "type": "list" }, { - "description": "the second IPv4 DNS for the network. Empty string will update the second IPv4 DNS with the value from the zone", + "description": "the template name", "length": 255, - "name": "dns2", + "name": "name", "required": false, - "since": "4.18.0", "type": "string" }, { - "description": "the first IPv6 DNS for the network. Empty string will update the first IPv6 DNS with the value from the zone", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "ip6dns1", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "since": "4.18.0", - "type": "string" + "type": "uuid" }, { - "description": "MTU to be configured on the network VR's public facing interfaces", + "description": "flag to display the resource image for the templates", "length": 255, - "name": "privatemtu", + "name": "showicon", "required": false, - "since": "4.18.0", - "type": "integer" + "type": "boolean" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "customid", + "name": "tags", "required": false, - "since": "4.4", - "type": "string" + "type": "map" }, { - "description": "an optional field, whether to the display the network to the end user or not.", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "displaynetwork", + "name": "isrecursive", "required": false, "type": "boolean" }, { - "description": "the new name for the network", + "description": "the hypervisor for which to restrict the search", "length": 255, - "name": "name", + "name": "hypervisor", "required": false, "type": "string" }, { - "description": "network domain", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "networkdomain", + "name": "account", "required": false, "type": "string" }, { - "description": "the new display text for the network", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "displaytext", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "if true, we will update the routers one after the other. applicable only for redundant router based networks using virtual router as provider", + "description": "flag to list VNF templates or not; true if need to list VNF templates, false otherwise.", "length": 255, - "name": "updateinsequence", + "name": "isvnf", "required": false, + "since": "4.19.0", "type": "boolean" }, { - "description": "MTU to be configured on the network VR's public facing interfaces", + "description": "", "length": 255, - "name": "publicmtu", + "name": "pagesize", "required": false, - "since": "4.18.0", "type": "integer" }, { - "description": "the second IPv6 DNS for the network. Empty string will update the second IPv6 DNS with the value from the zone", + "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", "length": 255, - "name": "ip6dns2", + "name": "arch", "required": false, - "since": "4.18.0", + "since": "4.20", "type": "string" }, { - "description": "the ID of the network", + "description": "comma separated list of template details requested, value can be a list of [ all, min]", + "length": 255, + "name": "details", + "required": false, + "since": "4.15", + "type": "list" + }, + { + "description": "list datadisk templates by parent template id", + "length": 255, + "name": "parenttemplateid", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "since": "4.4", + "type": "uuid" + }, + { + "description": "the template ID", "length": 255, "name": "id", - "related": "createNetwork,listNetworks,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, "type": "uuid" }, { - "description": "when true ip address usage for the network will not be exported by the listUsageRecords API", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "hideipaddressusage", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "Force update even if CIDR type is different", + "description": "If set to true, list only unique templates across zones", "length": 255, - "name": "changecidr", + "name": "showunique", "required": false, + "since": "4.13.2", "type": "boolean" }, { - "description": "the first IPv4 DNS for the network. Empty string will update the first IPv4 DNS with the value from the zone", + "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).", "length": 255, - "name": "dns1", - "required": false, - "since": "4.18.0", + "name": "templatefilter", + "required": true, "type": "string" }, { - "description": "IPV4 address to be assigned to the public interface of the network router. This address must already be acquired for this network", + "description": "", "length": 255, - "name": "sourcenatipaddress", + "name": "page", "required": false, - "since": "4.19", + "type": "integer" + }, + { + "description": "the type of the template", + "length": 255, + "name": "templatetype", + "required": false, + "since": "4.19.0", "type": "string" }, { - "description": "network offering ID", + "description": "list templates by zoneId", "length": 255, - "name": "networkofferingid", - "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "CIDR for guest VMs, CloudStack allocates IPs to guest VMs only from this CIDR", + "description": "show removed templates as well", "length": 255, - "name": "guestvmcidr", + "name": "showremoved", + "required": false, + "type": "boolean" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", "required": false, "type": "string" } ], - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ { - "description": "zone id of the network", - "name": "zoneid", + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "VPC the network belongs to", - "name": "vpcid", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "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": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" + }, + { + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" + }, + { + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" + }, + { + "description": "the URL which the template/iso is registered from", + "name": "url", + "type": "string" + }, + { + "description": "the processor bit size", + "name": "bits", + "type": "int" + }, + { + "description": "the ID of the OS type for this template.", + "name": "ostypeid", + "type": "string" + }, + { + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", + "type": "string" + }, + { + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, {}, { - "description": "The external id of the network", - "name": "externalid", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", "type": "boolean" }, + {}, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" + }, + { + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the name of the zone for this template", + "name": "zonename", + "type": "string" + }, + { + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", + "description": "the date this template was removed", + "name": "removed", + "type": "date" + }, + { + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "the size of the template", + "name": "size", + "type": "long" + }, + { + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "true network requires restart", - "name": "restartrequired", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" + }, + { + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", "type": "boolean" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" + }, + { + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" + }, + { + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", + "description": "the name of userdata linked to this template", + "name": "userdataname", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "true if network is system, false otherwise", - "name": "issystem", + "description": "the tag of this template", + "name": "templatetag", + "type": "string" + }, + { + "description": "the date this template was created", + "name": "created", + "type": "date" + }, + { + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" + }, + { + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" + }, + { + "description": "the project id of the template", + "name": "projectid", + "type": "string" + }, + { + "description": "the type of the template", + "name": "templatetype", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" + }, + { + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" + }, + { + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" + }, + { + "description": "the format of the template.", + "name": "format", + "type": "imageformat" + }, + { + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", "type": "boolean" }, { - "description": "The IPv4 routing type of network", - "name": "ip4routing", + "description": "the account name to which the template belongs", + "name": "account", + "type": "string" + }, + { + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" + }, + { + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the date this network was created", - "name": "created", - "type": "date" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" + } + ], + "since": "4.19.0" + }, + { + "description": "Creates and automatically starts a VNF appliance based on a service offering, disk offering, and template.", + "isasync": true, + "name": "deployVnfAppliance", + "params": [ + { + "description": "the CIDR list to forward traffic from to the VNF management interface. Multiple entries must be separated by a single comma character (,). The default value is 0.0.0.0/0.", + "length": 255, + "name": "vnfcidrlist", + "required": false, + "type": "list" }, { - "description": "the owner of the network", - "name": "account", + "description": "the ipv6 address for default vm's network", + "length": 255, + "name": "ip6address", + "required": false, "type": "string" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", + "description": "Controls specific policies on IO", + "length": 255, + "name": "iodriverpolicy", + "required": false, "type": "string" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", + "description": "an optional user generated name for the virtual machine", + "length": 255, + "name": "displayname", + "required": false, + "type": "string" + }, + { + "description": "used to specify the parameters values for the variables in userdata.", + "length": 255, + "name": "userdatadetails", + "required": false, + "since": "4.18", + "type": "map" + }, + { + "description": "true if virtual machine needs to be dynamically scalable", + "length": 255, + "name": "dynamicscalingenabled", + "required": false, + "since": "4.16", "type": "boolean" }, { - "description": "the domain id of the network owner", - "name": "domainid", - "type": "string" + "description": "comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter", + "length": 255, + "name": "securitygroupids", + "related": "createSecurityGroup,updateSecurityGroup", + "required": false, + "type": "list" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", - "type": "string" + "description": "names of the ssh key pairs used to login to the virtual machine", + "length": 255, + "name": "keypairs", + "required": false, + "since": "4.17", + "type": "list" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", - "type": "integer" + "description": "the ID of the template for the virtual machine", + "length": 255, + "name": "templateid", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "the project name of the address", - "name": "project", - "type": "string" + "description": "VMware only: used to specify network mapping of a vApp VMware template registered \"as-is\". Example nicnetworklist[0].ip=Nic-101&nicnetworklist[0].network=uuid", + "length": 255, + "name": "nicnetworklist", + "required": false, + "since": "4.15", + "type": "map" }, { - "description": "list networks that are persistent", - "name": "ispersistent", - "type": "boolean" + "description": "the ID of the Userdata", + "length": 255, + "name": "userdataid", + "related": "", + "required": false, + "since": "4.18", + "type": "uuid" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the hypervisor on which to deploy the virtual machine. The parameter is required and respected only when hypervisor info is not set on the ISO/Template passed to the call", + "length": 255, + "name": "hypervisor", + "required": false, + "type": "string" }, { - "description": "the physical network id", - "name": "physicalnetworkid", + "description": "an optional URL encoded string that can be passed to the virtual machine upon successful deployment", + "length": 5120, + "name": "extraconfig", + "required": false, + "since": "4.12", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used. If account is NOT provided then virtual machine will be assigned to the caller account and domain.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "the type of the network", - "name": "type", - "type": "string" + "description": "the arbitrary size for the DATADISK volume. Mutually exclusive with diskOfferingId", + "length": 255, + "name": "size", + "required": false, + "type": "long" }, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" + "description": "Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided", + "length": 255, + "name": "rootdisksize", + "required": false, + "since": "4.4", + "type": "long" }, { - "description": "the network's gateway", - "name": "gateway", + "description": "host name for the virtual machine", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" + "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", + "length": 255, + "name": "securitygroupnames", + "related": "createSecurityGroup,updateSecurityGroup", + "required": false, + "type": "list" }, { - "description": "network offering id the network is created from", - "name": "networkofferingid", - "type": "string" + "description": "the ID of the disk offering for the virtual machine to be used for root volume instead of the disk offering mapped in service offering.In case of virtual machine deploying from ISO, then the diskofferingid specified for root volume is ignored and uses this override disk offering id", + "length": 255, + "name": "overridediskofferingid", + "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "required": false, + "since": "4.17", + "type": "uuid" }, { - "description": "the network's netmask", - "name": "netmask", + "description": "an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us", + "length": 255, + "name": "keyboard", + "required": false, "type": "string" }, { - "description": "the details of the network", - "name": "details", + "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com", + "length": 255, + "name": "dhcpoptionsnetworklist", + "required": false, "type": "map" }, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", - "type": "string" + "description": "availability zone for the virtual machine", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" }, { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", + "description": "if true the image tags (if any) will be copied to the VM, default value is false", + "length": 255, + "name": "copyimagetags", + "required": false, + "since": "4.13", "type": "boolean" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "Guest VM Boot option either custom[UEFI] or default boot [BIOS]. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "length": 255, + "name": "boottype", + "required": false, + "since": "4.14.0.0", "type": "string" }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", + "description": "an optional group for the virtual machine", + "length": 255, + "name": "group", + "required": false, "type": "string" }, { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", - "type": "boolean" + "description": "the ip address for default vm's network", + "length": 255, + "name": "ipaddress", + "required": false, + "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter", + "length": 255, + "name": "affinitygroupids", + "related": "", + "required": false, + "type": "list" }, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "name of the ssh key pair used to login to the virtual machine", + "length": 255, + "name": "keypair", + "required": false, "type": "string" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", - "type": "string" + "description": "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid&iptonetworklist[0].mac=aa:bb:cc:dd:ee::ff - requests to use ip 10.10.10.11 in network id=uuid", + "length": 255, + "name": "iptonetworklist", + "required": false, + "type": "map" }, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", + "description": "the mac address for default vm's network", + "length": 255, + "name": "macaddress", + "required": false, "type": "string" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", - "type": "string" + "description": "an optional field, whether to the display the vm to the end user or not.", + "length": 255, + "name": "displayvm", + "required": false, + "since": "4.2", + "type": "boolean" }, { - "description": "the list of resource tags associated with network", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "list" + "description": "Deploy vm for the project", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskOfferingId is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateId parameter passed is from a Template object, the diskOfferingId refers to a DATA Disk Volume created. If the templateId parameter passed is from an ISO object, the diskOfferingId refers to a ROOT Disk Volume created.", + "length": 255, + "name": "diskofferingid", + "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "required": false, + "type": "uuid" }, { - "description": "the list of services", - "name": "service", - "response": [ - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - } - ], - "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": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "Boot Mode [Legacy] or [Secure] Applicable when Boot Type Selected is UEFI, otherwise Legacy only for BIOS. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "length": 255, + "name": "bootmode", + "required": false, + "since": "4.14.0.0", + "type": "string" }, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", - "type": "string" + "description": "datadisk template to disk-offering mapping; an optional parameter used to create additional data disks from datadisk templates; can't be specified with diskOfferingId parameter", + "length": 255, + "name": "datadiskofferinglist", + "required": false, + "since": "4.11", + "type": "map" }, { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, "type": "string" }, { - "description": "acl type - access type to the network", - "name": "acltype", + "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", + "required": false, "type": "string" }, { - "description": "the name of the network", - "name": "name", - "type": "string" + "description": "The number of queues for multiqueue NICs.", + "length": 255, + "name": "nicmultiqueuenumber", + "required": false, + "since": "4.18", + "type": "integer" }, { - "description": "ACL name associated with the VPC network", - "name": "aclname", - "type": "string" + "description": "list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter", + "length": 255, + "name": "networkids", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "list" }, { - "description": "the first IPv4 DNS for the network", - "name": "dns1", - "type": "string" + "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter", + "length": 255, + "name": "affinitygroupnames", + "related": "", + "required": false, + "type": "list" }, { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" + "description": "the ID of the service offering for the virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "True by default, security group or network rules (source nat and firewall rules) will be configured for VNF management interfaces. False otherwise. Network rules are configured if management network is an isolated network or shared network with security groups.", + "length": 255, + "name": "vnfconfiguremanagement", + "required": false, + "type": "boolean" }, { - "description": "the id of the network", - "name": "id", + "description": "Deployment planner to use for vm allocation. Available to ROOT admin only", + "length": 255, + "name": "deploymentplanner", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "state of the network", - "name": "state", - "type": "string" + "description": "true if start vm after creating; defaulted to true if not specified", + "length": 255, + "name": "startvm", + "required": false, + "type": "boolean" }, { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" + "description": "Enable packed virtqueues or not.", + "length": 255, + "name": "nicpackedvirtqueuesenabled", + "required": false, + "since": "4.18", + "type": "boolean" }, { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", + "description": "an optional account for the virtual machine. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", - "type": "string" + "description": "IOThreads are dedicated event loop threads for supported disk devices to perform block I/O requests in order to improve scalability especially on an SMP host/guest with many LUNs.", + "length": 255, + "name": "iothreadsenabled", + "required": false, + "type": "boolean" }, { - "description": "related to what other network configuration", - "name": "related", - "type": "string" + "description": "used to specify the vApp properties.", + "length": 255, + "name": "properties", + "required": false, + "since": "4.15", + "type": "map" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", + "description": "Boot into hardware setup or not (ignored if startVm = false, only valid for vmware)", + "length": 255, + "name": "bootintosetup", + "required": false, + "since": "4.15.0.0", "type": "boolean" }, { - "description": "the name of the zone the network belongs to", - "name": "zonename", + "description": "The password of the virtual machine. If null, a random password will be generated for the VM.", + "length": 255, + "name": "password", + "required": false, + "since": "4.19.0.0", "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", - "type": "string" + "description": "used to specify the custom parameters. 'extraconfig' is not allowed to be passed in details", + "length": 255, + "name": "details", + "required": false, + "since": "4.3", + "type": "map" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "destination Host ID to deploy the VM to - parameter available for root admin only", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": false, + "type": "uuid" + } + ], + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the traffic type of the network", - "name": "traffictype", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, - {}, - { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", - "type": "string" - }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, + {}, { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" - } - ] - }, - { - "description": "List Usage Types", - "isasync": false, - "name": "listUsageTypes", - "params": [], - "related": "", - "response": [ - { - "description": "Usage type description", - "name": "description", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" }, { - "description": "Usage type name", - "name": "name", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "Usage type ID", - "name": "id", - "type": "integer" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, - {} - ] - }, - { - "description": "Deletes a VPC", - "isasync": true, - "name": "deleteVPC", - "params": [ - { - "description": "the ID of the VPC", - "length": 255, - "name": "id", - "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", - "required": true, - "type": "uuid" - } - ], - "response": [ { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" - } - ] - }, - { - "description": "Attempts Migration of a VM to a different host or Root volume of the vm to a different storage pool", - "isasync": true, - "name": "migrateVirtualMachine", - "params": [ + }, + {}, { - "description": "Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" + "description": "State of the Service from LB rule", + "name": "servicestate", + "type": "string" }, { - "description": "Automatically select a destination host which do not require storage migration, if hostId and storageId are not specified. false by default", - "length": 255, - "name": "autoselect", - "required": false, - "since": "4.16.0", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", + "type": "string" }, { - "description": "Destination Host ID to migrate VM to.", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": false, - "type": "uuid" - } - ], - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "response": [ + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" + }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "User VM type", - "name": "vmtype", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { "description": "the name of the ISO attached to the virtual machine", @@ -31484,86 +25143,23 @@ "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": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the name of the virtual machine", + "name": "name", + "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { @@ -31571,38 +25167,18 @@ "name": "nic", "response": [ { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { @@ -31611,18 +25187,13 @@ "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { @@ -31631,8 +25202,13 @@ "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { @@ -31641,23 +25217,28 @@ "type": "integer" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { @@ -31676,159 +25257,226 @@ "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" } ], "type": "set" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the state of the virtual machine", + "name": "state", + "type": "string" + }, + { + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" + }, + { + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, + { + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" + }, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "the description of the security group", - "name": "description", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "account owning the security group rule", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" }, { - "description": "security group name", - "name": "securitygroupname", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the protocol of the security group rule", - "name": "protocol", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" }, { @@ -31836,28 +25484,28 @@ "name": "tags", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -31866,13 +25514,13 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -31881,179 +25529,107 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], "type": "set" - } - ], - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", - "type": "string" + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "security group name", + "name": "securitygroupname", "type": "string" } ], "type": "set" }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, { "description": "the list of egress rules associated with the security group", "name": "egressrule", "response": [ { - "description": "account owning the security group rule", - "name": "account", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", + "description": "security group name", + "name": "securitygroupname", "type": "string" }, { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" }, { - "description": "security group name", - "name": "securitygroupname", - "type": "string" + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -32062,18 +25638,18 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { @@ -32082,108 +25658,275 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" } ], "type": "set" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" } ], "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" } ], "type": "set" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the project id of the vm", + "name": "projectid", + "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" + }, + { + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "the project name of the vm", + "name": "project", "type": "string" }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, { "description": "Os type ID of the virtual machine", "name": "guestosid", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" + }, + { + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", + "type": "string" + }, + { + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" + }, + { + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" }, { "description": "the incoming network traffic on the VM in KiB", @@ -32191,13 +25934,85 @@ "type": "long" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" + }, + { + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { @@ -32206,538 +26021,447 @@ "type": "boolean" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", + "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" + }, + { + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, + {}, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the memory used by the VM in KiB", + "name": "memorykbs", "type": "long" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" + } + ], + "since": "4.19.0" + }, + { + "description": "Updates a network offering.", + "isasync": false, + "name": "updateNetworkOffering", + "params": [ + { + "description": "update state for the network offering", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the availability of network offering. The value is Required makes this network offering default for Guest Virtual Networks. Only one network offering can have the value Required ", + "length": 255, + "name": "availability", + "required": false, "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.", + "length": 255, + "name": "keepaliveenabled", + "required": false, "type": "boolean" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", + "length": 4096, + "name": "zoneid", + "required": false, + "since": "4.13", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the tags for the network offering.", + "length": 4096, + "name": "tags", + "required": false, "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "sort key of the network offering, integer", + "length": 255, + "name": "sortkey", + "required": false, + "type": "integer" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "maximum number of concurrent connections supported by the network offering", + "length": 255, + "name": "maxconnections", + "required": false, + "type": "integer" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the display text of the network offering", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, - {}, { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" + "description": "the id of the network offering", + "length": 255, + "name": "id", + "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", + "required": false, + "type": "uuid" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", + "length": 255, + "name": "domainid", + "required": false, "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the name of the network offering", + "length": 255, + "name": "name", + "required": false, "type": "string" + } + ], + "related": "createNetworkOffering,listNetworkOfferings", + "response": [ + { + "description": "true if network offering is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" + "description": "maximum number of concurrents connections to be handled by lb", + "name": "maxconnections", + "type": "integer" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "state of the network offering. Can be Disabled/Enabled/Inactive", + "name": "state", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" + "description": "true if network offering is ip conserve mode enabled", + "name": "conservemode", + "type": "boolean" }, - {}, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" + "description": "the date this network offering was created", + "name": "created", + "type": "date" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if network offering can be used by VPC networks only", + "name": "forvpc", + "type": "boolean" + }, + { + "description": "availability of the network offering", + "name": "availability", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "additional key/value details tied with network offering", + "name": "details", + "type": "map" + }, + { + "description": "the name of the network offering", + "name": "name", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "true if network offering supports choosing AS numbers", + "name": "specifyasnumber", + "type": "boolean" + }, + { + "description": "true if network offering supports public access for guest networks", + "name": "supportspublicaccess", + "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": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "true if network offering supports vlans, false otherwise", + "name": "specifyvlan", + "type": "boolean" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "guest type of the network offering, can be Shared or Isolated", + "name": "guestiptype", + "type": "string" + }, + {}, + { + "description": "the list of supported services", + "name": "service", "response": [ { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + } + ], "type": "list" }, { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", + "description": "the service name", + "name": "name", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" - }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + } + ], + "type": "list" + } + ], "type": "list" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" - }, - { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" + "description": "true if network offering can be used by NSX networks only", + "name": "fornsx", + "type": "boolean" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", + "name": "networkmode", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "an alternate display text of the network offering.", + "name": "displaytext", "type": "string" }, + {}, { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "true if network offering supports public access for guest networks", + "name": "supportsinternallb", + "type": "boolean" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.", + "name": "traffictype", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "true if network offering supports specifying ip ranges, false otherwise", + "name": "specifyipranges", "type": "boolean" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "true if network offering can be used by Tungsten-Fabric networks only", + "name": "fortungsten", + "type": "boolean" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the tags for the network offering", + "name": "tags", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zone", "type": "string" - } - ] - }, - { - "description": "Deletes a Kubernetes cluster", - "isasync": true, - "name": "deleteKubernetesSupportedVersion", - "params": [ - { - "description": "the ID of the Kubernetes supported version", - "length": 255, - "name": "id", - "related": "addKubernetesSupportedVersion,listKubernetesSupportedVersions,updateKubernetesSupportedVersion", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the id of the network offering", + "name": "id", "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", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "list baremetal rack configuration", - "isasync": false, - "name": "listBaremetalRct", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "data transfer rate in megabits per second allowed.", + "name": "networkrate", "type": "integer" }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "addBaremetalRct", - "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, { - "description": "url", - "name": "url", + "description": "the ID of the service offering used by virtual router provider", + "name": "serviceofferingid", "type": "string" }, { - "description": "id of rct", - "name": "id", + "description": "the internet protocol of the network offering", + "name": "internetprotocol", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if network offering supports network that span multiple zones", + "name": "supportsstrechedl2subnet", + "type": "boolean" }, - {} - ] - }, - { - "description": "Lists available certificate authority providers in CloudStack", - "isasync": false, - "name": "listCAProviders", - "params": [ - { - "description": "List CA service provider by name", - "length": 255, - "name": "name", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if network offering supports persistent networks, false otherwise", + "name": "ispersistent", + "type": "boolean" }, { - "description": "the description of the CA service provider", - "name": "description", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "the CA service provider name", - "name": "name", - "type": "string" - } - ], - "since": "4.11.0" - }, - { - "description": "Delete site to site vpn customer gateway", - "isasync": true, - "name": "deleteVpnCustomerGateway", - "params": [ - { - "description": "id of customer gateway", - "length": 255, - "name": "id", - "related": "createVpnCustomerGateway,listVpnCustomerGateways,updateVpnCustomerGateway", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the routing mode for the network offering, supported types are Static or Dynamic.", + "name": "routingmode", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", "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": "Lists all port forwarding rules for an IP address.", + "description": "Lists all IPv6 firewall rules", "isasync": false, - "name": "listPortForwardingRules", + "name": "listIpv6FirewallRules", "params": [ { - "description": "List resources by tags (key/value pairs)", + "description": "", "length": 255, - "name": "tags", + "name": "page", "required": false, - "type": "map" + "type": "integer" }, { - "description": "Lists rule with the specified ID.", + "description": "Lists ipv6 firewall rule with the specified ID", "length": 255, "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,listIpv6FirewallRules,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", "required": false, "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "isrecursive", + "name": "tags", "required": false, - "type": "boolean" + "type": "map" }, { "description": "list objects by project; if projectid=-1 lists All VMs", @@ -32748,13 +26472,11 @@ "type": "uuid" }, { - "description": "list port forwarding rules for certain network", + "description": "List by keyword", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "keyword", "required": false, - "since": "4.3", - "type": "uuid" + "type": "string" }, { "description": "list resources by account. Must be used with the domainId parameter.", @@ -32764,19 +26486,12 @@ "type": "string" }, { - "description": "List by keyword", + "description": "list ipv6 firewall rules by traffic type - ingress or egress", "length": 255, - "name": "keyword", + "name": "traffictype", "required": false, "type": "string" }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, { "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, @@ -32789,85 +26504,50 @@ "length": 255, "name": "fordisplay", "required": false, - "since": "4.4", "type": "boolean" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, { "description": "list only resources belonging to the domain specified", "length": 255, "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, "type": "uuid" }, { - "description": "the ID of IP address of the port forwarding services", + "description": "list ipv6 firewall rules by network ID", "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,reserveIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" } ], - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", "response": [ - { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", - "type": "string" - }, - {}, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", - "type": "string" - }, - { - "description": "the protocol of the port forwarding rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", - "type": "string" - }, { "description": "the VM display name for the port forwarding rule", "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "the state of the rule", - "name": "state", - "type": "string" + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { "description": "the VM name for the port forwarding rule", @@ -32875,29 +26555,8 @@ "type": "string" }, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", - "type": "string" - }, - {}, - { - "description": "the ID of the port forwarding rule", - "name": "id", - "type": "string" - }, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "the state of the rule", + "name": "state", "type": "string" }, { @@ -32905,33 +26564,28 @@ "name": "tags", "response": [ { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -32944,945 +26598,588 @@ "name": "key", "type": "string" }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, { "description": "the domain associated with the tag", "name": "domain", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" } ], "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" - } - ] - }, - { - "description": "Allocates IP addresses in respective Pod of a Zone", - "isasync": false, - "name": "acquirePodIpAddress", - "params": [ - { - "description": "the ID of the zone", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, - "type": "string" - }, - { - "description": "Pod ID", - "length": 255, - "name": "podid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "CIDR of the Pod", - "name": "cidr", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "nicid", - "type": "long" - }, - {}, - { - "description": "Gateway for Pod ", - "name": "gateway", + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", "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", - "name": "jobid", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "MAC address of the pod the IP", - "name": "hostmac", - "type": "long" - }, - { - "description": "the ID of the pod the IP address", + "description": "the ID of the port forwarding rule", "name": "id", - "type": "long" - }, - { - "description": "Allocated IP address", - "name": "ipaddress", "type": "string" }, { - "description": "the ID of the pod the IP address belongs to", - "name": "podid", - "type": "long" - } - ] - }, - { - "description": "Enables out-of-band management for a cluster", - "isasync": true, - "name": "enableOutOfBandManagementForCluster", - "params": [ - { - "description": "the ID of the cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - } - ], - "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,disableOutOfBandManagementForCluster,configureOutOfBandManagement,changeOutOfBandManagementPassword", - "response": [ - { - "description": "the operation result description", - "name": "description", + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" - }, - { - "description": "the out-of-band management driver for the host", - "name": "driver", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" }, { - "description": "the out-of-band management interface address", - "name": "address", + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", "type": "string" }, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" - }, - { - "description": "the out-of-band management interface password", - "name": "password", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, - { - "description": "the operation result", - "name": "status", - "type": "boolean" - }, + {}, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", + "type": "string" }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", "type": "string" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" } - ], - "since": "4.9.0" + ] }, { - "description": "Updates a template visibility permissions. A public template is visible to all accounts within the same domain. A private template is visible only to the owner of the template. A privileged template is a private template with account permissions added. Only accounts specified under the template permissions are visible to them.", - "isasync": false, - "name": "updateTemplatePermissions", + "description": "Stops a system VM.", + "isasync": true, + "name": "stopSystemVm", "params": [ { - "description": "a comma delimited list of accounts within caller's domain. If specified, \"op\" parameter has to be passed in.", - "length": 255, - "name": "accounts", - "required": false, - "type": "list" - }, - { - "description": "true for featured template/iso, false otherwise", + "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", "length": 255, - "name": "isfeatured", + "name": "forced", "required": false, "type": "boolean" }, { - "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.", - "length": 255, - "name": "projectids", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "list" - }, - { - "description": "the template ID", + "description": "The ID of the system virtual machine", "length": 255, "name": "id", - "related": "prepareTemplate,listIsos,registerIso,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "listSystemVms,migrateSystemVm,startSystemVm,stopSystemVm,changeServiceForSystemVm", "required": true, "type": "uuid" - }, - { - "description": "true for public template/iso, false for private templates/isos", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" - }, - { - "description": "permission operator (add, remove, reset)", - "length": 255, - "name": "op", - "required": false, - "type": "string" - }, - { - "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin", - "length": 255, - "name": "isextractable", - "required": false, - "type": "boolean" } ], + "related": "listSystemVms,migrateSystemVm,startSystemVm,changeServiceForSystemVm", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {} - ] - }, - { - "description": "Resets the password for virtual machine. The virtual machine must be in a \"Stopped\" state and the template must already support this feature for this command to take effect. [async]", - "isasync": true, - "name": "resetPasswordForVirtualMachine", - "params": [ { - "description": "The new password of the virtual machine. If null, a random password will be generated for the VM.", - "length": 255, - "name": "password", - "required": false, - "since": "4.19.0", + "description": "the Pod ID for the system VM", + "name": "podid", "type": "string" }, { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "response": [ - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the link local IP address for the system vm", + "name": "linklocalip", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the agent state of the system VM", + "name": "agentstate", + "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the private IP address for the system VM", + "name": "privateip", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the second DNS for the system VM", + "name": "dns2", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the template ID for the system VM", + "name": "templateid", + "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the private netmask for the system VM", + "name": "privatenetmask", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the public netmask for the system VM", + "name": "publicnetmask", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the ID of the system VM", + "name": "id", "type": "string" }, - {}, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the state of the system VM", + "name": "state", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "public vlan range", + "name": "publicvlan", + "type": "list" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the Pod name for the system VM", + "name": "podname", "type": "string" }, - {}, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the systemvm agent version", + "name": "version", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the Zone name for the system VM", + "name": "zonename", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the Zone ID for the system VM", + "name": "zoneid", + "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - } - ], - "type": "set" + "description": "the name of the system VM", + "name": "name", + "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the template name for the system VM", + "name": "templatename", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "guest vlan range", + "name": "guestvlan", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the network domain for the system VM", + "name": "networkdomain", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the host ID for the system VM", + "name": "hostid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the public IP address for the system VM", + "name": "publicip", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the date and time the system VM was created", + "name": "created", + "type": "date" + } + ] + }, + { + "description": "Deletes an egress firewall rule", + "isasync": true, + "name": "deleteEgressFirewallRule", + "params": [ + { + "description": "the ID of the firewall rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,createIpForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {} + ] + }, + { + "description": "Updates a VPC", + "isasync": true, + "name": "updateVPC", + "params": [ { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "IPV4 address to be assigned to the public interface of the network router. This address must already be acquired for this VPC", + "length": 255, + "name": "sourcenatipaddress", + "required": false, + "since": "4.19", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the id of the VPC", + "length": 255, + "name": "id", + "related": "createVPC,listVPCs,updateVPC,createVPC,listVPCs,updateVPC,migrateVPC", + "required": true, + "type": "uuid" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the display text of the VPC", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the name of the VPC", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "an optional field, whether to the display the vpc to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "MTU to be configured on the network VR's public facing interfaces", + "length": 255, + "name": "publicmtu", + "required": false, + "since": "4.18.0", + "type": "integer" + } + ], + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "response": [ + { + "description": "zone id of the vpc", + "name": "zoneid", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", + "description": "AS NUMBER", + "name": "asnumber", "type": "long" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "vpc offering name the VPC is created from", + "name": "vpcofferingname", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" + "description": "if this VPC has redundant router", + "name": "redundantvpcrouter", + "type": "boolean" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, - {}, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "MTU configured on the public interfaces of the VPC VR", + "name": "publicmtu", + "type": "integer" + }, + { + "description": "the second IPv4 DNS for the VPC", + "name": "dns2", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "is vpc for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "the date this VPC was created", + "name": "created", + "type": "date" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the network domain of the VPC", + "name": "networkdomain", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" + "description": "true if VPC is region level", + "name": "regionlevelvpc", + "type": "boolean" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "vpc offering id the VPC is created from", + "name": "vpcofferingid", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the first IPv4 DNS for the VPC", + "name": "dns1", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "an alternate display text of the VPC.", + "name": "displaytext", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the name of the zone the VPC belongs to", + "name": "zonename", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "true VPC requires restart", + "name": "restartrequired", + "type": "boolean" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - } - ], - "type": "set" + "description": "the name of the VPC", + "name": "name", + "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the domain id of the VPC owner", + "name": "domainid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" + "description": "the list of networks belongign to the VPC", + "name": "network", + "type": "list" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of resource tags associated", + "description": "the list of resource tags associated with the project", "name": "tags", "response": [ { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -33891,8 +27188,8 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -33901,485 +27198,225 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the id of the VPC", + "name": "id", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "state of the VPC. Can be Inactive/Enabled", + "name": "state", + "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", + "description": "the first IPv6 DNS for the VPC", + "name": "ip6dns1", + "type": "string" + }, + { + "description": "the list of supported services", + "name": "service", "response": [ { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", + "description": "the service provider name", + "name": "provider", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "state of the network provider", + "name": "state", "type": "string" }, { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "security group name", - "name": "securitygroupname", - "type": "string" + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" }, { - "description": "account owning the security group rule", - "name": "account", - "type": "string" + "description": "services for this provider", + "name": "servicelist", + "type": "list" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "uuid of the network provider", + "name": "id", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", + "description": "the provider name", + "name": "name", "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" } ], - "type": "set" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" + "type": "list" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the service name", + "name": "name", "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "the list of capabilities", + "name": "capability", "response": [ { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "the capability name", + "name": "name", "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" }, { - "description": "security group name", - "name": "securitygroupname", + "description": "the capability value", + "name": "value", "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" } ], - "type": "set" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "type": "list" } ], - "type": "set" + "type": "list" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the project id of the VPC", + "name": "projectid", + "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "The IPv4 routing mode of VPC", + "name": "ip4routing", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the cidr the VPC", + "name": "cidr", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "The routes for the VPC to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the project name of the VPC", + "name": "project", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the owner of the VPC", + "name": "account", + "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" + "description": "The BGP peers for the VPC", + "name": "bgppeers", + "type": "set" }, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" + "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", + "name": "distributedvpcrouter", + "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the second IPv6 DNS for the VPC", + "name": "ip6dns2", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - } + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + {}, + {} ] }, { - "description": "Lists Brocade VCS Switches", - "isasync": false, - "name": "listBrocadeVcsDevices", + "description": "Changes out-of-band management interface password on the host and updates the interface configuration in CloudStack if the operation succeeds, else reverts the old password", + "isasync": true, + "name": "changeOutOfBandManagementPassword", "params": [ { - "description": "List by keyword", + "description": "the ID of the host", "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": true, + "type": "uuid" }, { - "description": "Brocade VCS switch ID", + "description": "the new host management interface password of maximum length 16, if none is provided a random password would be used", "length": 255, - "name": "vcsdeviceid", - "related": "listBrocadeVcsDevices", + "name": "password", "required": false, - "type": "uuid" + "type": "string" + } + ], + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,enableOutOfBandManagementForZone,issueOutOfBandManagementPowerAction", + "response": [ + { + "description": "the out-of-band management interface password", + "name": "password", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" + "description": "the out-of-band management action (if issued)", + "name": "action", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "the ID of the host", + "name": "hostid", + "type": "string" + }, + {}, { - "description": "the physical Network to which this Brocade VCS belongs to", - "name": "physicalnetworkid", + "description": "the out-of-band management interface username", + "name": "username", + "type": "string" + }, + { + "description": "the operation result description", + "name": "description", "type": "string" }, { @@ -34388,13 +27425,8 @@ "type": "integer" }, { - "description": "name of the provider", - "name": "provider", - "type": "string" - }, - { - "description": "the principal switch Ip address", - "name": "hostname", + "description": "the out-of-band management interface address", + "name": "address", "type": "string" }, { @@ -34403,214 +27435,187 @@ "type": "string" }, { - "description": "device name", - "name": "brocadedevicename", + "description": "the out-of-band management interface port", + "name": "port", "type": "string" }, + { + "description": "the operation result", + "name": "status", + "type": "boolean" + }, {}, { - "description": "device id of the Brocade Vcs", - "name": "vcsdeviceid", + "description": "the out-of-band management driver for the host", + "name": "driver", "type": "string" }, - {} - ] + { + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" + } + ], + "since": "4.9.0" }, { - "description": "link an existing cloudstack domain to group or OU in ldap", + "description": "List VM Schedules.", "isasync": false, - "name": "linkDomainToLdap", + "name": "listVMSchedule", "params": [ { - "description": "name of the group or OU in LDAP", + "description": "List by keyword", "length": 255, - "name": "name", + "name": "keyword", "required": false, "type": "string" }, { - "description": "domain admin username in LDAP ", + "description": "", "length": 255, - "name": "admin", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "name of the group or OU in LDAP", + "description": "ID of VM schedule", "length": 255, - "name": "ldapdomain", + "name": "enabled", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin", + "description": "", "length": 255, - "name": "accounttype", - "required": true, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "The id of the domain which has to be linked to LDAP.", + "description": "ID of the VM for which schedule is to be defined", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, "type": "uuid" }, { - "description": "type of the ldap name. GROUP or OU", + "description": "Action taken by schedule", "length": 255, - "name": "type", - "required": true, + "name": "action", + "required": false, "type": "string" + }, + { + "description": "ID of VM schedule", + "length": 255, + "name": "id", + "related": "createVMSchedule,listVMSchedule,updateVMSchedule", + "required": false, + "type": "uuid" } ], - "related": "linkAccountToLdap", + "related": "createVMSchedule,updateVMSchedule", "response": [ { - "description": "Type of the account to auto import", - "name": "accounttype", - "type": "int" - }, - { - "description": "type of the name in LDAP which is linked to the domain", - "name": "type", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Domain Admin accountId that is created", - "name": "accountid", + "description": "ID of virtual machine", + "name": "virtualmachineid", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "name of the group or OU in LDAP which is linked to the domain", - "name": "name", + "description": "Cron formatted VM schedule", + "name": "schedule", "type": "string" }, + {}, + {}, { - "description": "name of the group or OU in LDAP which is linked to the domain", - "name": "ldapdomain", - "type": "string" + "description": "VM schedule is enabled", + "name": "enabled", + "type": "boolean" }, { - "description": "id of the Domain which is linked to LDAP", - "name": "domainid", + "description": "Timezone of the schedule", + "name": "timezone", "type": "string" - } - ], - "since": "4.6.0" - }, - { - "description": "Setup the 2FA for the user.", - "isasync": false, - "name": "setupUserTwoFactorAuthentication", - "params": [ - { - "description": "optional: the id of the user for which 2FA has to be disabled", - "length": 255, - "name": "userid", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", - "required": false, - "type": "uuid" }, { - "description": "two factor authentication code", - "length": 255, - "name": "provider", - "required": false, - "type": "string" + "description": "Action", + "name": "action", + "type": "action" }, { - "description": "Enabled by default, provide false to disable 2FA", - "length": 255, - "name": "enable", - "required": false, - "type": "boolean" - } - ], - "related": "", - "response": [ - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" + "description": "Date from which the schedule is active", + "name": "startdate", + "type": "date" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Date when the schedule was created", + "name": "created", + "type": "date" }, { - "description": "the user ID", + "description": "the ID of VM schedule", "name": "id", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "Date after which the schedule becomes inactive", + "name": "enddate", + "type": "date" }, { - "description": "secret code that needs to be registered with authenticator", - "name": "secretcode", + "description": "Description of VM schedule", + "name": "description", "type": "string" }, { - "description": "the user name", - "name": "username", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ], - "since": "4.18.0" + "since": "4.19.0" }, { - "description": "Lists site to site vpn customer gateways", + "description": "List resource detail(s)", "isasync": false, - "name": "listVpnCustomerGateways", + "name": "listResourceDetails", "params": [ { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "", "length": 255, - "name": "isrecursive", + "name": "pagesize", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "list by resource type", "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "name": "resourcetype", + "required": true, + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "if set to true, only details marked with display=true, are returned. False by default", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "fordisplay", "required": false, - "type": "uuid" + "since": "4.3", + "type": "boolean" }, { - "description": "id of the customer gateway", + "description": "list by key, value. Needs to be passed only along with key", "length": 255, - "name": "id", - "related": "createVpnCustomerGateway,listVpnCustomerGateways,updateVpnCustomerGateway", + "name": "value", "required": false, - "type": "uuid" + "since": "4.4", + "type": "string" }, { "description": "list resources by account. Must be used with the domainId parameter.", @@ -34619,20 +27624,27 @@ "required": false, "type": "string" }, + { + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, { "description": "list only resources belonging to the domain specified", "length": 255, "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, "type": "uuid" }, { - "description": "", + "description": "list by key", "length": 255, - "name": "pagesize", + "name": "key", "required": false, - "type": "integer" + "type": "string" }, { "description": "List by keyword", @@ -34647,76 +27659,78 @@ "name": "page", "required": false, "type": "integer" - } - ], - "related": "createVpnCustomerGateway,updateVpnCustomerGateway", - "response": [ - { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", - "type": "long" }, { - "description": "the owner", - "name": "account", + "description": "list by resource id", + "length": 255, + "name": "resourceid", + "required": false, "type": "string" }, - {}, { - "description": "the vpn gateway ID", - "name": "id", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "name of the customer gateway", - "name": "name", - "type": "string" - }, + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + } + ], + "related": "listTags", + "response": [ { - "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", - "name": "splitconnections", - "type": "boolean" + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" }, - {}, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "public ip address id of the customer gateway", - "name": "gateway", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id", + "description": "the project id the tag belongs to", "name": "projectid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, + {}, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, + {}, { - "description": "if DPD is enabled for customer gateway", - "name": "dpd", - "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", @@ -34724,93 +27738,51 @@ "type": "integer" }, { - "description": "the project name", - "name": "project", - "type": "string" - }, - { - "description": "IPsec policy of customer gateway", - "name": "esppolicy", - "type": "string" - }, - { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" - }, - { - "description": "the domain id of the owner", + "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", - "type": "string" - }, - { - "description": "IPsec preshared-key of customer gateway", - "name": "ipsecpsk", - "type": "string" - }, - { - "description": "IKE policy of customer gateway", - "name": "ikepolicy", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "guest ip of the customer gateway", - "name": "ipaddress", + "description": "resource type", + "name": "resourcetype", "type": "string" - }, - { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", - "type": "boolean" } - ] + ], + "since": "4.2" }, { - "description": "Deletes a Kubernetes cluster", + "description": "Attempts to live patch systemVMs - CPVM, SSVM ", "isasync": true, - "name": "deleteKubernetesCluster", + "name": "patchSystemVm", "params": [ { - "description": "Destroy attached instances of the ExternalManaged Cluster. Default: false", - "length": 255, - "name": "cleanup", - "required": false, - "since": "4.19.0", - "type": "boolean" - }, - { - "description": "Expunge attached instances of the ExternalManaged Cluster. If true, value of cleanup is ignored. Default: false", + "description": "If true, initiates copy of scripts and restart of the agent, even if the scripts version matches.To be used with ID parameter only", "length": 255, - "name": "expunge", + "name": "forced", "required": false, - "since": "4.19.0", "type": "boolean" }, { - "description": "the ID of the Kubernetes cluster", + "description": "patches systemVM - CPVM/SSVM with the specified ID", "length": 255, "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster,upgradeKubernetesCluster", - "required": true, + "related": "listSystemVms,migrateSystemVm,startSystemVm,changeServiceForSystemVm", + "required": false, "type": "uuid" } ], "response": [ + {}, {}, { - "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", @@ -34818,712 +27790,582 @@ "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.17.0" }, { - "description": "Lists Webhooks", + "description": "Creates a network offering.", "isasync": false, - "name": "listWebhooks", + "name": "createNetworkOffering", "params": [ { - "description": "List by keyword", + "description": "true if network offering supports specifying ip ranges; defaulted to false if not specified", "length": 255, - "name": "keyword", + "name": "specifyipranges", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "The name of the Webhook", + "description": "the availability of network offering. The default value is Optional. Another value is Required, which will make it as the default network offering for new networks ", "length": 255, - "name": "name", + "name": "availability", "required": false, "type": "string" }, { - "description": "", + "description": "guest type of the network offering: Shared or Isolated", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "guestiptype", + "required": true, + "type": "string" }, { - "description": "", + "description": "true if network offering for NSX network offering supports Load balancer service.", "length": 255, - "name": "pagesize", + "name": "nsxsupportlb", "required": false, - "type": "integer" + "since": "4.20.0", + "type": "boolean" }, { - "description": "The ID of the Webhook", + "description": "true if network offering supports vlans", "length": 255, - "name": "id", - "related": "createWebhook,listWebhooks,listWebhookDeliveries", + "name": "specifyvlan", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "The scope of the Webhook", + "description": "the ID of the containing domain(s), null for public offerings", "length": 255, - "name": "scope", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "string" + "type": "list" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the service offering ID used by virtual router provider", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", "required": false, "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "desired service capabilities as part of network offering", "length": 255, - "name": "isrecursive", + "name": "servicecapabilitylist", "required": false, - "type": "boolean" + "type": "map" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "Network offering details in key/value pairs. Supported keys are internallbprovider/publiclbprovider with service provider as a value, and promiscuousmode/macaddresschanges/forgedtransmits with true/false as value to accept/reject the security settings if available for a nic/portgroup", "length": 255, - "name": "account", + "name": "details", + "required": false, + "since": "4.2.0", + "type": "map" + }, + { + "description": "the tags for the network offering.", + "length": 4096, + "name": "tags", "required": false, "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "true if network offering supports persistent networks; defaulted to false if not specified", "length": 255, - "name": "listall", + "name": "ispersistent", "required": false, "type": "boolean" }, { - "description": "list only resources belonging to the domain specified", + "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,moveDomain", + "name": "serviceproviderlist", "required": false, - "type": "uuid" + "type": "map" }, { - "description": "The state of the Webhook", + "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.", "length": 255, - "name": "state", + "name": "keepaliveenabled", "required": false, - "type": "string" - } - ], - "related": "createWebhook,listWebhookDeliveries", - "response": [ - { - "description": "The state of the Webhook", - "name": "state", - "type": "string" - }, - { - "description": "The name of the Webhook", - "name": "name", - "type": "string" - }, - { - "description": "The payload URL end point for the Webhook", - "name": "payloadurl", - "type": "string" - }, - { - "description": "The name of the domain in which the Webhook exists", - "name": "domain", - "type": "string" - }, - { - "description": "The account associated with the Webhook", - "name": "account", - "type": "string" - }, - { - "description": "The secret key for the Webhook", - "name": "secretkey", - "type": "string" - }, - { - "description": "the project name of the Kubernetes cluster", - "name": "project", - "type": "string" + "type": "boolean" }, { - "description": "path of the domain to which the Webhook belongs", - "name": "domainpath", - "type": "string" + "description": "data transfer rate in megabits per second allowed", + "length": 255, + "name": "networkrate", + "required": false, + "type": "integer" }, { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", - "type": "string" + "description": "true if the network offering is IP conserve mode enabled", + "length": 255, + "name": "conservemode", + "required": false, + "type": "boolean" }, { - "description": "Whether SSL verification is enabled for the Webhook", - "name": "sslverification", + "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 scope of the Webhook", - "name": "scope", - "type": "string" + "description": "true if network offering supports choosing AS number", + "length": 255, + "name": "specifyasnumber", + "required": false, + "since": "4.20.0", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if network offering for NSX network offering supports Internal Load balancer service.", + "length": 255, + "name": "nsxsupportsinternallb", + "required": false, + "since": "4.20.0", + "type": "boolean" }, { - "description": "The description of the Webhook", - "name": "description", + "description": "the traffic type for the network offering. Supported type in current release is GUEST only", + "length": 255, + "name": "traffictype", + "required": true, "type": "string" }, { - "description": "The date when this Webhook was created", - "name": "created", - "type": "date" + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "length": 255, + "name": "egressdefaultpolicy", + "required": false, + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the routing mode for the network offering. Supported types are: Static or Dynamic.", + "length": 255, + "name": "routingmode", + "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "The ID of the Webhook", - "name": "id", - "type": "string" + "description": "true if network offering is meant to be used for Tungsten-Fabric, false otherwise.", + "length": 255, + "name": "fortungsten", + "required": false, + "type": "boolean" }, { - "description": "The ID of the domain in which the Webhook exists", - "name": "domainid", + "description": "the display text of the network offering, defaults to the value of 'name'.", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, - {}, - {} - ], - "since": "4.20.0" - }, - { - "description": "Creates a global load balancer rule", - "isasync": true, - "name": "createGlobalLoadBalancerRule", - "params": [ { - "description": "domain name for the GSLB service.", + "description": "true if network offering is meant to be used for VPC, false otherwise.", "length": 255, - "name": "gslbdomainname", - "required": true, - "type": "string" + "name": "forvpc", + "required": false, + "type": "boolean" }, { - "description": "load balancer algorithm (roundrobin, leastconn, proximity) that method is used to distribute traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'", + "description": "true if network offering is meant to be used for NSX, false otherwise.", "length": 255, - "name": "gslblbmethod", + "name": "fornsx", "required": false, - "type": "string" + "since": "4.20.0", + "type": "boolean" }, { - "description": "name of the load balancer rule", + "description": "Indicates the mode with which the network will operate. Valid option: NATTED or ROUTED", "length": 255, - "name": "name", - "required": true, + "name": "networkmode", + "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "session sticky method (sourceip) if not specified defaults to sourceip", + "description": "The internet protocol of network offering. Options are ipv4 and dualstack. Default is ipv4. dualstack will create a network offering that supports both IPv4 and IPv6", "length": 255, - "name": "gslbstickysessionmethodname", + "name": "internetprotocol", "required": false, + "since": "4.17.0", "type": "string" }, { - "description": "the domain ID associated with the load balancer", + "description": "the ID of the containing zone(s), null for public offerings", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "uuid" + "since": "4.13", + "type": "list" }, { - "description": "the account associated with the global load balancer. Must be used with the domainId parameter.", + "description": "services supported by the network offering", "length": 255, - "name": "account", + "name": "supportedservices", "required": false, - "type": "string" + "type": "list" }, { - "description": "GSLB service type (tcp, udp, http)", + "description": "the name of the network offering", "length": 255, - "name": "gslbservicetype", + "name": "name", "required": true, "type": "string" }, { - "description": "the description of the load balancer rule", - "length": 4096, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "region where the global load balancer is going to be created.", + "description": "maximum number of concurrent connections supported by the network offering", "length": 255, - "name": "regionid", - "related": "addRegion,updateRegion,listRegions", - "required": true, + "name": "maxconnections", + "required": false, "type": "integer" } ], - "related": "listGlobalLoadBalancerRules,updateGlobalLoadBalancerRule", + "related": "listNetworkOfferings", "response": [ { - "description": "the description of the global load balancer rule", - "name": "description", - "type": "string" - }, - {}, - { - "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": "the domain of the load balancer rule", - "name": "domain", - "type": "string" + "description": "true if network offering can be used by VPC networks only", + "name": "forvpc", + "type": "boolean" }, { - "description": "Region Id in which global load balancer is created", - "name": "regionid", - "type": "integer" + "description": "true if network offering can be used by Tungsten-Fabric networks only", + "name": "fortungsten", + "type": "boolean" }, { - "description": "DNS domain name given for the global load balancer", - "name": "gslbdomainname", + "description": "the ID of the service offering used by virtual router provider", + "name": "serviceofferingid", "type": "string" }, { - "description": "List of load balancer rules that are part of GSLB rule", - "name": "loadbalancerrule", + "description": "the list of supported services", + "name": "service", "response": [ { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", - "type": "string" - }, - { - "description": "the name of the load balancer", - "name": "name", - "type": "string" - }, - { - "description": "the domain ID of the load balancer rule", - "name": "domainid", - "type": "string" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the name of the zone the load balancer rule belongs to", - "name": "zonename", - "type": "string" - }, - { - "description": "the description of the load balancer", - "name": "description", - "type": "string" - }, - { - "description": "the id of the zone the rule belongs to", - "name": "zoneid", - "type": "string" - }, - { - "description": "the public ip address", - "name": "publicip", - "type": "string" - }, - { - "description": "the private port", - "name": "privateport", - "type": "string" - }, - { - "description": "the project id of the load balancer", - "name": "projectid", - "type": "string" - }, - { - "description": "the public port", - "name": "publicport", - "type": "string" - }, - { - "description": "the public ip address id", - "name": "publicipid", - "type": "string" - }, - { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the list of resource tags associated with load balancer", - "name": "tags", + "description": "the service provider name", + "name": "provider", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "uuid of the network provider", + "name": "id", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" + "description": "services for this provider", + "name": "servicelist", + "type": "list" }, { - "description": "tag value", - "name": "value", + "description": "state of the network provider", + "name": "state", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the provider name", + "name": "name", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "description": "the capability value", + "name": "value", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the capability name", + "name": "name", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" } ], "type": "list" - }, - { - "description": "the account of the load balancer rule", - "name": "account", - "type": "string" - }, - { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain of the load balancer rule", - "name": "domain", - "type": "string" - }, - { - "description": "the id of the guest network the lb rule belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the project name of the load balancer", - "name": "project", - "type": "string" - }, - { - "description": "the load balancer rule ID", - "name": "id", - "type": "string" - }, - { - "description": "the protocol of the loadbalanacer rule", - "name": "protocol", - "type": "string" } ], "type": "list" }, + {}, { - "description": "the account of the load balancer rule", - "name": "account", - "type": "string" + "description": "the date this network offering was created", + "name": "created", + "type": "date" }, { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", - "type": "string" + "description": "true if network offering supports network that span multiple zones", + "name": "supportsstrechedl2subnet", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "additional key/value details tied with network offering", + "name": "details", + "type": "map" }, { - "description": "session persistence method used for the global load balancer", - "name": "gslbstickysessionmethodname", - "type": "string" + "description": "true if network offering supports vlans, false otherwise", + "name": "specifyvlan", + "type": "boolean" }, { - "description": "global load balancer rule ID", - "name": "id", + "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.", + "name": "traffictype", "type": "string" }, - {}, { - "description": "name of the global load balancer rule", - "name": "name", + "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zone", "type": "string" }, { - "description": "Load balancing method used for the global load balancer", - "name": "gslblbmethod", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name of the load balancer", - "name": "project", + "description": "true if network offering is ip conserve mode enabled", + "name": "conservemode", + "type": "boolean" + }, + { + "description": "the id of the network offering", + "name": "id", "type": "string" }, { - "description": "GSLB service type", - "name": "gslbservicetype", + "description": "data transfer rate in megabits per second allowed.", + "name": "networkrate", + "type": "integer" + }, + { + "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 project id of the load balancer", - "name": "projectid", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the domain ID of the load balancer rule", + "description": "true if network offering supports public access for guest networks", + "name": "supportspublicaccess", + "type": "boolean" + }, + { + "description": "true if network offering supports public access for guest networks", + "name": "supportsinternallb", + "type": "boolean" + }, + { + "description": "true if network offering can be used by NSX networks only", + "name": "fornsx", + "type": "boolean" + }, + { + "description": "true if network offering is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", "name": "domainid", "type": "string" - } - ] - }, - { - "description": " delete a netscaler load balancer device", - "isasync": true, - "name": "deleteNetscalerLoadBalancer", - "params": [ - { - "description": "netscaler load balancer device ID", - "length": 255, - "name": "lbdeviceid", - "related": "addNetscalerLoadBalancer,configureNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter,deployNetscalerVpx", - "required": true, - "type": "uuid" - } - ], - "response": [ + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the internet protocol of the network offering", + "name": "internetprotocol", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", "type": "boolean" }, {}, - {}, { - "description": "any text associated with the success or failure", + "description": "true if network offering supports persistent networks, false otherwise", + "name": "ispersistent", + "type": "boolean" + }, + { + "description": "an alternate display text of the network offering.", "name": "displaytext", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "List resource tag(s)", - "isasync": false, - "name": "listTags", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", + "name": "networkmode", + "type": "string" }, { - "description": "list by key", - "length": 255, - "name": "key", - "required": false, + "description": "the name of the network offering", + "name": "name", "type": "string" }, { - "description": "list by resource id", - "length": 255, - "name": "resourceid", - "required": false, + "description": "state of the network offering. Can be Disabled/Enabled/Inactive", + "name": "state", "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the tags for the network offering", + "name": "tags", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "maximum number of concurrents connections to be handled by lb", + "name": "maxconnections", + "type": "integer" }, { - "description": "list by customer name", - "length": 255, - "name": "customer", - "required": false, + "description": "the routing mode for the network offering, supported types are Static or Dynamic.", + "name": "routingmode", "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "availability of the network offering", + "name": "availability", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "guest type of the network offering, can be Shared or Isolated", + "name": "guestiptype", + "type": "string" }, { - "description": "list by value", - "length": 255, - "name": "value", - "required": false, - "type": "string" + "description": "true if network offering supports choosing AS numbers", + "name": "specifyasnumber", + "type": "boolean" }, { - "description": "", + "description": "true if network offering supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" + } + ], + "since": "3.0.0" + }, + { + "description": "Dedicate an existing cluster", + "isasync": true, + "name": "dedicateCluster", + "params": [ + { + "description": "the ID of the containing domain", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": true, + "type": "uuid" }, { - "description": "list by resource type", + "description": "the ID of the Cluster", "length": 255, - "name": "resourcetype", - "required": false, - "type": "string" + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": true, + "type": "uuid" }, { - "description": "List by keyword", + "description": "the name of the account which needs dedication. Must be used with domainId.", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" } ], - "related": "listResourceDetails", + "related": "listDedicatedClusters", "response": [ - {}, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the name of the cluster", + "name": "clustername", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the Dedication Affinity Group ID of the cluster", + "name": "affinitygroupid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the cluster", + "name": "clusterid", "type": "string" }, + {}, { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the dedicated resource", + "name": "id", "type": "string" }, + {}, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the Account ID of the cluster", + "name": "accountid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", + "description": "the domain ID of the cluster", "name": "domainid", "type": "string" }, @@ -35531,511 +28373,567 @@ "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - {}, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" } - ], - "since": "4.0.0" + ] }, { - "description": "List user and system VMs that need to be stopped and destroyed respectively for changing the scope of the storage pool from Zone to Cluster.", - "isasync": false, - "name": "listAffectedVmsForStorageScopeChange", + "description": "Creates an IP forwarding rule", + "isasync": true, + "name": "createIpForwardingRule", "params": [ { - "description": "", + "description": "the CIDR list to forward traffic from. Multiple entries must be separated by a single comma character (,). This parameter is deprecated. Do not use.", "length": 255, - "name": "pagesize", + "name": "cidrlist", "required": false, - "type": "integer" + "type": "list" }, { - "description": "the Id of the cluster the scope of the storage pool is being changed to", + "description": "the protocol for the rule. Valid values are TCP or UDP.", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", + "name": "protocol", "required": true, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, "type": "string" }, { - "description": "the Id of the storage pool on which change scope operation is being done", + "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. Has value true by default", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": true, - "type": "uuid" + "name": "openfirewall", + "required": false, + "type": "boolean" }, { - "description": "", + "description": "the end port for the rule", "length": 255, - "name": "page", + "name": "endport", "required": false, "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "the ID of the VM", - "name": "id", - "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the start port for the rule", + "length": 255, + "name": "startport", + "required": true, "type": "integer" }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the cluster ID for the VM", - "name": "clusterid", - "type": "string" - }, { - "description": "the hostname for the VM", - "name": "hostname", - "type": "string" - }, + "description": "the public IP address ID of the forwarding rule, already associated via associateIp", + "length": 255, + "name": "ipaddressid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, + "type": "uuid" + } + ], + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", + "response": [ { - "description": "the cluster name for the VM", - "name": "clustername", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "the name of the VM", - "name": "name", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, { - "description": "the host ID for the VM", - "name": "hostid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the type of VM", - "name": "type", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, - {} - ], - "since": "4.19.1" - }, - { - "description": "Create a virtual router element.", - "isasync": true, - "name": "createVirtualRouterElement", - "params": [ - { - "description": "the network service provider ID of the virtual router element", - "length": 255, - "name": "nspid", - "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", - "required": true, - "type": "uuid" - }, - { - "description": "The provider type. Supported types are VirtualRouter (default) and VPCVirtualRouter", - "length": 255, - "name": "providertype", - "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", - "required": false, - "type": "uuid" - } - ], - "related": "configureVirtualRouterElement,listVirtualRouterElements", - "response": [ - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Enabled/Disabled the service provider", - "name": "enabled", - "type": "boolean" + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", + "type": "string" }, { - "description": "the id of the router", + "description": "the ID of the port forwarding rule", "name": "id", "type": "string" }, { - "description": "path of the domain to which the provider belongs", - "name": "domainpath", + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" }, { - "description": "the domain ID associated with the provider", - "name": "domainid", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, {}, { - "description": "the domain associated with the provider", - "name": "domain", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the physical network service provider id of the provider", - "name": "nspid", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", + "type": "string" + }, + { + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the project name of the address", - "name": "project", + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", "type": "string" }, { - "description": "the account associated with the provider", - "name": "account", + "description": "the protocol of the port forwarding rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" } ] }, { - "description": "Creates a VPC", - "isasync": true, - "name": "createVPC", + "description": "Lists volume metrics", + "isasync": false, + "name": "listVolumesMetrics", "params": [ { - "description": "the AS Number of the VPC tiers", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "asnumber", + "name": "tags", "required": false, - "since": "4.20.0", - "type": "long" + "type": "map" }, { - "description": "an optional field, whether to the display the vpc to the end user or not", + "description": "state of the volume. Possible values are: Ready, Allocated, Destroy, Expunging, Expunged.", "length": 255, - "name": "fordisplay", + "name": "state", "required": false, - "since": "4.4", - "type": "boolean" + "type": "string" }, { - "description": "MTU to be configured on the network VR's public facing interfaces", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "publicmtu", + "name": "listall", "required": false, - "since": "4.18.0", - "type": "integer" + "type": "boolean" }, { - "description": "the CIDR size of VPC. For regular users, this is required for VPC with ROUTED mode.", + "description": "the ID of the virtual machine", "length": 255, - "name": "cidrsize", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVmNicIp,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "since": "4.20.0", - "type": "integer" + "type": "uuid" }, { - "description": "the first IPv4 DNS for the VPC", + "description": "the ID of the storage pool, available to ROOT admin only", "length": 255, - "name": "dns1", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, - "since": "4.18.0", + "since": "4.3", "type": "string" }, { - "description": "IPV4 address to be assigned to the public interface of the network router.This address will be used as source NAT address for the networks in ths VPC. \nIf an address is given and it cannot be acquired, an error will be returned and the network won´t be implemented,", + "description": "the pod id the disk volume belongs to", "length": 255, - "name": "sourcenatipaddress", + "name": "podid", + "related": "listPods,updatePod,createManagementNetworkIpRange", "required": false, - "since": "4.19", - "type": "string" + "type": "uuid" }, { - "description": "the cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR", + "description": "list system VMs; only ROOT admin is eligible to pass this parameter", "length": 255, - "name": "cidr", + "name": "listsystemvms", "required": false, - "type": "string" + "since": "4.18", + "type": "boolean" }, { - "description": "If set to false, the VPC won't start (VPC VR will not get allocated) until its first network gets implemented. True by default.", + "description": "the ID of the disk volume", "length": 255, - "name": "start", + "name": "id", + "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "required": false, - "since": "4.3", + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "list only volumes that are encrypted", + "length": 255, + "name": "isencrypted", + "required": false, + "since": "4.19.1", "type": "boolean" }, { - "description": "the ID of the availability zone", + "description": "list volumes by disk offering", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": true, + "name": "diskofferingid", + "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "required": false, + "since": "4.4", "type": "uuid" }, { - "description": "the first IPv6 DNS for the VPC", + "description": "list volumes by disk offering of a service offering. If both service offering and disk offering are passed, service offering is ignored", "length": 255, - "name": "ip6dns1", + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", "required": false, - "since": "4.18.0", - "type": "string" + "since": "4.19.1", + "type": "uuid" }, { - "description": "the domain ID associated with the VPC. If used with the account parameter returns the VPC associated with the account for the specified domain.", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "displayvolume", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "list volumes on specified host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": false, "type": "uuid" }, { - "description": "Ids of the Bgp Peer for the VPC", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "bgppeerids", - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "since": "4.20.0", - "type": "list" + "type": "uuid" }, { - "description": "the account associated with the VPC. Must be used with the domainId parameter.", + "description": "List by keyword", "length": 255, - "name": "account", + "name": "keyword", "required": false, "type": "string" }, { - "description": "the name of the VPC", + "description": "the type of disk volume", "length": 255, - "name": "name", - "required": true, + "name": "type", + "required": false, "type": "string" }, { - "description": "the second IPv4 DNS for the VPC", + "description": "the ID of the availability zone", "length": 255, - "name": "dns2", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "since": "4.18.0", - "type": "string" + "type": "uuid" }, { - "description": "The display text of the VPC, defaults to its 'name'.", + "description": "", "length": 255, - "name": "displaytext", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the second IPv6 DNS for the VPC", + "description": "the name of the disk volume", "length": 255, - "name": "ip6dns2", + "name": "name", "required": false, - "since": "4.18.0", "type": "string" }, { - "description": "VPC network domain. All networks inside the VPC will belong to this domain", + "description": "makes the API's response contains only the resource count", "length": 255, - "name": "networkdomain", + "name": "retrieveonlyresourcecount", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the ID of the VPC offering", + "description": "the IDs of the volumes, mutually exclusive with id", "length": 255, - "name": "vpcofferingid", - "related": "updateVPCOffering,listVPCOfferings", - "required": true, - "type": "uuid" + "name": "ids", + "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "required": false, + "since": "4.9", + "type": "list" }, { - "description": "create VPC for the project", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, "name": "projectid", "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" + }, + { + "description": "the cluster id the disk volume belongs to", + "length": 255, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": false, + "type": "uuid" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" } ], - "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "related": "", "response": [ { - "description": "the domain name of the owner", - "name": "domain", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "MTU configured on the public interfaces of the VPC VR", - "name": "publicmtu", - "type": "integer" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, { - "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", - "name": "distributedvpcrouter", - "type": "boolean" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the first IPv4 DNS for the VPC", - "name": "dns1", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the domain id of the VPC owner", - "name": "domainid", - "type": "string" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "an alternate display text of the VPC.", - "name": "displaytext", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "vpc offering name the VPC is created from", - "name": "vpcofferingname", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", + "type": "string" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "the project id of the VPC", - "name": "projectid", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "The IPv4 routing mode of VPC", - "name": "ip4routing", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the first IPv6 DNS for the VPC", - "name": "ip6dns1", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the name of the VPC", - "name": "name", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "is vpc for display to the regular user", - "name": "fordisplay", + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" + }, + { + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the chain info of the volume", + "name": "chaininfo", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "cluster name where the volume is allocated", + "name": "clustername", + "type": "string" }, { - "description": "zone id of the vpc", - "name": "zoneid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the network domain of the VPC", - "name": "networkdomain", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, { - "description": "the project name of the VPC", - "name": "project", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the list of resource tags associated with the project", + "description": "shared or local storage", + "name": "storagetype", + "type": "string" + }, + { + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" + }, + { + "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": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, { "description": "id of the resource", "name": "resourceid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -36049,220 +28947,317 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" - } - ], - "type": "list" - }, - { - "description": "the second IPv6 DNS for the VPC", - "name": "ip6dns2", - "type": "string" - }, - { - "description": "the list of supported services", - "name": "service", - "response": [ - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - } - ], - "type": "list" }, { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "the service name", - "name": "name", + "description": "tag key name", + "name": "key", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "true if VPC is region level", - "name": "regionlevelvpc", - "type": "boolean" + "description": "the state of the disk volume", + "name": "state", + "type": "string" }, { - "description": "the cidr the VPC", - "name": "cidr", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "The routes for the VPC to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "the path of the volume", + "name": "path", + "type": "string" }, { - "description": "the id of the VPC", - "name": "id", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "the date this VPC was created", + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" + }, + { + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the date the disk volume was created", "name": "created", "type": "date" }, { - "description": "vpc offering id the VPC is created from", - "name": "vpcofferingid", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "the name of the zone the VPC belongs to", + "description": "pod id of the volume", + "name": "podid", + "type": "string" + }, + { + "description": "ID of the availability zone", + "name": "zoneid", + "type": "string" + }, + { + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "pod name of the volume", + "name": "podname", + "type": "string" + }, + { + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" + }, + { + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" + }, + { + "description": "the project name of the vpn", + "name": "project", + "type": "string" + }, + { + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" + }, + { + "description": "name of the availability zone", "name": "zonename", "type": "string" }, { - "description": "the owner of the VPC", - "name": "account", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "state of the VPC. Can be Inactive/Enabled", - "name": "state", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, { - "description": "the second IPv4 DNS for the VPC", - "name": "dns2", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the list of networks belongign to the VPC", - "name": "network", - "type": "list" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "true VPC requires restart", - "name": "restartrequired", + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" + }, + {}, + { + "description": "display name of the virtual machine", + "name": "vmdisplayname", + "type": "string" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" + }, + { + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", + "type": "string" + }, + { + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", "type": "boolean" }, { - "description": "if this VPC has redundant router", - "name": "redundantvpcrouter", + "description": "disk size in GiB", + "name": "sizegb", + "type": "string" + }, + { + "description": "the total disk iops", + "name": "diskiopstotal", + "type": "long" + }, + { + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", "type": "boolean" }, { - "description": "AS NUMBER", - "name": "asnumber", + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" + }, + { + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" + }, + { + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", "type": "long" }, - {}, + { + "description": "the status of the volume", + "name": "status", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "The BGP peers for the VPC", - "name": "bgppeers", - "type": "set" - } - ] - }, - { - "description": "Removes detail for the Resource.", - "isasync": true, - "name": "removeResourceDetail", - "params": [ + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" + }, { - "description": "Delete details matching key/value pairs", - "length": 255, - "name": "key", - "required": false, + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, { - "description": "Delete detail by resource type", - "length": 255, - "name": "resourcetype", - "required": true, + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "Delete details for resource id", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", + "type": "string" + }, + { + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", + "type": "string" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" + }, + { + "description": "cluster id of the volume", + "name": "clusterid", + "type": "string" + }, + { + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" + }, + { + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" + } + ], + "since": "4.9.3" + }, + { + "description": "Lists the network Interfaces of elastistor", + "isasync": false, + "name": "listElastistorInterface", + "params": [ + { + "description": "controller id", "length": 255, - "name": "resourceid", - "required": true, + "name": "controllerid", + "required": false, "type": "string" } ], + "related": "listElastistorVolume", "response": [ - {}, {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "compression", + "name": "compression", + "type": "string" + }, + { + "description": "the id of the volume", + "name": "id", + "type": "string" + }, + { + "description": "the name of the volume", + "name": "name", "type": "string" }, { @@ -36271,408 +29266,442 @@ "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "deduplication", + "name": "deduplication", + "type": "string" + }, + { + "description": "synchronization", + "name": "sync", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" + }, + {}, + { + "description": "graceallowed", + "name": "graceallowed", + "type": "string" } ] }, { - "description": "Lists all supported OS types for this cloud.", + "description": "Lists all possible details and their options for a resource type such as a VM or a template", "isasync": false, - "name": "listOsTypes", + "name": "listDetailOptions", "params": [ { - "description": "", + "description": "the UUID of the resource (optional)", "length": 255, - "name": "pagesize", + "name": "resourceid", "required": false, - "type": "integer" + "type": "string" }, { - "description": "", + "description": "the resource type such as UserVm, Template etc.", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "resourcetype", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + {}, + { + "description": "Map of all possible details and their possible list of values", + "name": "details", + "type": "map" }, + {}, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.18.1", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list by Os Category id", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.13" + }, + { + "description": "Lists SSL certificates", + "isasync": false, + "name": "listSslCerts", + "params": [ + { + "description": "ID of SSL certificate", "length": 255, - "name": "oscategoryid", - "related": "listOsCategories", + "name": "certid", + "related": "uploadSslCert,listSslCerts", "required": false, "type": "uuid" }, { - "description": "list os by description", + "description": "Account ID", "length": 255, - "name": "description", + "name": "accountid", + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", "required": false, - "since": "3.0.1", - "type": "string" + "type": "uuid" }, { - "description": "List by keyword", + "description": "Project that owns the SSL certificate", "length": 255, - "name": "keyword", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "list by Os type Id", + "description": "Load balancer rule ID", "length": 255, - "name": "id", - "related": "listOsTypes,addGuestOs", + "name": "lbruleid", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", "required": false, "type": "uuid" } ], - "related": "addGuestOs", + "related": "uploadSslCert", "response": [ { - "description": "the name of the OS category", - "name": "oscategoryname", + "description": "the project id of the certificate", + "name": "projectid", "type": "string" }, { - "description": "the ID of the OS type", + "description": "certificate", + "name": "certificate", + "type": "string" + }, + { + "description": "name", + "name": "name", + "type": "string" + }, + { + "description": "SSL certificate ID", "name": "id", "type": "string" }, { - "description": "the ID of the OS category", - "name": "oscategoryid", + "description": "account for the certificate", + "name": "account", + "type": "string" + }, + { + "description": "the project name of the certificate", + "name": "project", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the domain name of the network owner", + "name": "domain", + "type": "string" + }, + { + "description": "the domain id of the network owner", + "name": "domainid", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {}, + { + "description": "certificate chain", + "name": "certchain", + "type": "string" + }, + { + "description": "certificate fingerprint", + "name": "fingerprint", + "type": "string" + }, + {}, + { + "description": "List of loabalancers this certificate is bound to", + "name": "loadbalancerrulelist", + "type": "list" + } + ] + }, + { + "description": "List private gateways", + "isasync": false, + "name": "listPrivateGateways", + "params": [ + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "is the guest OS visible for the users", - "name": "fordisplay", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list gateways by state", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "the name of the OS type", - "name": "name", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, - {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list gateways by vpc", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "the name/description of the OS type", - "name": "description", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "is the guest OS user defined", - "name": "isuserdefined", - "type": "boolean" - } - ] - }, - { - "description": "Removes a Guest OS from listing.", - "isasync": true, - "name": "removeGuestOs", - "params": [ - { - "description": "ID of the guest OS", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "id", - "related": "addGuestOs", - "required": true, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, "type": "uuid" - } - ], - "response": [ - { - "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", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list gateways by ip address", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" - } - ], - "since": "4.4.0" - }, - { - "description": "Detaches any ISO file (if any) currently attached to a virtual machine.", - "isasync": true, - "name": "detachIso", - "params": [ + }, { - "description": "If true, ejects the ISO before detaching on VMware. Default: false", + "description": "list gateways by vlan", "length": 255, - "name": "forced", + "name": "vlan", "required": false, - "since": "4.15.1", - "type": "boolean" + "type": "string" }, { - "description": "The ID of the virtual machine", + "description": "list private gateway by id", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, + "name": "id", + "related": "createPrivateGateway,listPrivateGateways,createPrivateGateway,listPrivateGateways", + "required": false, "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" } ], - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", "response": [ { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "Source Nat enable status", + "name": "sourcenatsupported", "type": "boolean" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "VPC id the private gateway belongs to", + "name": "vpcid", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "State of the gateway, can be Creating, Ready, Deleting", + "name": "state", + "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the project name of the private gateway", + "name": "project", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "path of the domain to which the private gateway belongs", + "name": "domainpath", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the private gateway's ip address", + "name": "ipaddress", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the domain associated with the private gateway", + "name": "domain", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the gateway", + "name": "gateway", "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": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, {}, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the account associated with the private gateway", + "name": "account", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the project id of the private gateway", + "name": "projectid", + "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "ACL Id set for private gateway", + "name": "aclid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", + "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the ID of the domain associated with the private gateway", + "name": "domainid", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "zone id of the private gateway", + "name": "zoneid", + "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "VPC name the private gateway belongs to", + "name": "vpcname", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the network implementation uri for the private gateway", + "name": "vlan", "type": "string" }, - {}, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "ACL name set for private gateway", + "name": "aclname", "type": "string" }, + {}, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the id of the private gateway", + "name": "id", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the private gateway's netmask", + "name": "netmask", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the name of the zone the private gateway belongs to", + "name": "zonename", "type": "string" - }, + } + ] + }, + { + "description": "Update the default Ip of a VM Nic", + "isasync": true, + "name": "updateVmNicIp", + "params": [ { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "Secondary IP Address", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the ID of the nic to which you want to assign private IP", + "length": 255, + "name": "nicid", + "related": "listNics", + "required": true, + "type": "uuid" + } + ], + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { @@ -36680,24 +29709,24 @@ "name": "affinitygroup", "response": [ { - "description": "the description of the affinity group", - "name": "description", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { "description": "virtual machine IDs associated with this affinity group", @@ -36705,66 +29734,62 @@ "type": "list" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" } ], "type": "set" }, + {}, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the user's name who deployed the virtual machine", + "name": "username", + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { @@ -36772,111 +29797,99 @@ "name": "rootdeviceid", "type": "long" }, + { + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, { "description": "OS type id of the vm", "name": "ostypeid", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, + { + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" + }, + { + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" + }, { "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "name": "publicipid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, { "description": "the domain ID of the security group", "name": "domainid", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" }, { "description": "the description of the security group", @@ -36884,22 +29897,32 @@ "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "the list of egress rules associated with the security group", + "name": "egressrule", "response": [ { "description": "account owning the security group rule", "name": "account", "type": "string" }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, { "description": "the protocol of the security group rule", "name": "protocol", "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" }, { @@ -36907,18 +29930,23 @@ "name": "tags", "response": [ { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -36932,152 +29960,184 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" } ], "type": "set" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" }, { "description": "the type of the ICMP message response", "name": "icmptype", "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "id of the resource", + "name": "resourceid", + "type": "string" }, { - "description": "security group name", - "name": "securitygroupname", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], "type": "set" }, { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", "response": [ { - "description": "security group name", - "name": "securitygroupname", + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -37086,167 +30146,98 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the account associated with the tag", + "name": "account", "type": "string" } ], "type": "set" }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, { "description": "the starting IP of the security group rule", "name": "startport", "type": "integer" }, { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "security group name", + "name": "securitygroupname", "type": "string" }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, { "description": "account owning the security group rule", "name": "account", "type": "string" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, { "description": "the ending IP of the security group rule ", "name": "endport", "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" } ], "type": "set" }, { - "description": "the name of the security group", - "name": "name", + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the account owning the security group", + "name": "account", "type": "string" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "the ID of the security group", + "name": "id", "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the project id of the group", + "name": "projectid", "type": "string" } ], "type": "set" }, + {}, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - }, - { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" - }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { @@ -37254,49 +30245,39 @@ "name": "nic", "response": [ { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, { "description": "the isolated private VLAN if available", "name": "isolatedpvlan", "type": "integer" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" }, { "description": "the name of the corresponding network", @@ -37304,8 +30285,8 @@ "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { @@ -37314,1062 +30295,863 @@ "type": "list" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, { "description": "the type of the nic", "name": "type", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" } ], "type": "set" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - {}, - { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" }, + {}, { "description": "the type of the template for the virtual machine", "name": "templatetype", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" - } - ] - }, - { - "description": " delete a Palo Alto firewall device", - "isasync": true, - "name": "deletePaloAltoFirewall", - "params": [ - { - "description": "Palo Alto firewall device ID", - "length": 255, - "name": "fwdeviceid", - "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "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", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" - } - ] - }, - { - "description": "Executes a Webhook delivery", - "isasync": false, - "name": "executeWebhookDelivery", - "params": [ + }, { - "description": "Payload of the Webhook delivery", - "length": 255, - "name": "payload", - "required": false, + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "If set to true then SSL verification will be done for the Webhook delivery otherwise not", - "length": 255, - "name": "sslverification", - "required": false, - "type": "boolean" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "Payload URL of the Webhook delivery", - "length": 255, - "name": "payloadurl", - "required": false, - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "Secret key of the Webhook delivery", - "length": 255, - "name": "secretkey", - "required": false, + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "The ID of the Webhook delivery for redelivery", - "length": 255, - "name": "id", - "related": "executeWebhookDelivery", - "required": false, - "type": "uuid" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "The ID of the Webhook", - "length": 255, - "name": "webhookid", - "related": "createWebhook,listWebhookDeliveries", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "The start time of the Webhook delivery", - "name": "startdate", - "type": "date" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "The ID of the Webhook delivery", - "name": "id", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "The ID of the management server which executed delivery", - "name": "managementserverid", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "The name of the management server which executed delivery", - "name": "managementservername", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "The payload of the webhook delivery", - "name": "payload", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "The end time of the Webhook delivery", - "name": "enddate", - "type": "date" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "Whether Webhook delivery succeeded or not", - "name": "success", - "type": "boolean" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "The ID of the Webhook", - "name": "webhookid", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "The ID of the event", - "name": "eventid", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "The name of the Webhook", - "name": "webhookname", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "The response of the webhook delivery", - "name": "response", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, - {}, { - "description": "The type of the event", - "name": "eventtype", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, - {}, { - "description": "The headers of the webhook delivery", - "name": "headers", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Deletes a Pod.", - "isasync": false, - "name": "deletePod", - "params": [ - { - "description": "the ID of the Pod", - "length": 255, - "name": "id", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" - } - ] - }, - { - "description": "Lists Tungsten-Fabric providers", - "isasync": false, - "name": "listTungstenFabricProviders", - "params": [ - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "createTungstenFabricProvider", - "response": [ - { - "description": "Tungsten-Fabric provider hostname", - "name": "tungstenproviderhostname", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "Tungsten-Fabric provider gateway", - "name": "tungstengateway", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "Tungsten-Fabric provider port", - "name": "tungstenproviderport", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "Tungsten-Fabric provider introspect port", - "name": "tungstenproviderintrospectport", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, - {}, { - "description": "Tungsten-Fabric provider name", - "name": "name", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, - {}, { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", - "type": "boolean" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "Tungsten-Fabric provider vrouter port", - "name": "tungstenprovidervrouterport", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "Tungsten-Fabric provider uuid", - "name": "tungstenprovideruuid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" } ] }, { - "description": "Lists all DeploymentPlanners available.", - "isasync": false, - "name": "listDeploymentPlanners", + "description": "Updates load balancer stickiness policy", + "isasync": true, + "name": "updateLBStickinessPolicy", "params": [ { - "description": "", + "description": "id of lb stickiness policy", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "id", + "related": "createLBStickinessPolicy,listLBStickinessPolicies,updateLBStickinessPolicy", + "required": true, + "type": "uuid" }, { - "description": "List by keyword", + "description": "an optional field, whether to the display the policy to the end user or not", "length": 255, - "name": "keyword", + "name": "fordisplay", "required": false, - "type": "string" + "since": "4.4", + "type": "boolean" }, { - "description": "", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "page", + "name": "customid", "required": false, - "type": "integer" + "since": "4.4", + "type": "string" } ], - "related": "", + "related": "createLBStickinessPolicy,listLBStickinessPolicies", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the policy", + "name": "state", "type": "string" }, { - "description": "Deployment Planner name", - "name": "name", + "description": "the account of the Stickiness policy", + "name": "account", "type": "string" }, - {}, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Deletes a cluster.", - "isasync": false, - "name": "deleteCluster", - "params": [ - { - "description": "the cluster ID", - "length": 255, - "name": "id", - "related": "addCluster,updateCluster", - "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", + "description": "the LB rule ID", + "name": "lbruleid", "type": "string" }, - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "Prepares a host for maintenance.", - "isasync": true, - "name": "prepareHostForMaintenance", - "params": [ - { - "description": "the host ID", - "length": 255, - "name": "id", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,prepareHostForMaintenance,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" - } - ], - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "response": [ { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the id of the zone the Stickiness policy belongs to", + "name": "zoneid", "type": "string" }, + {}, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" - }, - { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" + "description": "the domain of the Stickiness policy", + "name": "domain", + "type": "string" }, + {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the description of the Stickiness policy", + "name": "description", "type": "string" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "the domain ID of the Stickiness policy", + "name": "domainid", + "type": "string" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", + "description": "the list of stickinesspolicies", + "name": "stickinesspolicy", "response": [ { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - } - ], - "type": "list" + "description": "the method name of the Stickiness policy", + "name": "methodname", + "type": "string" }, { - "description": "GPU cards present in the host", - "name": "gpugroupname", + "description": "the name of the Stickiness policy", + "name": "name", + "type": "string" + }, + { + "description": "the LB Stickiness policy ID", + "name": "id", + "type": "string" + }, + { + "description": "the params of the policy", + "name": "params", + "type": "map" + }, + { + "description": "the state of the policy", + "name": "state", + "type": "string" + }, + { + "description": "the description of the Stickiness policy", + "name": "description", "type": "string" + }, + { + "description": "is policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" } ], "type": "list" }, { - "description": "the cluster ID of the host", - "name": "clusterid", - "type": "string" - }, - { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", - "type": "boolean" - }, - { - "description": "the state of the host", - "name": "state", - "type": "status" - }, - { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" - }, - {}, - { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", - "type": "string" - }, - { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", - "type": "string" - }, - { - "description": "the ID of the host", - "name": "id", - "type": "string" - }, - { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" - }, - { - "description": "the resource state of the host", - "name": "resourcestate", - "type": "string" - }, - { - "description": "the hypervisor version", - "name": "hypervisorversion", - "type": "string" - }, - { - "description": "the cluster name of the host", - "name": "clustername", - "type": "string" - }, - { - "description": "events available for the host", - "name": "events", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - }, - { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "the host version", - "name": "version", - "type": "string" - }, - { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" - }, - { - "description": "the name of the host", + "description": "the name of the Stickiness policy", "name": "name", "type": "string" - }, - { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", - "type": "string" - }, + } + ], + "since": "4.4" + }, + { + "description": "Lists all Pods.", + "isasync": false, + "name": "listPods", + "params": [ { - "description": "the OS category ID of the host", - "name": "oscategoryid", - "type": "string" + "description": "list Pods by ID", + "length": 255, + "name": "id", + "related": "listPods,updatePod,createManagementNetworkIpRange", + "required": false, + "type": "uuid" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", + "description": "flag to display the capacity of the pods", + "length": 255, + "name": "showcapacities", + "required": false, "type": "boolean" }, { - "description": "CPU Arch of the host", - "name": "arch", - "type": "string" - }, - { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", - "type": "long" - }, - { - "description": "the IP address of the host", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" - }, - { - "description": "the Pod name of the host", - "name": "podname", - "type": "string" - }, - { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "list pods by allocation state", + "length": 255, + "name": "allocationstate", + "required": false, "type": "string" }, - {}, - { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" - }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", - "type": "string" + "description": "list Pods by Zone ID", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "list Pods by name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" - }, - { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" - }, - { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" - }, - { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" - }, - { - "description": "the admin that annotated this host", - "name": "username", - "type": "string" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "updatePod,createManagementNetworkIpRange", + "response": [ { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the name of the Pod", + "name": "name", "type": "string" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" - }, - { - "description": "the date and time the host was created", - "name": "created", - "type": "date" - }, - { - "description": "the host type", - "name": "type", - "type": "type" - }, - { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "the Zone name of the Pod", + "name": "zonename", "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", + "description": "the netmask of the Pod", + "name": "netmask", "type": "string" }, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" - }, - { - "description": "the last annotation set on this host by an admin", - "name": "annotation", - "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 incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "the IP ranges for the Pod", + "name": "ipranges", + "response": [ + { + "description": "the gateway for the range", + "name": "gateway", + "type": "string" + }, + { + "description": "indicates if range is dedicated for CPVM and SSVM", + "name": "forsystemvms", + "type": "string" + }, + { + "description": "indicates Vlan ID for the range", + "name": "vlanid", + "type": "string" + }, + { + "description": "the CIDR for the range", + "name": "cidr", + "type": "string" + }, + { + "description": "the ending IP for the range", + "name": "endip", + "type": "string" + }, + { + "description": "the starting IP for the range", + "name": "startip", + "type": "string" + } + ], + "type": "list" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", - "type": "long" + "description": "the allocation state of the Pod", + "name": "allocationstate", + "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "the gateway of the Pod", + "name": "gateway", "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", - "type": "string" + "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 Zone name of the host", - "name": "zonename", + "description": "the Zone ID of the Pod", + "name": "zoneid", "type": "string" }, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", + "name": "vlanid", + "type": "list" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", + "name": "endip", + "type": "list" }, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "the capacity of the Pod", + "name": "capacity", + "response": [ + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the Pod name", + "name": "podname", + "type": "string" + }, + { + "description": "the Cluster ID", + "name": "clusterid", + "type": "string" + }, + { + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the Cluster name", + "name": "clustername", + "type": "string" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Pod ID", + "name": "podid", + "type": "string" + } + ], + "type": "list" }, - { - "description": "comma-separated list of tags for the host", - "name": "hosttags", - "type": "string" - } - ] - }, - { - "description": "Removes specified region", - "isasync": false, - "name": "removeRegion", - "params": [ - { - "description": "ID of the region to delete", - "length": 255, - "name": "id", - "required": true, - "type": "integer" - } - ], - "response": [ {}, { "description": "the UUID of the latest async job acting on this object", @@ -38377,874 +31159,865 @@ "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", + "description": "the ID of the Pod", + "name": "id", "type": "string" - }, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" } ] }, { - "description": "Get Volume's iSCSI Name", - "isasync": false, - "name": "getVolumeiScsiName", + "description": "Starts an existing internal lb vm.", + "isasync": true, + "name": "startInternalLoadBalancerVM", "params": [ { - "description": "CloudStack Volume UUID", + "description": "the ID of the internal lb vm", "length": 255, - "name": "volumeid", + "name": "id", + "related": "destroyRouter,listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,startInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", "required": true, - "type": "string" + "type": "uuid" } ], - "related": "", + "related": "destroyRouter,listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", "response": [ {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" }, { - "description": "Volume iSCSI Name", - "name": "volumeiScsiName", + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Updates an existing autoscale vm group.", - "isasync": true, - "name": "updateAutoScaleVmGroup", - "params": [ { - "description": "an optional field, whether to the display the group to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the list of nics associated with the router", + "name": "nic", + "response": [ + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + } + ], + "type": "set" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", - "type": "string" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "list of scaleup autoscale policies", - "length": 255, - "name": "scaleuppolicyids", - "related": "listAutoScalePolicies,updateAutoScalePolicy", - "required": false, - "type": "list" + "description": "the domain associated with the router", + "name": "domain", + "type": "string" }, { - "description": "the ID of the autoscale group", - "length": 255, - "name": "id", - "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", - "required": true, - "type": "uuid" + "description": "the guest netmask for the router", + "name": "guestnetmask", + "type": "string" }, { - "description": "list of scaledown autoscale policies", - "length": 255, - "name": "scaledownpolicyids", - "related": "listAutoScalePolicies,updateAutoScalePolicy", - "required": false, - "type": "list" + "description": "the public MAC address for the router", + "name": "publicmacaddress", + "type": "string" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", - "length": 255, - "name": "minmembers", - "required": false, - "type": "integer" + "description": "path of the Domain the router belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "length": 255, - "name": "maxmembers", - "required": false, - "type": "integer" + "description": "the Pod ID for the router", + "name": "podid", + "type": "string" }, { - "description": "the frequency in which the performance counters to be collected", - "length": 255, - "name": "interval", - "required": false, - "type": "integer" + "description": "the public netmask for the router", + "name": "publicnetmask", + "type": "string" }, { - "description": "the name of the autoscale vmgroup", - "length": 255, - "name": "name", - "required": false, - "since": "4.18.0", + "description": "the hostname for the router", + "name": "hostname", "type": "string" - } - ], - "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups", - "response": [ - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" }, - {}, { - "description": "the id of the guest network the lb rule belongs to", - "name": "associatednetworkid", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "the private port", - "name": "privateport", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "the public ip address", + "description": "the public IP address for the router", "name": "publicip", "type": "string" }, { - "description": "the autoscale profile that contains information about the vms in the vm group.", - "name": "vmprofileid", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "the account owning the vm group", - "name": "account", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the frequency at which the conditions have to be evaluated", - "name": "interval", - "type": "int" + "description": "the Pod name for the router", + "name": "podname", + "type": "string" }, { - "description": "the name of the autoscale vm group ", - "name": "name", + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" }, { - "description": "list of scaledown autoscale policies", - "name": "scaledownpolicies", + "description": "Last executed health check result for the router", + "name": "healthcheckresults", + "response": [ + { + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the name of the health check on the router", + "name": "checkname", + "type": "string" + }, + { + "description": "detailed response generated on running health check", + "name": "details", + "type": "string" + }, + { + "description": "the type of the health check - basic or advanced", + "name": "checktype", + "type": "string" + }, + { + "description": "result of the health check", + "name": "success", + "type": "boolean" + } + ], "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the link local IP address for the router", + "name": "linklocalip", "type": "string" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", - "name": "minmembers", - "type": "int" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list of scaleup autoscale policies", - "name": "scaleuppolicies", - "type": "list" + "description": "the guest IP address for the router", + "name": "guestipaddress", + "type": "string" }, { - "description": "the domain ID of the vm group", - "name": "domainid", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "name": "maxmembers", - "type": "int" + "description": "the link local netmask for the router", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", - "name": "availablevirtualmachinecount", - "type": "int" + "description": "the version of scripts", + "name": "scriptsversion", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the version of the code / software in the router", + "name": "softwareversion", + "type": "string" }, { - "description": "is group for display to the regular user", - "name": "fordisplay", + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", "type": "boolean" }, { - "description": "the public ip address id", - "name": "publicipid", + "description": "the template ID for the router", + "name": "templateid", "type": "string" }, { - "description": "the project name of the vm group", - "name": "project", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the date when this vm group was created", - "name": "created", - "type": "date" + "description": "the version of template", + "name": "version", + "type": "string" }, { - "description": "the name of the guest network the lb rule belongs to", - "name": "associatednetworkname", + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "the lb provider of the guest network the lb rule belongs to", - "name": "lbprovider", + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", "type": "string" }, { - "description": "the public port", - "name": "publicport", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the domain name of the vm group", - "name": "domain", + "description": "the account associated with the router", + "name": "account", "type": "string" }, { - "description": "the autoscale vm group ID", - "name": "id", + "description": "the date and time the router was created", + "name": "created", + "type": "date" + }, + { + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "the load balancer rule ID", - "name": "lbruleid", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "the project id of the vm group", + "description": "the project id of the ipaddress", "name": "projectid", "type": "string" }, { - "description": "the current state of the AutoScale Vm Group", - "name": "state", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "path of the domain to which the vm group belongs", - "name": "domainpath", + "description": "the template name for the router", + "name": "templatename", "type": "string" }, - {} - ] - }, - { - "description": "Deletes a snapshot of a disk volume.", - "isasync": true, - "name": "deleteSnapshot", - "params": [ { - "description": "The ID of the snapshot", - "length": 255, - "name": "id", - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,revertSnapshot,listSnapshots", - "required": true, - "type": "uuid" + "description": "the Zone name for the router", + "name": "zonename", + "type": "string" }, { - "description": "The ID of the zone for the snapshot", - "length": 255, + "description": "the Zone ID for the router", "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "since": "4.19.0", - "type": "uuid" - } - ], - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {} - ] - }, - { - "description": "List the virtual machines owned by the account.", - "isasync": false, - "name": "listVirtualMachines", - "params": [ - { - "description": "list vms by affinity group", - "length": 255, - "name": "affinitygroupid", - "related": "createAffinityGroup,listAffinityGroups", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of AutoScaling VM Group", - "length": 255, - "name": "autoscalevmgroupid", - "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups", - "required": false, - "since": "4.18.0", - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the name of the router", + "name": "name", + "type": "string" }, { - "description": "makes the API's response contains only the resource count", - "length": 255, - "name": "retrieveonlyresourcecount", - "required": false, - "type": "boolean" + "description": "role of the domain router", + "name": "role", + "type": "string" }, { - "description": "list by network id", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "flag to display the resource icon for VMs", - "length": 255, - "name": "showicon", - "required": false, - "since": "4.16.0.0", - "type": "boolean" + "description": "the second DNS for the router", + "name": "dns2", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the domain ID associated with the router", + "name": "domainid", "type": "string" }, { - "description": "flag to list vms created from VNF templates (as known as VNF appliances) or not; true if need to list VNF appliances, false otherwise.", - "length": 255, - "name": "isvnf", - "required": false, - "since": "4.19.0", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "the storage ID where vm's volumes belong to", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" + "description": "the gateway for the router", + "name": "gateway", + "type": "string" }, { - "description": "list vms by iso", - "length": 255, - "name": "isoid", - "required": false, - "type": "uuid" + "description": "the host ID for the router", + "name": "hostid", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the state of redundant virtual router", + "name": "redundantstate", + "type": "string" }, { - "description": "Accumulates the VM metrics data instead of returning only the most recent data collected. The default behavior is set by the global configuration vm.stats.increment.metrics.", - "length": 255, - "name": "accumulate", - "required": false, - "since": "4.17.0", - "type": "boolean" + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", + "type": "string" }, { - "description": "the IDs of the virtual machines, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "since": "4.4", - "type": "list" - }, + "description": "the guest MAC address for the router", + "name": "guestmacaddress", + "type": "string" + } + ] + }, + { + "description": "Updates a disk offering.", + "isasync": false, + "name": "updateDiskOffering", + "params": [ { - "description": "comma separated list of vm details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, backoff, iso, volume, min, affgrp]. When no parameters are passed, all the details are returned if list.vm.default.details.stats is true (default), otherwise when list.vm.default.details.stats is false the API response will exclude the stats details.", + "description": "burst io requests write rate of the disk offering", "length": 255, - "name": "details", + "name": "iopswriteratemax", "required": false, - "type": "list" + "since": "4.15", + "type": "long" }, { - "description": "list by network type; true if need to list vms using Virtual Network, false otherwise", + "description": "burst bytes read rate of the disk offering", "length": 255, - "name": "forvirtualnetwork", + "name": "bytesreadratemax", "required": false, - "type": "boolean" + "since": "4.15", + "type": "long" }, { - "description": "the cluster ID", + "description": "length (in seconds) of the burst", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", + "name": "iopswriteratemaxlength", "required": false, - "since": "4.16.0", - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "description": "the pod ID", + "description": "an optional field, whether to display the offering to the end user or not.", "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", + "name": "displayoffering", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "the user ID that created the VM and is under the account that owns the VM", + "description": "length (in seconds) of the burst", "length": 255, - "name": "userid", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "name": "byteswriteratemaxlength", "required": false, - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "description": "the target hypervisor for the template", + "description": "comma-separated list of tags for the disk offering, tags should match with existing storage pool tags", "length": 255, - "name": "hypervisor", + "name": "tags", "required": false, + "since": "4.15", "type": "string" }, { - "description": "list vms by ssh keypair name", + "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", "length": 255, - "name": "keypair", + "name": "zoneid", "required": false, + "since": "4.13", "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "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", + "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", + "length": 4096, + "name": "domainid", "required": false, + "since": "4.13", "type": "string" }, { - "description": "list vms by vpc", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "type": "uuid" - }, - { - "description": "list by the service offering", + "description": "length (in seconds) of the burst", "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "name": "bytesreadratemaxlength", "required": false, - "since": "4.4", - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "description": "the group ID", + "description": "bytes read rate of the disk offering", "length": 255, - "name": "groupid", - "related": "createInstanceGroup,updateInstanceGroup", + "name": "bytesreadrate", "required": false, - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.", + "description": "state of the disk offering", "length": 255, "name": "state", "required": false, "type": "string" }, { - "description": "the host ID", + "description": "burst requests read rate of the disk offering", "length": 255, - "name": "hostid", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "name": "iopsreadratemax", "required": false, - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "description": "Whether to return the VMs' user data or not. By default, user data will not be returned.", + "description": "bytes write rate of the disk offering", "length": 255, - "name": "userdata", + "name": "byteswriterate", "required": false, - "since": "4.18.0.0", - "type": "boolean" + "since": "4.15", + "type": "long" }, { - "description": "list by the backup offering", + "description": "io requests read rate of the disk offering", "length": 255, - "name": "backupofferingid", + "name": "iopsreadrate", "required": false, - "since": "4.17", - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "burst bytes write rate of the disk offering", "length": 255, - "name": "account", + "name": "byteswriteratemax", "required": false, - "type": "string" + "since": "4.15", + "type": "long" }, { - "description": "the availability zone ID", + "description": "io requests write rate of the disk offering", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "iopswriterate", "required": false, - "type": "uuid" + "since": "4.15", + "type": "long" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "the cache mode to use for this disk offering", "length": 255, - "name": "listall", + "name": "cachemode", "required": false, - "type": "boolean" + "since": "4.15", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "displayvm", + "description": "updates alternate display text of the disk offering with this value", + "length": 4096, + "name": "displaytext", "required": false, - "since": "4.4", - "type": "boolean" + "type": "string" }, { - "description": "the security group ID", + "description": "length (in seconds) of the burst", "length": 255, - "name": "securitygroupid", - "related": "createSecurityGroup,updateSecurityGroup", + "name": "iopsreadratemaxlength", "required": false, "since": "4.15", - "type": "uuid" + "type": "long" }, { - "description": "list by the High Availability offering; true if filtering VMs with HA enabled; false for VMs with HA disabled", + "description": "ID of the disk offering", "length": 255, - "name": "haenable", - "required": false, - "since": "4.15", - "type": "boolean" + "name": "id", + "related": "createDiskOffering,updateDiskOffering,listDiskOfferings", + "required": true, + "type": "uuid" }, { - "description": "", + "description": "sort key of the disk offering, integer", "length": 255, - "name": "pagesize", + "name": "sortkey", "required": false, "type": "integer" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "list vms by template", + "description": "updates name of the disk offering with this value", "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,registerIso,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "name", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "related": "createDiskOffering,listDiskOfferings", "response": [ + {}, { - "description": "the project name of the vm", - "name": "project", - "type": "string" + "description": "length (in seconds) of the burst", + "name": "diskIopsWriteRateMaxLength", + "type": "long" }, { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" + "description": "whether to display the offering to the end user or not.", + "name": "displayoffering", + "type": "boolean" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "name": "hypervisorsnapshotreserve", + "type": "integer" + }, + { + "description": "length (in seconds) of the burst", + "name": "diskBytesReadRateMaxLength", "type": "long" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" + "description": "the max iops of the disk offering", + "name": "maxiops", + "type": "long" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", + "description": "length (in seconds) of the burst", + "name": "diskBytesWriteRateMaxLength", "type": "long" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "Whether disks using this offering will be encrypted on primary storage", + "name": "encrypt", "type": "boolean" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "bytes write rate of the disk offering", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" + "description": "burst io requests read rate of the disk offering", + "name": "diskIopsReadRateMax", + "type": "long" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "name": "cacheMode", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "Returns true if the disk offering is suitable for the given virtual machine for disk creation otherwise false", + "name": "suitableforvirtualmachine", + "type": "boolean" + }, + { + "description": "the min iops of the disk offering", + "name": "miniops", + "type": "long" + }, + { + "description": "the storage type for this disk offering", + "name": "storagetype", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "burst bytes read rate of the disk offering", + "name": "diskBytesReadRateMax", "type": "long" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", + "name": "disksizestrictness", + "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": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "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 name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", + "description": "length (in second) of the burst", + "name": "diskIopsReadRateMaxLength", "type": "long" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", + "description": "the date this disk offering was created", + "name": "created", "type": "date" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", + "description": "true if disk offering uses custom size, false otherwise", + "name": "iscustomized", + "type": "boolean" + }, + { + "description": "io requests read rate of the disk offering", + "name": "diskIopsReadRate", "type": "long" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "name": "provisioningtype", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "state of the disk offering", + "name": "state", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "burst io requests write rate of the disk offering", + "name": "diskIopsWriteRateMax", + "type": "long" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "the size of the disk offering in GB", + "name": "disksize", "type": "long" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" + "description": "bytes read rate of the disk offering", + "name": "diskBytesReadRate", + "type": "long" }, + {}, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" + "description": "io requests write rate of the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" + "description": "burst bytes write rate of the disk offering", + "name": "diskBytesWriteRateMax", + "type": "long" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the vsphere storage policy tagged to the disk offering in case of VMware", + "name": "vspherestoragepolicy", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "an alternate display text of the disk offering.", + "name": "displaytext", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" + "description": "true if disk offering uses custom iops, false otherwise", + "name": "iscustomizediops", + "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "additional key/value details tied with this disk offering", + "name": "details", + "type": "map" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the name of the disk offering", + "name": "name", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - } - ], - "type": "set" + "description": "the tags for the disk offering", + "name": "tags", + "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "unique ID of the disk offering", + "name": "id", "type": "string" }, { @@ -39253,804 +32026,490 @@ "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Lists IPv4 subnets for zone.", + "isasync": false, + "name": "listIpv4SubnetsForZone", + "params": [ + { + "description": "UUID of the IPv4 subnet.", + "length": 255, + "name": "id", + "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "required": false, + "type": "uuid" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "CIDR of the IPv4 subnet.", + "length": 255, + "name": "subnet", + "required": false, "type": "string" }, - {}, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "UUID of zone to which the IPv4 subnet belongs to.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "the account which the IPv4 subnet is dedicated to. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "project who which the IPv4 subnet is dedicated to", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" + "description": "the domain ID which the IPv4 subnet is dedicated to.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "createIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "response": [ + { + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" }, + {}, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the account of the IPv4 subnet", + "name": "account", "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "id of the guest IPv4 subnet", + "name": "id", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - } - ], - "type": "set" + "description": "the project name of the IPv4 subnet", + "name": "project", + "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "name of zone to which the IPv4 subnet belongs to.", + "name": "zonename", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the project id of the IPv4 subnet", + "name": "projectid", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "guest IPv4 subnet", + "name": "subnet", + "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the domain ID of the IPv4 subnet", + "name": "domainid", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the domain name of the IPv4 subnet", + "name": "domain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", + "type": "string" }, + {} + ], + "since": "4.20.0" + }, + { + "description": "Adds account to a project", + "isasync": true, + "name": "addAccountToProject", + "params": [ { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "Project role type to be assigned to the user - Admin/Regular; default: Regular", + "length": 255, + "name": "roletype", + "required": false, + "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "ID of the project role", + "length": 255, + "name": "projectroleid", + "related": "createProjectRole,listProjectRoles,updateProjectRole", + "required": false, + "type": "uuid" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "ID of the project to add the account to", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": true, + "type": "uuid" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "email to which invitation to the project is going to be sent", + "length": 255, + "name": "email", + "required": false, "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "name of the account to be added to the project", + "length": 255, + "name": "account", + "required": false, "type": "string" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {} + ], + "since": "3.0.0" + }, + { + "description": "Lists all available snapshots for the account.", + "isasync": false, + "name": "listSnapshots", + "params": [ { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" + "description": "ID of the image or image cache store", + "length": 255, + "name": "imagestoreid", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": false, + "since": "4.19", + "type": "uuid" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "valid values are MANUAL or RECURRING.", + "length": 255, + "name": "snapshottype", + "required": false, "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" + "description": "lists snapshot by snapshot ID", + "length": 255, + "name": "id", + "related": "createSnapshot,createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,revertSnapshot,listSnapshots", + "required": false, + "type": "uuid" }, { - "description": "User VM type", - "name": "vmtype", - "type": "string" + "description": "list snapshots by zone id", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY.", + "length": 255, + "name": "intervaltype", + "required": false, "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "ID of the storage pool", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "required": false, + "since": "4.19", + "type": "uuid" + }, + { + "description": "If set to false, list templates across zones and their storages", + "length": 255, + "name": "showunique", + "required": false, + "since": "4.19.0", "type": "boolean" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" + "description": "the ID of the disk volume", + "length": 255, + "name": "volumeid", + "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "required": false, + "type": "uuid" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "lists snapshot by snapshot name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "list snapshots by location type. Used only when showunique=false. Valid location types: 'primary', 'secondary'. Default is empty", + "length": 255, + "name": "locationtype", + "required": false, + "since": "4.19.0", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the IDs of the snapshots, mutually exclusive with id", + "length": 255, + "name": "ids", + "related": "createSnapshot,createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,revertSnapshot,listSnapshots", + "required": false, + "since": "4.9", + "type": "list" + } + ], + "related": "createSnapshot,createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,revertSnapshot,listSnapshots", + "response": [ + { + "description": "ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "valid types are hourly, daily, weekly, monthy, template, and none.", + "name": "intervaltype", + "type": "string" }, + {}, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "name of the snapshot", + "name": "name", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": " the date the snapshot was created", + "name": "created", + "type": "date" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "id of the os on volume", + "name": "ostypeid", "type": "string" }, - {}, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "id of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "virtual size of backedup snapshot on image store", + "name": "virtualsize", + "type": "long" + }, + { + "description": "name of the datastore for the snapshot entry", + "name": "datastorename", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "name of the disk volume", + "name": "volumename", "type": "string" }, - {}, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "state of the snapshot on the datastore", + "name": "datastorestate", + "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the account associated with the snapshot", + "name": "account", + "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", + "name": "revertable", + "type": "boolean" + }, + { + "description": "type of the disk volume", + "name": "volumetype", + "type": "string" + }, + { + "description": "name of the availability zone", + "name": "zonename", + "type": "string" + }, + { + "description": "path of the Domain the snapshot's account belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the status of the template", + "name": "status", + "type": "string" }, { "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "tag key name", - "name": "key", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -40059,8 +32518,8 @@ "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -40069,427 +32528,410 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "set" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "state of the disk volume", + "name": "volumestate", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "ID of the datastore for the snapshot entry", + "name": "datastoreid", + "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" - } - ] - }, - { - "description": "Lists all available disk offerings.", - "isasync": false, - "name": "listDiskOfferings", - "params": [ + "description": "download progress of a snapshot", + "name": "downloaddetails", + "type": "map" + }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "The ID of a virtual machine. Pass this in if you want to see the suitable disk offering that can be used to create and add a disk to the virtual machine. Suitability is returned with suitableforvirtualmachine flag in the response", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": false, - "since": "4.20.0", - "type": "uuid" + "description": "the domain name of the snapshot's account", + "name": "domain", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the type of the snapshot", + "name": "snapshottype", + "type": "string" }, { - "description": "Filter by state of the disk offering. Defaults to 'Active'. If set to 'all' shows both Active & Inactive offerings.", - "length": 255, - "name": "state", - "required": false, - "since": "4.19", + "description": "display name of the os on volume", + "name": "osdisplayname", "type": "string" }, { - "description": "The ID of the volume, tags of the volume are used to filter the offerings", - "length": 255, - "name": "volumeid", - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": false, - "since": "4.17", - "type": "uuid" + "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "name": "state", + "type": "state" }, { - "description": "id of zone disk offering is associated with", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "since": "4.13", - "type": "uuid" + "description": "ID of the snapshot", + "name": "id", + "type": "string" }, + {}, { - "description": "name of the disk offering", - "length": 255, - "name": "name", - "required": false, + "description": "the project id of the snapshot", + "name": "projectid", "type": "string" }, { - "description": "listed offerings support disk encryption", - "length": 255, - "name": "encrypt", - "required": false, - "since": "4.18", - "type": "boolean" + "description": "valid location types are primary and secondary.", + "name": "locationtype", + "type": "string" }, { - "description": "the storage type of the service offering. Values are local and shared.", - "length": 255, - "name": "storagetype", - "required": false, - "since": "4.19", + "description": "the project name of the snapshot", + "name": "project", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the domain ID of the snapshot's account", + "name": "domainid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "type of the datastore for the snapshot entry", + "name": "datastoretype", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "physical size of backedup snapshot on image store", + "name": "physicalsize", + "type": "long" + } + ] + }, + { + "description": "Reset site to site vpn connection", + "isasync": true, + "name": "resetVpnConnection", + "params": [ + { + "description": "an optional account for connection. Must be used with domainId.", "length": 255, - "name": "isrecursive", + "name": "account", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "ID of the disk offering", + "description": "id of vpn connection", "length": 255, "name": "id", - "related": "createDiskOffering,listDiskOfferings", - "required": false, + "related": "createVpnConnection,listVpnConnections,resetVpnConnection,updateVpnConnection", + "required": true, "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "The ID of the storage pool, tags of the storage pool are used to filter the offerings", + "description": "an optional domainId for connection. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "since": "4.17", "type": "uuid" - }, + } + ], + "related": "createVpnConnection,listVpnConnections,updateVpnConnection", + "response": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "ESP policy of the customer gateway", + "name": "esppolicy", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "createDiskOffering", - "response": [ + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" + }, { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", "type": "string" }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "description": "the domain id of the owner", "name": "domainid", "type": "string" }, + {}, { - "description": "Whether disks using this offering will be encrypted on primary storage", - "name": "encrypt", - "type": "boolean" + "description": "the project name", + "name": "project", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the customer gateway ID", + "name": "s2scustomergatewayid", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the public IP address", + "name": "publicip", + "type": "string" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "unique ID of the disk offering", - "name": "id", + "description": "public ip address id of the customer gateway", + "name": "gateway", "type": "string" }, { - "description": "the storage type for this disk offering", - "name": "storagetype", + "description": "the project id", + "name": "projectid", "type": "string" }, { - "description": "the tags for the disk offering", - "name": "tags", + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "true if disk offering uses custom size, false otherwise", - "name": "iscustomized", - "type": "boolean" + "description": "IPsec Preshared-Key of the customer gateway", + "name": "ipsecpsk", + "type": "string" }, { - "description": "burst bytes read rate of the disk offering", - "name": "diskBytesReadRateMax", - "type": "long" + "description": "the date and time the host was created", + "name": "created", + "type": "date" }, { - "description": "Returns true if the disk offering is suitable for the given virtual machine for disk creation otherwise false", - "name": "suitableforvirtualmachine", + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", "type": "boolean" }, { - "description": "the vsphere storage policy tagged to the disk offering in case of VMware", - "name": "vspherestoragepolicy", - "type": "string" - }, - { - "description": "an alternate display text of the disk offering.", - "name": "displaytext", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, {}, { - "description": "length (in seconds) of the burst", - "name": "diskBytesWriteRateMaxLength", - "type": "long" - }, - { - "description": "the min iops of the disk offering", - "name": "miniops", - "type": "long" + "description": "the vpn gateway ID", + "name": "s2svpngatewayid", + "type": "string" }, { - "description": "additional key/value details tied with this disk offering", - "name": "details", - "type": "map" + "description": "State of vpn connection", + "name": "passive", + "type": "boolean" }, - {}, { - "description": "bytes write rate of the disk offering", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the size of the disk offering in GB", - "name": "disksize", - "type": "long" + "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", + "name": "splitconnections", + "type": "boolean" }, { - "description": "the max iops of the disk offering", - "name": "maxiops", - "type": "long" + "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", + "description": "IKE policy of the customer gateway", + "name": "ikepolicy", "type": "string" }, { - "description": "io requests write rate of the disk offering", - "name": "diskIopsWriteRate", + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", "type": "long" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "State of vpn connection", + "name": "state", "type": "string" }, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "name": "provisioningtype", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the name of the disk offering", - "name": "name", + "description": "the connection ID", + "name": "id", "type": "string" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "name": "hypervisorsnapshotreserve", - "type": "integer" - }, - { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "name": "cacheMode", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { - "description": "burst bytes write rate of the disk offering", - "name": "diskBytesWriteRateMax", - "type": "long" + "description": "is connection for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "length (in seconds) of the burst", - "name": "diskIopsWriteRateMaxLength", + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", "type": "long" - }, + } + ] + }, + { + "description": "migrates resources from one secondary storage to destination image store", + "isasync": true, + "name": "migrateResourceToAnotherSecondaryStorage", + "params": [ { - "description": "length (in seconds) of the burst", - "name": "diskBytesReadRateMaxLength", - "type": "long" + "description": "id(s) of the templates to be migrated", + "length": 255, + "name": "templates", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "type": "list" }, { - "description": "length (in second) of the burst", - "name": "diskIopsReadRateMaxLength", - "type": "long" + "description": "id of the destination secondary storage pool to which the resources are to be migrated", + "length": 255, + "name": "destpool", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": true, + "type": "uuid" }, { - "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", - "name": "disksizestrictness", - "type": "boolean" + "description": "id(s) of the snapshots to be migrated", + "length": 255, + "name": "snapshots", + "related": "createSnapshot,createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,revertSnapshot,listSnapshots", + "required": false, + "type": "list" }, { - "description": "the date this disk offering was created", - "name": "created", - "type": "date" - }, + "description": "id of the image store from where the data is to be migrated", + "length": 255, + "name": "srcpool", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": true, + "type": "uuid" + } + ], + "related": "migrateSecondaryStorageData", + "response": [ { - "description": "burst io requests write rate of the disk offering", - "name": "diskIopsWriteRateMax", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "io requests read rate of the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "whether to display the offering to the end user or not.", - "name": "displayoffering", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "bytes read rate of the disk offering", - "name": "diskBytesReadRate", - "type": "long" - }, - { - "description": "burst io requests read rate of the disk offering", - "name": "diskIopsReadRateMax", - "type": "long" - }, - { - "description": "true if disk offering uses custom iops, false otherwise", - "name": "iscustomizediops", - "type": "boolean" + "description": "Type of migration requested for", + "name": "migrationtype", + "type": "string" }, { - "description": "state of the disk offering", - "name": "state", + "description": "Response message from migration of secondary storage data objects", + "name": "message", "type": "string" } - ] + ], + "since": "4.19.0" }, { - "description": "Deletes a Cisco ASA 1000v appliance", + "description": "Deletes a keypair by name", "isasync": false, - "name": "deleteCiscoAsa1000vResource", + "name": "deleteSSHKeyPair", "params": [ { - "description": "Cisco ASA 1000v resource ID", + "description": "the project associated with keypair", "length": 255, - "name": "resourceid", - "related": "addCiscoAsa1000vResource,listCiscoAsa1000vResources", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "the account associated with the keypair. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "Name of the keypair", + "length": 255, + "name": "name", "required": true, + "type": "string" + }, + { + "description": "the domain ID associated with the keypair", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, "type": "uuid" } ], "response": [ - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, { "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": "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", @@ -40498,128 +32940,136 @@ ] }, { - "description": "Upgrades a running CloudManaged Kubernetes cluster", + "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", "isasync": true, - "name": "upgradeKubernetesCluster", + "name": "createAutoScaleVmGroup", "params": [ { - "description": "the ID of the Kubernetes cluster", + "description": "the autoscale profile that contains information about the vms in the vm group.", "length": 255, - "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster,upgradeKubernetesCluster", + "name": "vmprofileid", + "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile", "required": true, "type": "uuid" }, { - "description": "the ID of the Kubernetes version for upgrade", + "description": "list of scaledown autoscale policies", "length": 255, - "name": "kubernetesversionid", - "related": "addKubernetesSupportedVersion,listKubernetesSupportedVersions,updateKubernetesSupportedVersion", + "name": "scaledownpolicyids", + "related": "listAutoScalePolicies,updateAutoScalePolicy", "required": true, - "type": "uuid" - } - ], - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", - "response": [ - { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zonename", - "type": "string" - }, - { - "description": "the name of the network of the Kubernetes cluster", - "name": "associatednetworkname", - "type": "string" + "type": "list" }, { - "description": "the description of the Kubernetes cluster", - "name": "description", - "type": "string" + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", + "length": 255, + "name": "maxmembers", + "required": true, + "type": "integer" }, { - "description": "the state of the Kubernetes cluster", - "name": "state", - "type": "string" + "description": "the ID of the load balancer rule", + "length": 255, + "name": "lbruleid", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" }, { - "description": "path of the domain to which the Kubernetes cluster belongs", - "name": "domainpath", - "type": "string" + "description": "an optional field, whether to the display the group to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", - "type": "string" + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "length": 255, + "name": "minmembers", + "required": true, + "type": "integer" }, { - "description": "the name of the Kubernetes cluster", + "description": "the name of the autoscale vmgroup", + "length": 255, "name": "name", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the memory the Kubernetes cluster", - "name": "memory", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the frequency in which the performance counters to be collected", + "length": 255, + "name": "interval", + "required": false, "type": "integer" }, { - "description": "the size (worker nodes count) of the Kubernetes cluster", - "name": "size", - "type": "long" - }, + "description": "list of scaleup autoscale policies", + "length": 255, + "name": "scaleuppolicyids", + "related": "listAutoScalePolicies,updateAutoScalePolicy", + "required": true, + "type": "list" + } + ], + "related": "disableAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", + "response": [ { - "description": "Public IP Address of the cluster", - "name": "ipaddress", - "type": "string" + "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", + "name": "availablevirtualmachinecount", + "type": "int" }, { - "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", - "name": "masternodes", - "type": "long" + "description": "the load balancer rule ID", + "name": "lbruleid", + "type": "string" }, {}, { - "description": "keypair details", - "name": "keypair", + "description": "the domain name of the vm group", + "name": "domain", "type": "string" }, { - "description": "the name of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionname", - "type": "string" + "description": "list of scaleup autoscale policies", + "name": "scaleuppolicies", + "type": "list" }, { - "description": "the cpu cores of the Kubernetes cluster", - "name": "cpunumber", + "description": "the autoscale vm group ID", + "name": "id", "type": "string" }, { - "description": "the control nodes count for the Kubernetes cluster", - "name": "controlnodes", - "type": "long" + "description": "the autoscale profile that contains information about the vms in the vm group.", + "name": "vmprofileid", + "type": "string" }, { - "description": "the account associated with the Kubernetes cluster", + "description": "the account owning the vm group", "name": "account", "type": "string" }, { - "description": "Minimum size of the cluster", - "name": "minsize", - "type": "long" + "description": "the project id of the vm group", + "name": "projectid", + "type": "string" }, { - "description": "the ID of the service offering of the Kubernetes cluster", - "name": "serviceofferingid", + "description": "the id of the guest network the lb rule belongs to", + "name": "associatednetworkid", "type": "string" }, { - "description": "the id of the Kubernetes cluster", - "name": "id", + "description": "the public ip address id", + "name": "publicipid", + "type": "string" + }, + { + "description": "the name of the guest network the lb rule belongs to", + "name": "associatednetworkname", "type": "string" }, { @@ -40628,154 +33078,149 @@ "type": "boolean" }, { - "description": "the type of the cluster", - "name": "clustertype", - "type": "clustertype" + "description": "list of scaledown autoscale policies", + "name": "scaledownpolicies", + "type": "list" }, { - "description": "Whether autoscaling is enabled for the cluster", - "name": "autoscalingenabled", + "description": "is group for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the ID of the template of the Kubernetes cluster", - "name": "templateid", - "type": "string" + "description": "the frequency at which the conditions have to be evaluated", + "name": "interval", + "type": "int" }, { - "description": "the name of the domain in which the Kubernetes cluster exists", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zoneid", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "the name of the service offering of the Kubernetes cluster", - "name": "serviceofferingname", + "description": "the project name of the vm group", + "name": "project", "type": "string" }, { - "description": "the ID of the domain in which the Kubernetes cluster exists", - "name": "domainid", + "description": "the name of the autoscale vm group ", + "name": "name", "type": "string" }, { - "description": "Public IP Address ID of the cluster", - "name": "ipaddressid", - "type": "string" + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "name": "minmembers", + "type": "int" }, { - "description": "the list of virtualmachine associated with this Kubernetes cluster", - "name": "virtualmachines", - "type": "list" + "description": "the date when this vm group was created", + "name": "created", + "type": "date" }, { - "description": "Maximum size of the cluster", - "name": "maxsize", - "type": "long" + "description": "the domain ID of the vm group", + "name": "domainid", + "type": "string" }, { - "description": "URL end point for the Kubernetes cluster", - "name": "endpoint", + "description": "the private port", + "name": "privateport", "type": "string" }, { - "description": "URL end point for the Kubernetes cluster dashboard UI", - "name": "consoleendpoint", - "type": "string" + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", + "name": "maxmembers", + "type": "int" }, {}, { - "description": "the date when this Kubernetes cluster was created", - "name": "created", - "type": "date" + "description": "the current state of the AutoScale Vm Group", + "name": "state", + "type": "string" }, { - "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": "the project name of the Kubernetes cluster", - "name": "project", + "description": "path of the domain to which the vm group belongs", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionid", + "description": "the lb provider of the guest network the lb rule belongs to", + "name": "lbprovider", "type": "string" }, { - "description": "the ID of the network of the Kubernetes cluster", - "name": "networkid", + "description": "the public port", + "name": "publicport", "type": "string" } ] }, { - "description": "Creates a condition for VM auto scaling", - "isasync": true, - "name": "createCondition", + "description": "Searches LDAP based on the username attribute", + "isasync": false, + "name": "searchLdap", "params": [ { - "description": "the account of the condition. Must be used with the domainId parameter.", + "description": "", "length": 255, - "name": "account", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the domain ID of the account.", + "description": "", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "page", "required": false, - "type": "uuid" - }, - { - "description": "ID of the Counter.", - "length": 255, - "name": "counterid", - "related": "createCounter,listCounters", - "required": true, - "type": "uuid" + "type": "integer" }, { - "description": "an optional project for condition", + "description": "List by keyword", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "name": "keyword", "required": false, - "type": "uuid" - }, - { - "description": "Value for which the Counter will be evaluated with the Operator selected.", - "length": 255, - "name": "threshold", - "required": true, - "type": "long" + "type": "string" }, { - "description": "Relational Operator to be used with threshold. Valid values are EQ, GT, LT, GE, LE.", + "description": "query to search using", "length": 255, - "name": "relationaloperator", + "name": "query", + "related": "searchLdap,listLdapUsers", "required": true, "type": "string" } ], - "related": "listConditions", + "related": "listLdapUsers", "response": [ { - "description": "Details of the Counter.", - "name": "counter", - "type": "counterresponse" + "description": "The user's lastname", + "name": "lastname", + "type": "string" }, { - "description": "the Id of the Counter.", - "name": "counterid", + "description": "The user's username", + "name": "username", + "type": "string" + }, + { + "description": "The user's principle", + "name": "principal", + "type": "string" + }, + {}, + { + "description": "The user's email", + "name": "email", "type": "string" }, { @@ -40784,29 +33229,59 @@ "type": "integer" }, { - "description": "path of the domain to which the Condition owner belongs", - "name": "domainpath", + "description": "The authentication source for this user as known to the system or empty if the user is not yet in cloudstack.", + "name": "conflictingusersource", "type": "string" }, { - "description": "Relational Operator to be used with threshold.", - "name": "relationaloperator", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the project name of the Condition", - "name": "project", + "description": "The user's firstname", + "name": "firstname", "type": "string" }, { - "description": "the Name of the Counter.", - "name": "countername", + "description": "The user's domain", + "name": "domain", "type": "string" + } + ], + "since": "4.2.0" + }, + { + "description": "Returns the status of CloudStack, whether a shutdown has been triggered and if ready to shutdown", + "isasync": false, + "name": "readyForShutdown", + "params": [ + { + "description": "the uuid of the management server", + "length": 255, + "name": "managementserverid", + "related": "listManagementServers", + "required": false, + "type": "uuid" + } + ], + "related": "prepareForShutdown,triggerShutdown", + "response": [ + { + "description": "The number of jobs in progress", + "name": "pendingjobscount", + "type": "long" }, { - "description": "the domain id of the Condition owner", - "name": "domainid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Indicates whether a shutdown has been triggered", + "name": "shutdowntriggered", + "type": "boolean" }, {}, {}, @@ -40816,210 +33291,237 @@ "type": "string" }, { - "description": "Threshold Value for the counter.", - "name": "threshold", - "type": "long" + "description": "Indicates whether CloudStack is ready to shutdown", + "name": "readyforshutdown", + "type": "boolean" }, { - "description": "the owner of the Condition.", - "name": "account", + "description": "The id of the management server", + "name": "managementserverid", + "type": "long" + } + ], + "since": "4.19.0" + }, + { + "description": "add a baremetal ping pxe server", + "isasync": true, + "name": "addBaremetalPxePingServer", + "params": [ + { + "description": "PING storage server ip", + "length": 255, + "name": "pingstorageserverip", + "required": true, "type": "string" }, { - "description": "the domain name of the owner.", - "name": "domain", + "description": "Credentials to reach external pxe device", + "length": 255, + "name": "username", + "required": true, "type": "string" }, { - "description": "the project id of the Condition.", - "name": "projectid", - "type": "string" + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork,updatePhysicalNetwork", + "required": true, + "type": "uuid" }, { - "description": "the id of the Condition", - "name": "id", + "description": "Password of PING storage server", + "length": 255, + "name": "pingcifspassword", + "required": false, "type": "string" }, { - "description": "zone id of counter", - "name": "zoneid", + "description": "URL of the external pxe device", + "length": 255, + "name": "url", + "required": true, "type": "string" - } - ] - }, - { - "description": "Lists projects and provides detailed information for listed projects", - "isasync": false, - "name": "listProjects", - "params": [ + }, { - "description": "list projects by name", + "description": "Pod Id", "length": 255, - "name": "name", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "Credentials to reach external pxe device", "length": 255, - "name": "account", - "required": false, + "name": "password", + "required": true, "type": "string" }, { - "description": "List projects by tags (key/value pairs)", + "description": "Root directory on PING storage server", "length": 255, - "name": "tags", - "required": false, - "type": "map" + "name": "pingdir", + "required": true, + "type": "string" }, { - "description": "list projects by state", + "description": "Username of PING storage server", "length": 255, - "name": "state", + "name": "pingcifsusername", "required": false, "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "type of pxe device", "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "name": "pxeservertype", + "required": true, + "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "Tftp root directory of PXE server", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "name": "tftpdir", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "url", + "name": "url", + "type": "string" }, { - "description": "list projects by project ID", - "length": 255, - "name": "id", - "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {}, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "Root directory on PING storage server", + "name": "pingdir", + "type": "string" }, { - "description": "comma separated list of project details requested, value can be a list of [ all, resource, min]", - "length": 255, - "name": "details", - "required": false, - "type": "list" + "description": "name of the provider", + "name": "provider", + "type": "string" }, { - "description": "flag to display the resource icon for projects", - "length": 255, - "name": "showicon", - "required": false, - "type": "boolean" + "description": "PING storage server ip", + "name": "pingstorageserverip", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the physical network to which this external dhcp device belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "list projects by display text", - "length": 255, - "name": "displaytext", - "required": false, + "description": "Tftp root directory of PXE server", + "name": "tftpdir", "type": "string" }, + {}, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "device id of ", + "name": "id", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" + } + ] + }, + { + "description": "Change the BGP peers for a VPC.", + "isasync": true, + "name": "changeBgpPeersForVpc", + "params": [ + { + "description": "UUID of the VPC which the Bgp Peers are associated to.", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": true, + "type": "uuid" }, { - "description": "List projects by username", + "description": "Ids of the Bgp Peer. If it is empty, all BGP peers will be unlinked.", "length": 255, - "name": "username", + "name": "bgppeerids", + "related": "listBgpPeers,updateBgpPeer,releaseBgpPeer,changeBgpPeersForVpc", "required": false, - "type": "string" + "type": "list" } ], - "related": "listProjectAccounts,activateProject,createProject,suspendProject,updateProject", + "related": "listBgpPeers,updateBgpPeer,releaseBgpPeer", "response": [ { - "description": "the total number of cpu cores the project can own", - "name": "cpulimit", + "description": "date when this bgp peer was created.", + "name": "created", + "type": "date" + }, + { + "description": "id of the bgp peer", + "name": "id", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this project", - "name": "memoryavailable", + "description": "the project name of the bgp peer", + "name": "project", "type": "string" }, { - "description": "the total memory (in MB) the project can own", - "name": "memorylimit", + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, { - "description": "the total number of templates which have been created by this project", - "name": "templatetotal", - "type": "long" + "description": "IPv6 address of bgp peer", + "name": "ip6address", + "type": "string" }, { - "description": "the total number of virtual machines deployed by this project", - "name": "vmtotal", + "description": "AS number of bgp peer", + "name": "asnumber", "type": "long" }, + {}, { - "description": "the total primary storage space (in GiB) the project can own", - "name": "primarystoragelimit", + "description": "the domain name of the bgp peer", + "name": "domain", "type": "string" }, { - "description": "the account name of the project's owners", - "name": "owner", - "type": "list" - }, - { - "description": "the total secondary storage space (in GiB) owned by project", - "name": "secondarystoragetotal", - "type": "float" + "description": "the account of the bgp peer", + "name": "account", + "type": "string" }, { - "description": "the total memory (in MB) owned by project", - "name": "memorytotal", - "type": "long" + "description": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", + "type": "string" }, { - "description": "the total number of snapshots available for this project", - "name": "snapshotavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of vpcs owned by project", - "name": "vpctotal", - "type": "long" + "description": "name of zone to which the bgp peer belongs to.", + "name": "zonename", + "type": "string" }, { - "description": "the total number of public ip addresses available for this project to acquire", - "name": "ipavailable", + "description": "IPv4 address of bgp peer", + "name": "ipaddress", "type": "string" }, { @@ -41028,129 +33530,176 @@ "type": "integer" }, { - "description": "the total primary storage space (in GiB) owned by project", - "name": "primarystoragetotal", - "type": "long" + "description": "the domain ID of the bgp peer", + "name": "domainid", + "type": "string" }, { - "description": "the total number of templates available to be created by this project", - "name": "templateavailable", - "type": "string" + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" }, { - "description": "the total number of vpcs available to be created for this project", - "name": "vpcavailable", + "description": "password of bgp peer", + "name": "password", "type": "string" }, - {}, + {} + ], + "since": "4.20.0" + }, + { + "description": "Deletes a load balancer rule.", + "isasync": true, + "name": "deleteLoadBalancerRule", + "params": [ { - "description": "the total number of virtual machines that can be deployed by this project", - "name": "vmlimit", + "description": "the ID of the load balancer rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this project", - "name": "primarystorageavailable", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the total volume being used by this project", - "name": "volumetotal", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "the total number of public ip addresses allocated for this project", - "name": "iptotal", - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + } + ] + }, + { + "description": "Start a Shared FileSystem", + "isasync": true, + "name": "startSharedFileSystem", + "params": [ + { + "description": "the ID of the shared filesystem", + "length": 255, + "name": "id", + "related": "createSharedFileSystem,listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", + "required": true, + "type": "uuid" + } + ], + "related": "createSharedFileSystem,listSharedFileSystems,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", + "response": [ + { + "description": "the disk utilization", + "name": "utilization", + "type": "string" }, { - "description": "the total number of snapshots stored by this project", - "name": "snapshottotal", - "type": "long" + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", + "type": "string" }, { - "description": "the total number of virtual machines running for this project", - "name": "vmrunning", - "type": "integer" + "description": "Network name of the shared filesystem", + "name": "networkname", + "type": "string" }, { - "description": "the total number of networks available to be created for this project", - "name": "networkavailable", + "description": "Name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the id of the project", - "name": "id", + "description": "size of the shared filesystem in GiB", + "name": "sizegb", "type": "string" }, { - "description": "the total volume available for this project", - "name": "volumeavailable", + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", "type": "string" }, { - "description": "the total number of cpu cores available to be created for this project", - "name": "cpuavailable", + "description": "name of the shared filesystem", + "name": "name", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this project", - "name": "secondarystorageavailable", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Network ID of the shared filesystem", + "name": "networkid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the storage fs vm", + "name": "vmstate", "type": "string" }, { - "description": "the total number of cpu cores owned by project", - "name": "cputotal", - "type": "long" + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", + "type": "boolean" }, { - "description": "the total number of networks owned by project", - "name": "networktotal", + "description": "the bytes allocated", + "name": "virtualsize", "type": "long" }, { - "description": "the total number of vpcs the project can own", - "name": "vpclimit", + "description": "the shared filesystem provider", + "name": "provider", "type": "string" }, { - "description": "the name of the project", - "name": "name", + "description": "the project ID of the shared filesystem", + "name": "projectid", "type": "string" }, { - "description": "the date this project was created", - "name": "created", - "type": "date" + "description": "path to mount the shared filesystem", + "name": "path", + "type": "string" }, { - "description": "the displaytext of the project", - "name": "displaytext", + "description": "the account associated with the shared filesystem", + "name": "account", "type": "string" }, { - "description": "the total volume which can be used by this project", - "name": "volumelimit", + "description": "ID of the shared filesystem", + "name": "id", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", + "type": "string" }, { - "description": "the domain name where the project belongs to", - "name": "domain", + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", "type": "string" }, { - "description": "the list of resource tags associated with vm", + "description": "the list of resource tags associated", "name": "tags", "response": [ { @@ -41159,18 +33708,23 @@ "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -41179,8 +33733,8 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -41188,6 +33742,11 @@ "name": "resourcetype", "type": "string" }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, { "description": "tag key name", "name": "key", @@ -41197,1757 +33756,1374 @@ "description": "the project id the tag belongs to", "name": "projectid", "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" } ], - "type": "list" - }, - { - "description": "the total number of virtual machines available for this project to acquire", - "name": "vmavailable", - "type": "string" - }, - { - "description": "the total number of networks the project can own", - "name": "networklimit", - "type": "string" - }, - { - "description": "the total number of snapshots which can be stored by this project", - "name": "snapshotlimit", - "type": "string" - }, - { - "description": "the total number of virtual machines stopped for this project", - "name": "vmstopped", - "type": "integer" + "type": "set" }, { - "description": "the total number of public ip addresses this project can acquire", - "name": "iplimit", + "description": "the project name of the shared filesystem", + "name": "project", "type": "string" }, { - "description": "the total number of templates which can be created by this project", - "name": "templatelimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the state of the project", + "description": "the state of the shared filesystem", "name": "state", "type": "string" }, + {}, { - "description": "The tagged resource limit and count for the project", - "name": "taggedresources", - "type": "list" - }, - { - "description": "the total secondary storage space (in GiB) the project can own", - "name": "secondarystoragelimit", - "type": "string" - }, - { - "description": "the project account name of the project", - "name": "projectaccountname", - "type": "string" - }, - { - "description": "the domain id the project belongs to", - "name": "domainid", - "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Creates an account", - "isasync": false, - "name": "createAccount", - "params": [ - { - "description": "details for account used to store specific parameters", - "length": 255, - "name": "accountdetails", - "required": false, - "type": "map" - }, - { - "description": "Name of the account to be created. The user will be added to this newly created account. If no account is specified, the username will be used as the account name.", - "length": 255, - "name": "account", - "required": false, + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", "type": "string" }, { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", - "length": 255, - "name": "timezone", - "required": false, - "type": "string" + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.", - "length": 255, - "name": "password", - "required": true, + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "User UUID, required for adding account from external provisioning system", - "length": 255, - "name": "userid", - "required": false, - "type": "string" + "description": "size of the shared filesystem", + "name": "size", + "type": "long" }, { - "description": "firstname", - "length": 255, - "name": "firstname", - "required": true, + "description": "the filesystem format", + "name": "filesystem", "type": "string" }, { - "description": "lastname", - "length": 255, - "name": "lastname", - "required": true, + "description": "ID of the storage fs vm", + "name": "virtualmachineid", "type": "string" }, { - "description": "Creates the account under the specified role.", - "length": 255, - "name": "roleid", - "related": "createRole,importRole,listRoles,updateRole", - "required": false, - "type": "uuid" - }, - { - "description": "Creates the user under the specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "Unique username.", - "length": 255, - "name": "username", - "required": true, - "type": "string" + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" }, { - "description": "Network domain for the account's networks", - "length": 255, - "name": "networkdomain", - "required": false, - "type": "string" + "description": "the read (IO) of disk on the shared filesystem", + "name": "diskioread", + "type": "long" }, { - "description": "Account UUID, required for adding account from external provisioning system", - "length": 255, - "name": "accountid", - "required": false, + "description": "the domain associated with the shared filesystem", + "name": "domain", "type": "string" }, { - "description": "Type of the account. Specify 0 for user, 1 for root admin, and 2 for domain admin", - "length": 255, - "name": "accounttype", - "required": false, - "type": "integer" - }, - { - "description": "email", - "length": 255, - "name": "email", - "required": true, - "type": "string" - } - ], - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "response": [ - { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", + "description": "name of the storage fs data volume", + "name": "volumename", "type": "string" }, { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", "type": "string" }, + {}, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", - "type": "long" - }, - { - "description": "the state of the account", - "name": "state", + "description": "ID of the storage fs data volume", + "name": "volumeid", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "name of the storage pool hosting the data volume", + "name": "storage", "type": "string" }, { - "description": "id of the Domain the account belongs to", - "name": "domainid", + "description": "path of the domain to which the shared filesystem", + "name": "domainpath", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", "type": "string" }, { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "description of the shared filesystem", + "name": "description", + "type": "string" }, { - "description": "the list of users associated with account", - "name": "user", + "description": "the list of nics associated with the shared filesystem", + "name": "nic", "response": [ { - "description": "the user name", - "name": "username", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { - "description": "the domain name of the user", - "name": "domain", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the user state", - "name": "state", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the account ID of the user", - "name": "accountid", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the user email address", - "name": "email", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", "type": "integer" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" }, { - "description": "the user ID", - "name": "id", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "the api key of the user", - "name": "apikey", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "the domain ID of the user", - "name": "domainid", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + } + ], + "since": "4.20.0" + }, + { + "description": "list portable IP ranges", + "isasync": false, + "name": "listPortableIpRanges", + "params": [ + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "Id of the portable ip range", + "length": 255, + "name": "id", + "related": "createPortableIpRange,listPortableIpRanges", + "required": false, + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "Id of a Region", + "length": 255, + "name": "regionid", + "required": false, + "type": "integer" + } + ], + "related": "createPortableIpRange", + "response": [ + { + "description": "Region Id in which portable ip range is provisioned", + "name": "regionid", + "type": "integer" + }, + { + "description": "the gateway of the VLAN IP range", + "name": "gateway", + "type": "string" + }, + { + "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule", + "name": "portableipaddress", + "response": [ + { + "description": "public IP address", + "name": "ipaddress", + "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "the account name of the user", - "name": "account", + "description": "State of the ip address. Can be: Allocating, Allocated, Releasing and Free", + "name": "state", "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "the account ID the portable IP address is associated with", + "name": "accountid", "type": "string" }, { - "description": "the user lastname", - "name": "lastname", + "description": "the domain ID the portable IP address is associated with", + "name": "domainid", "type": "string" }, { - "description": "the user firstname", - "name": "firstname", + "description": "date the portal IP address was acquired", + "name": "allocated", + "type": "date" + }, + { + "description": "VPC the ip belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "the ID of the Network where ip belongs to", + "name": "networkid", + "type": "string" + }, + { + "description": "the ID of the zone the public IP address belongs to", + "name": "zoneid", "type": "string" + }, + { + "description": "Region Id in which global load balancer is created", + "name": "regionid", + "type": "integer" } ], "type": "list" }, + { + "description": "the end ip of the portable IP range", + "name": "endip", + "type": "string" + }, + { + "description": "portable IP range ID", + "name": "id", + "type": "string" + }, {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the ID or VID of the VLAN.", + "name": "vlan", + "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", + "description": "the start ip of the portable IP range", + "name": "startip", "type": "string" }, + {}, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the netmask of the VLAN IP range", + "name": "netmask", + "type": "string" + } + ] + }, + { + "description": "Returns user data associated with the VM", + "isasync": false, + "name": "getVirtualMachineUserData", + "params": [ + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "Base64 encoded VM user data", + "name": "userdata", "type": "string" }, + {}, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", + "description": "the ID of the virtual machine", + "name": "virtualmachineid", "type": "string" }, + {} + ], + "since": "4.4" + }, + { + "description": "Updates network permissions.", + "isasync": false, + "name": "createNetworkPermissions", + "params": [ + { + "description": "the network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" + }, { - "description": "the name of the account", - "name": "name", + "description": "a comma delimited list of projects within owner's domain. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "projectids", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "list" + }, + { + "description": "a comma delimited list of accounts within owner's domain. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "accounts", + "required": false, + "type": "list" + }, + { + "description": "a comma delimited list of account IDs within owner's domain. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "accountids", + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "required": false, + "type": "list" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" + "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.17.0" + }, + { + "description": "Lists all configurations.", + "isasync": false, + "name": "listConfigurations", + "params": [ { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" + "description": "the ID of the Account to update the parameter value for corresponding account", + "length": 255, + "name": "accountid", + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "required": false, + "type": "uuid" }, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "the ID of the Zone to update the parameter value for corresponding zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "lists configuration by subgroup name (primarily used for UI)", + "length": 255, + "name": "subgroup", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "the ID of the Image Store to update the parameter value for corresponding image store", + "length": 255, + "name": "imagestoreuuid", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": false, + "type": "uuid" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", - "type": "string" + "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "required": false, + "type": "uuid" }, { - "description": "the default zone of the account", - "name": "defaultzoneid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", + "description": "lists configuration by parent name (primarily used for UI)", + "length": 255, + "name": "parent", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" - }, - { - "description": "the total number of projects the account can own", - "name": "projectlimit", + "description": "lists configuration by name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the total volume available for this account", - "name": "volumeavailable", + "description": "lists configurations by category", + "length": 255, + "name": "category", + "required": false, "type": "string" }, { - "description": "the id of the account", - "name": "id", + "description": "lists configuration by group name (primarily used for UI)", + "length": 255, + "name": "group", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "the ID of the Cluster to update the parameter value for corresponding cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": false, + "type": "uuid" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "the ID of the Domain to update the parameter value for corresponding domain", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": false, + "type": "uuid" }, { - "description": "the date when this account was created", - "name": "created", - "type": "date" - }, + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "updateConfiguration", + "response": [ { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", - "type": "string" + "description": "the value of the configuration", + "name": "id", + "type": "long" }, { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "the display text of the configuration", + "name": "displaytext", "type": "string" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", - "type": "boolean" - }, - { - "description": "the total number of networks the account can own", - "name": "networklimit", + "description": "the name of the configuration", + "name": "name", "type": "string" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, + {}, { - "description": "path of the Domain the account belongs to", - "name": "domainpath", + "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated", + "name": "scope", "type": "string" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" - }, - { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", + "description": "the type of the configuration value", + "name": "type", "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": "true if the configuration is dynamic", + "name": "isdynamic", + "type": "boolean" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", + "description": "the possible options of the configuration value", + "name": "options", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", + "description": "the subgroup of the configuration", + "name": "subgroup", "type": "string" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "name of the Domain the account belongs to", - "name": "domain", + "description": "the component of the configuration", + "name": "component", "type": "string" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", + "description": "the name of the parent configuration", + "name": "parent", "type": "string" }, { - "description": "details for the account", - "name": "accountdetails", - "type": "map" + "description": "the category of the configuration", + "name": "category", + "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "the group of the configuration", + "name": "group", "type": "string" }, { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" + "description": "the default value of the configuration", + "name": "defaultvalue", + "type": "string" }, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", + "description": "the value of the configuration", + "name": "value", "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "the description of the configuration", + "name": "description", "type": "string" - }, + } + ] + }, + { + "description": "Disables static rule for given IP address", + "isasync": true, + "name": "disableStaticNat", + "params": [ { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" - }, + "description": "the public IP address ID for which static NAT feature is being disabled", + "length": 255, + "name": "ipaddressid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", - "type": "long" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - } + }, + {} ] }, { - "description": "Revert VM from a vmsnapshot.", + "description": "Assigns secondary IP to NIC", "isasync": true, - "name": "revertToVMSnapshot", + "name": "addIpToNic", "params": [ { - "description": "The ID of the vm snapshot", + "description": "the ID of the nic to which you want to assign private IP", "length": 255, - "name": "vmsnapshotid", - "related": "listVMSnapshot,createVMSnapshot", + "name": "nicid", + "related": "listNics", "required": true, "type": "uuid" + }, + { + "description": "Secondary IP Address", + "length": 255, + "name": "ipaddress", + "required": false, + "type": "string" } ], - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "related": "", "response": [ + {}, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the ID of the nic", + "name": "nicid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the network", + "name": "networkid", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the ID of the vm", + "name": "virtualmachineid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "Secondary IP address", + "name": "ipaddress", "type": "string" }, + {}, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the list of Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the ID of the secondary private IP addr", + "name": "id", + "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Stops a NetScalervm.", + "isasync": true, + "name": "stopNetScalerVpx", + "params": [ { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" + "description": "the ID of the NetScaler vm", + "length": 255, + "name": "id", + "related": "destroyRouter,listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", + "required": true, + "type": "uuid" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, + "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", + "length": 255, + "name": "forced", + "required": false, + "type": "boolean" + } + ], + "related": "destroyRouter,listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", + "response": [ { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - } - ], - "type": "set" + "description": "the network domain for the router", + "name": "networkdomain", + "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the state of redundant virtual router", + "name": "redundantstate", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the link local netmask for the router", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the public IP address for the router", + "name": "publicip", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "role of the domain router", + "name": "role", + "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the guest IP address for the router", + "name": "guestipaddress", "type": "string" }, - {}, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "Last executed health check result for the router", + "name": "healthcheckresults", "response": [ { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", + "description": "the type of the health check - basic or advanced", + "name": "checktype", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "the name of the health check on the router", + "name": "checkname", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" }, { - "description": "the name of the affinity group", - "name": "name", - "type": "string" + "description": "result of the health check", + "name": "success", + "type": "boolean" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "detailed response generated on running health check", + "name": "details", "type": "string" } ], - "type": "set" - }, - { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" + "type": "list" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the public netmask for the router", + "name": "publicnetmask", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the guest MAC address for the router", + "name": "guestmacaddress", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "the name of the virtual machine", - "name": "name", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the guest netmask for the router", + "name": "guestnetmask", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, + {}, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, {}, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the name of the router", + "name": "name", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the Zone ID for the router", + "name": "zoneid", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the account associated with the router", + "name": "account", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the Zone name for the router", + "name": "zonename", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the second DNS for the router", + "name": "dns2", + "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the version of template", + "name": "version", "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", + "description": "the list of nics associated with the router", + "name": "nic", "response": [ { - "description": "the name of the security group", - "name": "name", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - } - ], - "type": "set" + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - } - ], - "type": "set" + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "the description of the security group", - "name": "description", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { - "description": "the account owning the security group", - "name": "account", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the project name of the group", - "name": "project", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the ID of the security group", - "name": "id", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "the type of the nic", + "name": "type", "type": "string" - } - ], - "type": "set" - }, - { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" - }, - { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ + }, { - "description": "id of the resource", - "name": "resourceid", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" } ], "type": "set" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, - {}, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the template ID for the router", + "name": "templateid", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the link local IP address for the router", + "name": "linklocalip", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "path of the domain in which the virtual machine exists", + "description": "path of the Domain the router belongs to", "name": "domainpath", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the domain associated with the router", + "name": "domain", "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the public MAC address for the router", + "name": "publicmacaddress", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the domain ID associated with the router", + "name": "domainid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the hostname for the router", + "name": "hostname", "type": "string" } - ], - "since": "4.2.0" + ] }, { - "description": "Removes a Guest OS Mapping.", - "isasync": true, - "name": "removeGuestOsMapping", + "description": "Delete a Ucs manager", + "isasync": false, + "name": "deleteUcsManager", "params": [ { - "description": "ID of the guest OS mapping", + "description": "ucs manager id", "length": 255, - "name": "id", - "related": "listGuestOsMapping,addGuestOsMapping,updateGuestOsMapping", + "name": "ucsmanagerid", + "related": "listUcsManagers,addUcsManager", "required": true, "type": "uuid" } ], "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, { "description": "true if operation is executed successfully", "name": "success", "type": "boolean" }, + {}, + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", @@ -42957,56 +35133,43 @@ "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, - {}, - {} - ], - "since": "4.4.0" + } + ] }, { - "description": "create Tungsten-Fabric service group", - "isasync": true, - "name": "createTungstenFabricServiceGroup", + "description": "Deletes a host.", + "isasync": false, + "name": "deleteHost", "params": [ { - "description": "Tungsten-Fabric service group protocol", - "length": 255, - "name": "protocol", - "required": true, - "type": "string" - }, - { - "description": "Tungsten-Fabric service group name", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "Tungsten-Fabric service group end port", + "description": "Force destroy local storage on this host. All VMs created on this local storage will be destroyed", "length": 255, - "name": "endport", - "required": true, - "type": "integer" + "name": "forcedestroylocalstorage", + "required": false, + "type": "boolean" }, { - "description": "Tungsten-Fabric service group start port", + "description": "Force delete the host. All HA enabled vms running on the host will be put to HA; HA disabled ones will be stopped", "length": 255, - "name": "startport", - "required": true, - "type": "integer" + "name": "forced", + "required": false, + "type": "boolean" }, { - "description": "the ID of zone", + "description": "the host ID", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "id", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": true, "type": "uuid" } ], - "related": "", "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, {}, { "description": "the current status of the latest async job acting on this object", @@ -43014,67 +35177,37 @@ "type": "integer" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric service group uuid", - "name": "uuid", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - {}, - { - "description": "Tungsten-Fabric service group end port", - "name": "endport", - "type": "int" - }, - { - "description": "Tungsten-Fabric service group protocol", - "name": "protocol", - "type": "string" - }, - { - "description": "Tungsten-Fabric service group name", - "name": "name", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, - { - "description": "Tungsten-Fabric service group start port", - "name": "startport", - "type": "int" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } + }, + {} ] }, { - "description": "Recover a Shared FileSystem by id", + "description": "Deletes a vm group", "isasync": false, - "name": "recoverSharedFileSystem", + "name": "deleteInstanceGroup", "params": [ { - "description": "the ID of the shared filesystem to recover", + "description": "the ID of the instance group", "length": 255, "name": "id", - "related": "listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": false, + "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup", + "required": true, "type": "uuid" } ], "response": [ { - "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", @@ -43082,258 +35215,136 @@ "type": "boolean" }, { - "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": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ], - "since": "4.20.0" + }, + {}, + {} + ] }, { - "description": "Registers an existing ISO into the CloudStack Cloud.", + "description": "deletes the resource icon from the specified resource(s)", "isasync": false, - "name": "registerIso", + "name": "deleteResourceIcon", "params": [ { - "description": "the checksum value of this ISO. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", - "length": 255, - "name": "checksum", - "required": false, - "type": "string" - }, - { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "true if password reset feature is supported; default is false", - "length": 255, - "name": "passwordenabled", - "required": false, - "type": "boolean" - }, - { - "description": "the CPU arch of the ISO. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", - "type": "string" - }, - { - "description": "Register ISO for the project", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,suspendProject,updateProject", - "required": false, - "type": "uuid" - }, - { - "description": "Image store UUID", - "length": 255, - "name": "imagestoreuuid", - "required": false, - "type": "string" - }, - { - "description": "the ID of the zone you wish to register the ISO to.", + "description": "list of resources to upload the icon/image for", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "resourceids", "required": true, - "type": "uuid" - }, - { - "description": "true if the ISO or its derivatives are extractable; default is false", - "length": 255, - "name": "isextractable", - "required": false, - "type": "boolean" - }, - { - "description": "the ID of the OS type that best represents the OS of this ISO. If the ISO is bootable this parameter needs to be passed", - "length": 255, - "name": "ostypeid", - "related": "addGuestOs", - "required": false, - "type": "uuid" + "type": "list" }, { - "description": "the name of the ISO", + "description": "type of the resource", "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "the URL to where the ISO is currently being hosted", - "length": 2048, - "name": "url", + "name": "resourcetype", "required": true, "type": "string" - }, - { - "description": "the display text of the ISO, defaults to the 'name'", - "length": 4096, - "name": "displaytext", - "required": false, - "type": "string" - }, - { - "description": "an optional account name. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "true if ISO contains XS/VMWare tools inorder to support dynamic scaling of VM CPU/memory", - "length": 255, - "name": "isdynamicallyscalable", - "required": false, - "type": "boolean" - }, - { - "description": "true if this ISO is bootable. If not passed explicitly its assumed to be true", - "length": 255, - "name": "bootable", - "required": false, - "type": "boolean" - }, - { - "description": "true if you want this ISO to be featured", - "length": 255, - "name": "isfeatured", - "required": false, - "type": "boolean" - }, - { - "description": "true if you want to register the ISO to be publicly available to all users, false otherwise.", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" - }, - { - "description": "true if ISO should bypass Secondary Storage and be downloaded to Primary Storage on deployment", - "length": 255, - "name": "directdownload", - "required": false, - "type": "boolean" } ], - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ + {}, + {}, { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" - }, - { - "description": "the account name to which the template belongs", - "name": "account", - "type": "string" - }, - { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, + } + ], + "since": "4.16.0.0" + }, + { + "description": "Lists capabilities", + "isasync": false, + "name": "listCapabilities", + "params": [], + "related": "", + "response": [ { - "description": "the project name of the template", - "name": "project", - "type": "string" + "description": "Max allowed number of api requests within the specified interval", + "name": "apilimitmax", + "type": "integer" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", + "description": "true if security groups support is enabled, false otherwise", + "name": "securitygroupsenabled", "type": "boolean" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" - }, - { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "true if region supports elastic load balancer on basic zones", + "name": "supportELB", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "default page size in the UI for various views, value set in the configurations", + "name": "defaultuipagesize", + "type": "long" }, { - "description": "the name of the zone for this template", - "name": "zonename", - "type": "string" + "description": "true if stats are collected only for user instances, false if system instance stats are also collected", + "name": "instancesstatsuseronly", + "type": "boolean" }, { - "description": "checksum of the template", - "name": "checksum", - "type": "string" + "description": "time interval (in seconds) to reset api count", + "name": "apilimitinterval", + "type": "integer" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "Display name for custom hypervisor", + "name": "customhypervisordisplayname", "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "the min Ram size for the service offering used by the shared filesystem instance", + "name": "sharedfsvmminramsize", + "type": "integer" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "true if the user can recover and expunge virtualmachines, false otherwise", + "name": "allowuserexpungerecovervm", + "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the retention time for Instances stats", + "name": "instancesstatsretentiontime", + "type": "integer" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", - "type": "string" + "description": "true if users can see all accounts within the same domain, false otherwise", + "name": "allowuserviewalldomainaccounts", + "type": "boolean" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", - "type": "string" + "description": "true if users are allowed to force stop a vm, false otherwise", + "name": "allowuserforcestopvm", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -43341,1008 +35352,943 @@ "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", + "description": "true if user and domain admins can set templates to be shared, false otherwise", + "name": "userpublictemplateenabled", "type": "boolean" }, { - "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", - "name": "deployasis", + "description": "true if regular user is allowed to create projects", + "name": "allowusercreateprojects", "type": "boolean" }, + {}, + {}, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", - "type": "string" - }, - { - "description": "the status of the template", - "name": "status", - "type": "string" - }, - { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" + "description": "maximum size that can be specified when create disk from disk offering with custom size", + "name": "customdiskofferingmaxsize", + "type": "long" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", + "description": "true if dynamic role-based api checker is enabled, false otherwise", + "name": "dynamicrolesenabled", "type": "boolean" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", + "description": "true if stats are retained for instance disks otherwise false", + "name": "instancesdisksstatsretentionenabled", "type": "boolean" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the retention time for Instances disks stats", + "name": "instancesdisksstatsretentiontime", + "type": "integer" }, - {}, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "true if the user is allowed to view destroyed virtualmachines, false otherwise", + "name": "allowuserviewdestroyedvm", + "type": "boolean" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", - "type": "string" + "description": "true if Kubernetes Service plugin is enabled, false otherwise", + "name": "kubernetesserviceenabled", + "type": "boolean" }, { - "description": "the physical size of the template", - "name": "physicalsize", + "description": "minimum size that can be specified when create disk from disk offering with custom size", + "name": "customdiskofferingminsize", "type": "long" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" + "description": "If invitation confirmation is required when add account to project", + "name": "projectinviterequired", + "type": "boolean" }, { - "description": "the tag of this template", - "name": "templatetag", - "type": "string" + "description": "true if region wide secondary is enabled, false otherwise", + "name": "regionsecondaryenabled", + "type": "boolean" }, { - "description": "the template name", - "name": "name", - "type": "string" + "description": "true if snapshot is supported for KVM host, false otherwise", + "name": "kvmsnapshotenabled", + "type": "boolean" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if the user can recover and expunge volumes, false otherwise", + "name": "allowuserexpungerecovervolume", "type": "boolean" }, { - "description": "the template display text", - "name": "displaytext", + "description": "version of the cloud stack", + "name": "cloudstackversion", "type": "string" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "true if experimental features for Kubernetes cluster such as Docker private registry are enabled, false otherwise", + "name": "kubernetesclusterexperimentalfeaturesenabled", "type": "boolean" }, { - "description": "the template ID", - "name": "id", - "type": "string" - }, + "description": "the min CPU count for the service offering used by the shared filesystem instance", + "name": "sharedfsvmmincpucount", + "type": "integer" + } + ] + }, + { + "description": "Updates traffic type of a physical network", + "isasync": true, + "name": "updateTrafficType", + "params": [ { - "description": "CPU Arch of the template", - "name": "arch", + "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host", + "length": 255, + "name": "hypervnetworklabel", + "required": false, "type": "string" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" - }, - { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "The network name label of the physical device dedicated to this traffic on a VMware host", + "length": 255, + "name": "vmwarenetworklabel", + "required": false, + "type": "string" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", + "length": 255, + "name": "ovm3networklabel", + "required": false, "type": "string" }, { - "description": "the 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", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" + "description": "The network name label of the physical device dedicated to this traffic on a KVM host", + "length": 255, + "name": "kvmnetworklabel", + "required": false, + "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", + "length": 255, + "name": "xennetworklabel", + "required": false, "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, + "description": "traffic type id", + "length": 255, + "name": "id", + "related": "addTrafficType,updateTrafficType", + "required": true, + "type": "uuid" + } + ], + "related": "addTrafficType", + "response": [ { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "The network name label of the physical device dedicated to this traffic on a VMware host", + "name": "vmwarenetworklabel", "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "The network name label of the physical device dedicated to this traffic on a HyperV host", + "name": "hypervnetworklabel", "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", + "name": "xennetworklabel", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" - }, - { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "id of the network provider", + "name": "id", "type": "string" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" - }, - { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" - }, - { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" - }, - {} - ] - }, - { - "description": "Lists Cisco ASA 1000v appliances", - "isasync": false, - "name": "listCiscoAsa1000vResources", - "params": [ - { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", + "name": "ovm3networklabel", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "Cisco ASA 1000v resource ID", - "length": 255, - "name": "resourceid", - "related": "addCiscoAsa1000vResource,listCiscoAsa1000vResources", - "required": false, - "type": "uuid" + "description": "the trafficType to be added to the physical network", + "name": "traffictype", + "type": "string" }, { - "description": "Hostname or ip address of the Cisco ASA 1000v appliance.", - "length": 255, - "name": "hostname", - "required": false, + "description": "The network name label of the physical device dedicated to this traffic on a KVM host", + "name": "kvmnetworklabel", "type": "string" - } - ], - "related": "addCiscoAsa1000vResource", - "response": [ - {}, + }, {}, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, - {}, - {}, - {}, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" } - ] + ], + "since": "3.0.0" }, { - "description": "deletes a range of portable public IP's associated with a region", + "description": "Release dedication of zone", "isasync": true, - "name": "deletePortableIpRange", + "name": "releaseDedicatedZone", "params": [ { - "description": "Id of the portable ip range", + "description": "the ID of the Zone", "length": 255, - "name": "id", - "related": "createPortableIpRange", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": true, "type": "uuid" } ], "response": [ - { - "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" - } + }, + {} ] }, { - "description": "Upgrades router to use newer template", + "description": "List Conditions for VM auto scaling", "isasync": false, - "name": "upgradeRouterTemplate", + "name": "listConditions", "params": [ { - "description": "upgrades all routers owned by the specified domain", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "list only resources belonging to the domain specified", "length": 255, "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, "type": "uuid" }, { - "description": "upgrades router with the specified Id", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "id", - "related": "destroyRouter,listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "upgrades all routers within the specified zone", + "description": "Counter-id of the condition.", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "counterid", + "related": "createCounter,listCounters", "required": false, "type": "uuid" }, { - "description": "upgrades all routers within the specified cluster", + "description": "", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "upgrades all routers within the specified pod", + "description": "ID of the Condition.", "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", + "name": "id", + "related": "createCondition,listConditions", "required": false, "type": "uuid" }, { - "description": "upgrades all routers owned by the specified account", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, "name": "account", "required": false, "type": "string" - } - ], - "related": "", - "response": [ - {}, - { - "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": "Lists IPv4 subnets for guest networks.", - "isasync": false, - "name": "listIpv4SubnetsForGuestNetwork", - "params": [ { - "description": "UUID of VPC to which the IPv4 subnet is associated to.", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "name": "isrecursive", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "UUID of zone Ipv4 subnet which the IPv4 subnet belongs to.", + "description": "the ID of the policy", "length": 255, - "name": "parentid", - "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "name": "policyid", + "related": "listAutoScalePolicies,updateAutoScalePolicy", "required": false, "type": "uuid" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "UUID of zone to which the IPv4 subnet belongs to.", + "description": "List by keyword", "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" + } + ], + "related": "createCondition", + "response": [ + { + "description": "Threshold Value for the counter.", + "name": "threshold", + "type": "long" }, { - "description": "The CIDR of the Ipv4 subnet.", - "length": 255, - "name": "subnet", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the Id of the Counter.", + "name": "counterid", "type": "string" }, { - "description": "UUID of the IPv4 subnet for guest network.", - "length": 255, - "name": "id", - "related": "createIpv4SubnetForGuestNetwork,listIpv4SubnetsForGuestNetwork", - "required": false, - "type": "uuid" + "description": "the owner of the Condition.", + "name": "account", + "type": "string" }, + {}, { - "description": "UUID of network to which the IPv4 subnet is associated to.", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" + "description": "the project id of the Condition.", + "name": "projectid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "createIpv4SubnetForGuestNetwork", - "response": [ + "description": "the domain name of the owner.", + "name": "domain", + "type": "string" + }, { - "description": "id of the data center IPv4 subnet", - "name": "parentid", + "description": "the Name of the Counter.", + "name": "countername", "type": "string" }, { - "description": "subnet of the data center IPv4 subnet", - "name": "parentsubnet", + "description": "path of the domain to which the Condition owner belongs", + "name": "domainpath", "type": "string" }, { - "description": "id of the IPv4 subnet for guest network", - "name": "id", + "description": "Relational Operator to be used with threshold.", + "name": "relationaloperator", "type": "string" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zonename", + "description": "the id of the Condition", + "name": "id", "type": "string" }, { - "description": "Name of the VPC which the IPv4 subnet is associated with.", - "name": "vpcname", + "description": "Details of the Counter.", + "name": "counter", + "type": "counterresponse" + }, + { + "description": "the project name of the Condition", + "name": "project", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the domain id of the Condition owner", + "name": "domainid", + "type": "string" }, { - "description": "state of subnet of the IPv4 network", + "description": "zone id of counter", + "name": "zoneid", + "type": "string" + } + ] + }, + { + "description": "Updates a network serviceProvider of a physical network", + "isasync": true, + "name": "updateNetworkServiceProvider", + "params": [ + { + "description": "Enabled/Disabled/Shutdown the physical network service provider", + "length": 255, "name": "state", + "required": false, "type": "string" }, { - "description": "date when this IPv4 subnet was created.", - "name": "created", - "type": "date" + "description": "network service provider id", + "length": 255, + "name": "id", + "related": "addNetworkServiceProvider,listNetworkServiceProviders,updateNetworkServiceProvider,listTrafficTypes", + "required": true, + "type": "uuid" }, { - "description": "subnet of the IPv4 network", - "name": "subnet", + "description": "the list of services to be enabled for this physical network service provider", + "length": 255, + "name": "servicelist", + "required": false, + "type": "list" + } + ], + "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", + "response": [ + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "date when this IPv4 subnet was allocated.", - "name": "allocated", - "type": "date" + "description": "services for this provider", + "name": "servicelist", + "type": "list" }, + {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "state of the network provider", + "name": "state", "type": "string" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, { - "description": "name of network which the IPv4 subnet is associated with.", - "name": "networkname", + "description": "the provider name", + "name": "name", "type": "string" }, {}, - {}, { - "description": "id of network which the IPv4 subnet is associated with.", - "name": "networkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Id of the VPC which the IPv4 subnet is associated with.", - "name": "vpcid", + "description": "uuid of the network provider", + "name": "id", "type": "string" }, { - "description": "date when this IPv4 subnet was removed.", - "name": "removed", - "type": "date" + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" } ], - "since": "4.20.0" + "since": "3.0.0" }, { - "description": "Cancels host maintenance.", + "description": "Check the volume for any errors or leaks and also repairs when repair parameter is passed, this is currently supported for KVM only", "isasync": true, - "name": "cancelHostMaintenance", + "name": "checkVolume", "params": [ { - "description": "the host ID", + "description": "parameter to repair the volume, leaks or all are the possible values", + "length": 255, + "name": "repair", + "required": false, + "type": "string" + }, + { + "description": "The ID of the volume", "length": 255, "name": "id", - "related": "addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "related": "attachVolume,checkVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "required": true, "type": "uuid" } ], - "related": "addHost,cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "response": [ { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", - "type": "string" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, { - "description": "the Zone name of the host", - "name": "zonename", - "type": "string" + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" }, { - "description": "the cluster ID of the host", - "name": "clusterid", - "type": "string" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "name of the disk offering", + "name": "diskofferingname", + "type": "string" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the name of the host", - "name": "name", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, + {}, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", + "type": "string" }, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" + "description": "display name of the virtual machine", + "name": "vmdisplayname", + "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", + "description": "max iops of the disk volume", + "name": "maxiops", "type": "long" }, { - "description": "the ID of the host", - "name": "id", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the cluster name of the host", - "name": "clustername", - "type": "string" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "name of the virtual machine", + "name": "vmname", + "type": "string" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", "type": "long" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" + }, + { + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", + "description": "min iops of the disk volume", + "name": "miniops", "type": "long" }, { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, - {}, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "name of the service offering for root disk", + "name": "serviceofferingname", + "type": "string" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "shared or local storage", + "name": "storagetype", + "type": "string" }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", + "type": "string" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" + }, + { + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" }, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" + "description": "the date the disk volume was created", + "name": "created", + "type": "date" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" }, { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, { - "description": "CPU Arch of the host", - "name": "arch", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "ID of the availability zone", + "name": "zoneid", + "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", "type": "boolean" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, - {}, - { - "description": "GPU cards present in the host", - "name": "gpugroup", - "response": [ - { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - }, - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - } - ], - "type": "list" - }, - { - "description": "GPU cards present in the host", - "name": "gpugroupname", - "type": "string" - } - ], - "type": "list" - }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", + "type": "string" }, { - "description": "the Pod name of the host", - "name": "podname", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", + "description": "the bytes allocated", + "name": "virtualsize", "type": "long" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", + "type": "string" }, { - "description": "events available for the host", - "name": "events", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", + "type": "string" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the host version", - "name": "version", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "the path of the volume", + "name": "path", + "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" + }, + { + "description": "the status of the volume", + "name": "status", + "type": "string" + }, + { + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", "type": "boolean" } - ] + ], + "since": "4.19.1" }, { - "description": "Lists all VLAN IP ranges.", + "description": "Lists Management Server metrics", "isasync": false, - "name": "listVlanIpRanges", + "name": "listManagementServersMetrics", "params": [ { - "description": "the domain ID with which the VLAN IP range is associated. If used with the account parameter, returns all VLAN IP ranges for that account in the specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "the Pod ID of the VLAN IP range", + "description": "the id of the management server", "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", + "name": "id", + "related": "listManagementServers", "required": false, "type": "uuid" }, @@ -44354,19 +36300,19 @@ "type": "integer" }, { - "description": "true if VLAN is of Virtual type, false if Direct", + "description": "include system level stats", "length": 255, - "name": "forvirtualnetwork", + "name": "system", + "related": "listManagementServersMetrics", "required": false, "type": "boolean" }, { - "description": "project who will own the VLAN", + "description": "List by keyword", "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,suspendProject,updateProject", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { "description": "", @@ -44376,177 +36322,240 @@ "type": "integer" }, { - "description": "the ID of the VLAN IP range", + "description": "the name of the management server", "length": 255, - "name": "id", - "related": "createVlanIpRange,updateVlanIpRange,listVlanIpRanges,dedicatePublicIpRange", + "name": "name", "required": false, - "type": "uuid" - }, + "type": "string" + } + ], + "related": "", + "response": [ { - "description": "the account with which the VLAN IP range is associated. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the version of the management server", + "name": "version", "type": "string" }, { - "description": "network id of the VLAN IP range", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": false, - "type": "uuid" + "description": "The number of blocked threads", + "name": "threadsblockedcount", + "type": "integer" }, + {}, { - "description": "the Zone ID of the VLAN IP range", - "length": 255, - "name": "zoneid", - "related": "createZone,updateZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the total system cpu capacity", + "name": "systemtotalcpucycles", + "type": "double" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID or VID of the VLAN. Default is an \"untagged\" VLAN.", - "length": 255, - "name": "vlan", - "required": false, - "type": "string" + "description": "the last time this Management Server was started", + "name": "lastserverstart", + "type": "date" }, { - "description": "physical network id of the VLAN IP range", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" - } - ], - "related": "createVlanIpRange,updateVlanIpRange,dedicatePublicIpRange", - "response": [ + "description": "the load averages for 1 5 and 15 minutes", + "name": "systemloadaverages", + "type": "double[]" + }, { - "description": "the project id of the vlan range", - "name": "projectid", + "description": "the state of the management server", + "name": "state", + "type": "state" + }, + { + "description": "Total system memory", + "name": "systemmemorytotal", "type": "string" }, - {}, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "The number of daemon threads", + "name": "threadsdaemoncount", + "type": "integer" + }, + { + "description": "the IP Address for this Management Server", + "name": "serviceip", "type": "string" }, { - "description": "indicates whether VLAN IP range is dedicated to system vms or not", - "name": "forsystemvms", + "description": "The number of runnable threads", + "name": "threadsrunnablecount", + "type": "integer" + }, + { + "description": "The number of threads", + "name": "threadstotalcount", + "type": "integer" + }, + {}, + { + "description": "the system has a usage server running locally", + "name": "usageislocal", "type": "boolean" }, { - "description": "the start ip of the VLAN IP range", - "name": "startip", + "description": "the current cpu load", + "name": "cpuload", "type": "string" }, { - "description": "path of the domain to which the VLAN IP range belongs", - "name": "domainpath", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the domain ID of the VLAN IP range", - "name": "domainid", + "description": "The number of terminated threads", + "name": "threadsteminatedcount", + "type": "integer" + }, + { + "description": "the system load for user, and system processes and the system idle cycles", + "name": "systemcycleusage", + "type": "long[]" + }, + { + "description": "the last time the host on which this Management Server runs was booted", + "name": "lastboottime", + "type": "date" + }, + { + "description": "the name of the OS distribution running on the management server", + "name": "osdistribution", "type": "string" }, { - "description": "the virtual network for the VLAN IP range", - "name": "forvirtualnetwork", + "description": "the system is running against a local database", + "name": "dbislocal", "type": "boolean" }, { - "description": "the Pod ID for the VLAN IP range", - "name": "podid", + "description": "Virtual size of the fully loaded process", + "name": "systemmemoryvirtualsize", "type": "string" }, { - "description": "the end ipv6 of the VLAN IP range", - "name": "endipv6", - "type": "string" + "description": "the number of agents this Management Server is responsible for", + "name": "agentcount", + "type": "integer" }, { - "description": "the domain name of the VLAN IP range", - "name": "domain", + "description": "Free system memory", + "name": "systemmemoryfree", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the name of the management server", + "name": "name", "type": "string" }, { - "description": "the cidr of the VLAN IP range", - "name": "cidr", + "description": "the amount of memory allocated to this Management Server", + "name": "heapmemorytotal", + "type": "long" + }, + { + "description": "the ID of the management server", + "name": "id", "type": "string" }, - {}, { - "description": "the Pod name for the VLAN IP range", - "name": "podname", + "description": "the version of the java distribution running the management server process", + "name": "javaversion", "type": "string" }, { - "description": "indicates whether IP range is dedicated to NSX resources or not", - "name": "fornsx", - "type": "boolean" + "description": "the amount of memory used by this Management Server", + "name": "heapmemoryused", + "type": "long" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", + "description": "Amount of memory used", + "name": "systemmemoryused", "type": "string" }, { - "description": "the gateway of the VLAN IP range", - "name": "gateway", + "description": "the java distribution name running the management server process", + "name": "javadistribution", "type": "string" }, { - "description": "the netmask of the VLAN IP range", - "name": "netmask", + "description": "the running OS kernel version for this Management Server", + "name": "kernelversion", "type": "string" }, { - "description": "the network id of vlan range", - "name": "networkid", + "description": "the log files and their usage on disk", + "name": "loginfo", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" + "description": "The number of waiting threads", + "name": "threadswaitingcount", + "type": "integer" }, { - "description": "the description of the VLAN IP range", - "name": "description", - "type": "string" + "description": "the time these statistics were collected", + "name": "collectiontime", + "type": "date" }, { - "description": "the end ip of the VLAN IP range", - "name": "endip", - "type": "string" + "description": "the last time this Management Server was stopped", + "name": "lastserverstop", + "type": "date" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of processors available to the JVM", + "name": "availableprocessors", "type": "integer" }, { - "description": "the project name of the vlan range", - "name": "project", - "type": "string" + "description": "the number of client sessions active on this Management Server", + "name": "sessions", + "type": "long" + } + ], + "since": "4.17.0" + }, + { + "description": "Removes a virtual machine or a list of virtual machines from a load balancer rule.", + "isasync": true, + "name": "removeFromLoadBalancerRule", + "params": [ + { + "description": "the list of IDs of the virtual machines that are being removed from the load balancer rule (i.e. virtualMachineIds=1,2,3)", + "length": 255, + "name": "virtualmachineids", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "list" + }, + { + "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75", + "length": 255, + "name": "vmidipmap", + "required": false, + "since": "4.4", + "type": "map" + }, + { + "description": "The ID of the load balancer rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", + "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", @@ -44554,335 +36563,281 @@ "type": "string" }, { - "description": "the ID of the VLAN IP range", - "name": "id", - "type": "string" - }, - { - "description": "the Zone ID of the VLAN IP range", - "name": "zoneid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the account of the VLAN IP range", - "name": "account", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - { - "description": "the start ipv6 of the VLAN IP range", - "name": "startipv6", - "type": "string" - } + {}, + {} ] }, { - "description": "Updates a Zone.", + "description": "Lists vm groups", "isasync": false, - "name": "updateZone", + "name": "listInstanceGroups", "params": [ { - "description": "the dns search order list", - "length": 255, - "name": "dnssearchorder", - "required": false, - "type": "list" - }, - { - "description": "the dhcp Provider for the Zone", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "dhcpprovider", + "name": "isrecursive", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the name of the Zone", + "description": "List by keyword", "length": 255, - "name": "name", + "name": "keyword", "required": false, "type": "string" }, { - "description": "sort key of the zone, integer", + "description": "", "length": 255, - "name": "sortkey", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "the first DNS for the Zone", - "length": 255, - "name": "dns1", - "required": false, - "type": "string" - }, - { - "description": "the details for the Zone", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "details", + "name": "listall", "required": false, - "type": "map" + "type": "boolean" }, { - "description": "the first internal DNS for the Zone", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "internaldns1", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the second DNS for the Zone", + "description": "list instance groups by ID", "length": 255, - "name": "dns2", + "name": "id", + "related": "createInstanceGroup,listInstanceGroups,updateInstanceGroup", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the first DNS for IPv6 network in the Zone", + "description": "list instance groups by name", "length": 255, - "name": "ip6dns1", + "name": "name", "required": false, "type": "string" }, { - "description": "Network domain name for the networks in the zone; empty string will update domain with NULL value", + "description": "", "length": 255, - "name": "domain", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the second internal DNS for the Zone", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "internaldns2", + "name": "account", "required": false, "type": "string" }, { - "description": "true if local storage offering enabled, false otherwise", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "localstorageenabled", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, - "type": "boolean" - }, - { - "description": "the ID of the Zone", - "length": 255, - "name": "id", - "related": "createZone,updateZone,listZones,listZones", - "required": true, "type": "uuid" - }, + } + ], + "related": "createInstanceGroup,updateInstanceGroup", + "response": [ { - "description": "the guest CIDR address for the Zone", - "length": 255, - "name": "guestcidraddress", - "required": false, + "description": "the domain name of the instance group", + "name": "domain", "type": "string" }, { - "description": "the second DNS for IPv6 network in the Zone", - "length": 255, - "name": "ip6dns2", - "required": false, + "description": "path of the Domain the instance group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "Allocation state of this cluster for allocation of new resources", - "length": 255, - "name": "allocationstate", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "updates a private zone to public if set, but not vice-versa", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" - } - ], - "related": "createZone,listZones,listZones", - "response": [ - { - "description": "the first internal DNS for the Zone", - "name": "internaldns1", + "description": "the account owning the instance group", + "name": "account", "type": "string" }, { - "description": "The maximum value the MTU can have on the VR's public interfaces", - "name": "routerpublicinterfacemaxmtu", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "true if local storage offering enabled, false otherwise", - "name": "localstorageenabled", - "type": "boolean" + "description": "the domain ID of the instance group", + "name": "domainid", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, {}, { - "description": "Zone Token", - "name": "zonetoken", + "description": "the project name of the instance group", + "name": "project", "type": "string" }, { - "description": "The maximum value the MTU can have on the VR's private interfaces", - "name": "routerprivateinterfacemaxmtu", - "type": "integer" + "description": "the project ID of the instance group", + "name": "projectid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the instance group", + "name": "name", "type": "string" }, + {}, { - "description": "true, if zone is NSX enabled", - "name": "isnsxenabled", - "type": "boolean" + "description": "the ID of the instance group", + "name": "id", + "type": "string" }, { - "description": "the second IPv6 DNS for the Zone", - "name": "ip6dns2", - "type": "string" + "description": "time and date the instance group was created", + "name": "created", + "type": "date" + } + ] + }, + { + "description": "migrates data objects from one secondary storage to destination image store(s)", + "isasync": true, + "name": "migrateSecondaryStorageData", + "params": [ + { + "description": "id of the image store from where the data is to be migrated", + "length": 255, + "name": "srcpool", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": true, + "type": "uuid" }, { - "description": "the allocation state of the cluster", - "name": "allocationstate", + "description": "Balance: if you want data to be distributed evenly among the destination stores, Complete: If you want to migrate the entire data from source image store to the destination store(s). Default: Complete", + "length": 255, + "name": "migrationtype", + "required": false, "type": "string" }, { - "description": "the capacity of the Zone", - "name": "capacity", - "response": [ - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the capacity name", - "name": "name", - "type": "string" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - }, - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - } - ], + "description": "id(s) of the destination secondary storage pool(s) to which the templates are to be migrated", + "length": 255, + "name": "destpools", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": true, "type": "list" - }, + } + ], + "related": "", + "response": [ + {}, { - "description": "AS Number Range", - "name": "asnrange", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "the type of the zone - core or edge", - "name": "type", + "description": "Response message from migration of secondary storage data objects", + "name": "message", "type": "string" }, { - "description": "Allow end users to specify VR MTU", - "name": "allowuserspecifyvrmtu", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the dhcp Provider for the Zone", - "name": "dhcpprovider", + "description": "Type of migration requested for", + "name": "migrationtype", "type": "string" + } + ], + "since": "4.15.0" + }, + { + "description": "Creates a static route", + "isasync": true, + "name": "createStaticRoute", + "params": [ + { + "description": "the gateway id we are creating static route for", + "length": 255, + "name": "gatewayid", + "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", + "required": true, + "type": "uuid" }, { - "description": "true, if zone contains clusters and hosts from different CPU architectures", - "name": "ismultiarch", - "type": "boolean" + "description": "static route cidr", + "length": 255, + "name": "cidr", + "required": true, + "type": "string" + } + ], + "related": "listStaticRoutes", + "response": [ + { + "description": "the project id of the static route", + "name": "projectid", + "type": "string" }, { - "description": "the first IPv6 DNS for the Zone", - "name": "ip6dns1", + "description": "the domain path associated with the static route", + "name": "domainpath", "type": "string" }, + {}, { - "description": "the second internal DNS for the Zone", - "name": "internaldns2", + "description": "VPC gateway the route is created for", + "name": "gatewayid", "type": "string" }, { - "description": "the name of the containing domain, null for public zones", - "name": "domainname", + "description": "the account associated with the static route", + "name": "account", "type": "string" }, { - "description": "Network domain name for the networks in the zone", - "name": "domain", + "description": "the ID of the domain associated with the static route", + "name": "domainid", "type": "string" }, { - "description": "the display text of the zone", - "name": "displaytext", + "description": "static route CIDR", + "name": "cidr", "type": "string" }, { - "description": "the list of resource tags associated with zone.", + "description": "the list of resource tags associated with static route", "name": "tags", "response": [ { @@ -44891,18 +36846,18 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -44910,6 +36865,11 @@ "name": "resourceid", "type": "string" }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, { "description": "the project id the tag belongs to", "name": "projectid", @@ -44921,152 +36881,103 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the network type of the zone; can be Basic or Advanced", - "name": "networktype", + "description": "the domain associated with the static route", + "name": "domain", "type": "string" }, { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", - "type": "boolean" - }, - { - "description": "Zone description", - "name": "description", + "description": "VPC the static route belongs to", + "name": "vpcid", "type": "string" }, - {}, { - "description": "Zone name", - "name": "name", + "description": "the project name of the static route", + "name": "project", "type": "string" }, { - "description": "Zone id", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "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 second DNS for the Zone", - "name": "dns2", - "type": "string" - }, - { - "description": "the guest CIDR address for the Zone", - "name": "guestcidraddress", - "type": "string" - }, - { - "description": "the first DNS for the Zone", - "name": "dns1", + "description": "the state of the static route", + "name": "state", "type": "string" }, + {}, { - "description": "the UUID of the containing domain, null for public zones", - "name": "domainid", + "description": "the ID of static route", + "name": "id", "type": "string" } ] }, { - "description": "Extracts volume", + "description": "Destroys a Volume.", "isasync": true, - "name": "extractVolume", + "name": "destroyVolume", "params": [ { - "description": "the ID of the volume", - "length": 255, - "name": "id", - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" - }, - { - "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD", + "description": "If true is passed, the volume is expunged immediately. False by default.", "length": 255, - "name": "mode", - "required": true, - "type": "string" - }, - { - "description": "the url to which the volume would be extracted", - "length": 2048, - "name": "url", + "name": "expunge", "required": false, - "type": "string" + "since": "4.6.0", + "type": "boolean" }, { - "description": "the ID of the zone where the volume is located", + "description": "The ID of the volume", "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", + "name": "id", + "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,destroyVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "required": true, "type": "uuid" } ], - "related": "extractIso,extractSnapshot,extractTemplate,downloadImageStoreObject", + "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "response": [ { - "description": "the time and date the object was created", - "name": "created", - "type": "date" - }, - { - "description": "zone ID the object was extracted from", - "name": "zoneid", - "type": "string" - }, - { - "description": "the id of extracted object", - "name": "id", - "type": "string" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "type of the storage", - "name": "storagetype", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "", - "name": "resultstring", - "type": "string" + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" }, { - "description": "zone name the object was extracted from", - "name": "zonename", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { @@ -45075,334 +36986,314 @@ "type": "integer" }, { - "description": "the state of the extracted object", - "name": "state", + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, { - "description": "the upload id of extracted object", - "name": "extractId", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, - {}, { - "description": "the name of the extracted object", - "name": "name", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the account id to which the extracted object belongs", - "name": "accountid", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the mode of extraction - upload or download", - "name": "extractMode", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "the percentage of the entity uploaded to the specified location", - "name": "uploadpercentage", - "type": "integer" + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" }, { - "description": "the status of the extraction", - "name": "status", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", - "name": "url", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Releases an existing dedicated IPv4 subnet for a zone.", - "isasync": true, - "name": "releaseIpv4SubnetForZone", - "params": [ - { - "description": "Id of the guest network IPv4 subnet", - "length": 255, - "name": "id", - "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", - "required": true, - "type": "uuid" - } - ], - "related": "createIpv4SubnetForZone,listIpv4SubnetsForZone,dedicateIpv4SubnetForZone", - "response": [ { - "description": "the project id of the IPv4 subnet", - "name": "projectid", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "name of zone to which the IPv4 subnet belongs to.", - "name": "zonename", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "guest IPv4 subnet", - "name": "subnet", + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" + }, + { + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the account of the IPv4 subnet", - "name": "account", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the domain name of the IPv4 subnet", - "name": "domain", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, { - "description": "the project name of the IPv4 subnet", - "name": "project", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "date when this IPv4 subnet was created.", + "description": "the date the disk volume was created", "name": "created", "type": "date" }, - {}, { - "description": "id of the guest IPv4 subnet", - "name": "id", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "the domain ID of the IPv4 subnet", - "name": "domainid", + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, - {}, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" + }, + { + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Lists project's accounts", - "isasync": false, - "name": "listProjectAccounts", - "params": [ + }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "list invitation by user ID", - "length": 255, - "name": "userid", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", - "required": false, - "type": "uuid" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "list accounts of the project by account name", - "length": 255, - "name": "account", - "required": false, + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "list accounts of the project by project role id", - "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {}, { - "description": "ID of the project", - "length": 255, - "name": "projectid", - "related": "listProjectAccounts,activateProject,createProject,suspendProject,updateProject", - "required": true, - "type": "uuid" + "description": "name of the virtual machine", + "name": "vmname", + "type": "string" }, { - "description": "list accounts of the project by role", - "length": 255, - "name": "role", - "required": false, - "type": "string" - } - ], - "related": "activateProject,createProject,suspendProject,updateProject", - "response": [ + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" + }, { - "description": "the total secondary storage space (in GiB) owned by project", - "name": "secondarystoragetotal", - "type": "float" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "the total number of snapshots stored by this project", - "name": "snapshottotal", + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", "type": "long" }, { - "description": "the name of the project", - "name": "name", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the domain id the project belongs to", - "name": "domainid", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this project", - "name": "primarystorageavailable", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the total number of networks owned by project", - "name": "networktotal", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", + "type": "string" + }, + { + "description": "max iops of the disk volume", + "name": "maxiops", "type": "long" }, { - "description": "the total number of templates which can be created by this project", - "name": "templatelimit", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "The tagged resource limit and count for the project", - "name": "taggedresources", - "type": "list" + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", + "type": "string" }, { - "description": "the total number of networks available to be created for this project", - "name": "networkavailable", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "the total number of cpu cores owned by project", - "name": "cputotal", + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", "type": "long" }, { - "description": "the total number of cpu cores the project can own", - "name": "cpulimit", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the total volume available for this project", - "name": "volumeavailable", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, + {}, { - "description": "the id of the project", - "name": "id", + "description": "the status of the volume", + "name": "status", "type": "string" }, { - "description": "the total number of vpcs available to be created for this project", - "name": "vpcavailable", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the date this project was created", - "name": "created", - "type": "date" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total number of vpcs the project can own", - "name": "vpclimit", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by project", - "name": "primarystoragetotal", - "type": "long" + "description": "shared or local storage", + "name": "storagetype", + "type": "string" }, { - "description": "the total number of templates available to be created by this project", - "name": "templateavailable", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the total number of networks the project can own", - "name": "networklimit", + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the list of resource tags associated with vm", + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -45416,799 +37307,840 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], - "type": "list" - }, - {}, - { - "description": "the total number of snapshots available for this project", - "name": "snapshotavailable", - "type": "string" - }, - { - "description": "the project account name of the project", - "name": "projectaccountname", - "type": "string" - }, - { - "description": "the total number of public ip addresses allocated for this project", - "name": "iptotal", - "type": "long" - }, - { - "description": "the total number of templates which have been created by this project", - "name": "templatetotal", - "type": "long" + "type": "set" }, { - "description": "the total number of cpu cores available to be created for this project", - "name": "cpuavailable", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the domain name where the project belongs to", - "name": "domain", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the displaytext of the project", - "name": "displaytext", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the total number of virtual machines deployed by this project", - "name": "vmtotal", + "description": "size of the disk volume", + "name": "size", "type": "long" }, { - "description": "the total number of public ip addresses this project can acquire", - "name": "iplimit", - "type": "string" - }, - { - "description": "the total number of virtual machines available for this project to acquire", - "name": "vmavailable", - "type": "string" - }, - { - "description": "the total secondary storage space (in GiB) available to be used for this project", - "name": "secondarystorageavailable", - "type": "string" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "the total secondary storage space (in GiB) the project can own", - "name": "secondarystoragelimit", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" }, { - "description": "the total number of vpcs owned by project", - "name": "vpctotal", + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", "type": "long" }, { - "description": "the total memory (in MB) the project can own", - "name": "memorylimit", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the total number of public ip addresses available for this project to acquire", - "name": "ipavailable", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the total number of virtual machines stopped for this project", - "name": "vmstopped", - "type": "integer" - }, - { - "description": "the total volume being used by this project", - "name": "volumetotal", + "description": "the bytes allocated", + "name": "virtualsize", "type": "long" }, { - "description": "the total memory (in MB) available to be created for this project", - "name": "memoryavailable", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, - {}, { - "description": "the state of the project", - "name": "state", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" - }, + } + ], + "since": "4.14.0" + }, + { + "description": "Adds traffic type to a physical network", + "isasync": true, + "name": "addTrafficType", + "params": [ { - "description": "the total number of snapshots which can be stored by this project", - "name": "snapshotlimit", + "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host", + "length": 255, + "name": "hypervnetworklabel", + "required": false, "type": "string" }, { - "description": "the total number of virtual machines running for this project", - "name": "vmrunning", - "type": "integer" - }, - { - "description": "the total primary storage space (in GiB) the project can own", - "name": "primarystoragelimit", + "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", + "length": 255, + "name": "xennetworklabel", + "required": false, "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this project", - "name": "vmlimit", + "description": "The network name label of the physical device dedicated to this traffic on a VMware host", + "length": 255, + "name": "vmwarenetworklabel", + "required": false, "type": "string" }, { - "description": "the total volume which can be used by this project", - "name": "volumelimit", + "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", + "length": 255, + "name": "ovm3networklabel", + "required": false, "type": "string" }, { - "description": "the account name of the project's owners", - "name": "owner", - "type": "list" - }, - { - "description": "the total memory (in MB) owned by project", - "name": "memorytotal", - "type": "long" - } - ], - "since": "3.0.0" - }, - { - "description": "Updates an existing autoscale policy.", - "isasync": true, - "name": "updateAutoScalePolicy", - "params": [ - { - "description": "the duration in which the conditions have to be true before action is taken", + "description": "the trafficType to be added to the physical network", "length": 255, - "name": "duration", - "required": false, - "type": "integer" + "name": "traffictype", + "required": true, + "type": "string" }, { - "description": "the ID of the autoscale policy", - "length": 255, - "name": "id", - "related": "listAutoScalePolicies,updateAutoScalePolicy", + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork,updatePhysicalNetwork", "required": true, "type": "uuid" }, { - "description": "the cool down period in which the policy should not be evaluated after the action has been taken", + "description": "The network name label of the physical device dedicated to this traffic on a KVM host", "length": 255, - "name": "quiettime", + "name": "kvmnetworklabel", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the name of the autoscale policy", + "description": "Used if physical network has multiple isolation types and traffic type is public. Choose which isolation method. Valid options currently 'vlan' or 'vxlan', defaults to 'vlan'.", "length": 255, - "name": "name", + "name": "isolationmethod", "required": false, - "since": "4.18.0", "type": "string" }, { - "description": "the list of IDs of the conditions that are being evaluated on every interval", + "description": "The VLAN id to be used for Management traffic by VMware host", "length": 255, - "name": "conditionids", - "related": "listConditions", + "name": "vlan", "required": false, - "type": "list" + "type": "string" } ], - "related": "listAutoScalePolicies", + "related": "", "response": [ { - "description": "name of the autoscale policy", - "name": "name", - "type": "string" - }, - { - "description": "the account owning the autoscale policy", - "name": "account", + "description": "the trafficType to be added to the physical network", + "name": "traffictype", "type": "string" }, { - "description": "path of the domain to which the autoscale policy belongs", - "name": "domainpath", + "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", + "name": "ovm3networklabel", "type": "string" }, + {}, { - "description": "the cool down period for which the policy should not be evaluated after the action has been taken", - "name": "quiettime", + "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", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", - "name": "action", + "description": "id of the network provider", + "name": "id", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", + "name": "xennetworklabel", + "type": "string" }, { - "description": "the project name of the autoscale policy", - "name": "project", + "description": "The network name label of the physical device dedicated to this traffic on a KVM host", + "name": "kvmnetworklabel", "type": "string" }, { - "description": "the autoscale policy ID", - "name": "id", + "description": "The network name label of the physical device dedicated to this traffic on a VMware host", + "name": "vmwarenetworklabel", "type": "string" }, { - "description": "the domain name of the autoscale policy", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the duration for which the conditions have to be true before action is taken", - "name": "duration", + "description": "The network name label of the physical device dedicated to this traffic on a HyperV host", + "name": "hypervnetworklabel", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Deletes a Private gateway", + "isasync": true, + "name": "deletePrivateGateway", + "params": [ + { + "description": "the ID of the private gateway", + "length": 255, + "name": "id", + "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, - {}, { - "description": "the list of IDs of the conditions that are being evaluated on every interval", - "name": "conditions", - "type": "list" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, {}, + {}, { - "description": "the project id autoscale policy", - "name": "projectid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the domain ID of the autoscale policy", - "name": "domainid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" } ] }, { - "description": "Creates a IPv4 subnet for a zone.", - "isasync": true, - "name": "createIpv4SubnetForZone", + "description": "Lists the secondary storage selectors and their rules.", + "isasync": false, + "name": "listSecondaryStorageSelectors", "params": [ { - "description": "The CIDR of the IPv4 subnet.", + "description": "", "length": 255, - "name": "subnet", - "required": true, - "type": "string" + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "project who will own the IPv4 subnet", + "description": "The zone ID to be used in the search filter.", "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject,updateProject", - "required": false, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, "type": "uuid" }, { - "description": "account who will own the IPv4 subnet", + "description": "Whether to filter the selectors by type and, if so, which one. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", "length": 255, - "name": "account", + "name": "type", "required": false, "type": "string" }, { - "description": "UUID of the zone which the IPv4 subnet belongs to.", + "description": "", "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": true, - "type": "uuid" + "name": "page", + "required": false, + "type": "integer" }, { - "description": "domain ID of the account owning the IPv4 subnet", + "description": "Show removed heuristics.", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "showremoved", "required": false, - "type": "uuid" + "type": "boolean" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" } ], - "related": "listIpv4SubnetsForZone,dedicateIpv4SubnetForZone", + "related": "createSecondaryStorageSelector,updateSecondaryStorageSelector", "response": [ { - "description": "date when this IPv4 subnet was created.", - "name": "created", - "type": "date" - }, - {}, - { - "description": "the project id of the IPv4 subnet", - "name": "projectid", + "description": "Description of the heuristic.", + "name": "description", "type": "string" }, { - "description": "name of zone to which the IPv4 subnet belongs to.", - "name": "zonename", + "description": "Name of the heuristic.", + "name": "name", "type": "string" }, { - "description": "the account of the IPv4 subnet", - "name": "account", - "type": "string" + "description": "When the heuristic was removed.", + "name": "removed", + "type": "date" }, { - "description": "the domain ID of the IPv4 subnet", - "name": "domainid", + "description": "The heuristic rule, in JavaScript language, used to select a secondary storage to be directed.", + "name": "heuristicrule", "type": "string" }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "The zone which the heuristic is valid upon.", + "name": "zoneid", "type": "string" }, { - "description": "guest IPv4 subnet", - "name": "subnet", - "type": "string" + "description": "When the heuristic was created.", + "name": "created", + "type": "date" }, + {}, { - "description": "the domain name of the IPv4 subnet", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "id of the guest IPv4 subnet", + "description": "ID of the heuristic.", "name": "id", "type": "string" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", + "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", + "name": "type", "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, - { - "description": "the project name of the IPv4 subnet", - "name": "project", - "type": "string" } ], - "since": "4.20.0" + "since": "4.19.0" }, { - "description": "Creates a disk offering.", + "description": "List all virtual machine instances that are assigned to a load balancer rule.", "isasync": false, - "name": "createDiskOffering", + "name": "listLoadBalancerRuleInstances", "params": [ { - "description": "Name of the storage policy defined at vCenter, this is applicable only for VMware", + "description": "true if listing all virtual machines currently applied to the load balancer rule; default is true", "length": 255, - "name": "storagepolicy", - "related": "listVsphereStoragePolicies", + "name": "applied", "required": false, - "since": "4.15", - "type": "uuid" + "type": "boolean" }, { - "description": "bytes read rate of the disk offering", + "description": "List by keyword", "length": 255, - "name": "bytesreadrate", + "name": "keyword", "required": false, - "type": "long" + "type": "string" }, { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "description": "", "length": 255, - "name": "cachemode", + "name": "pagesize", "required": false, - "since": "4.14", - "type": "string" + "type": "integer" }, { - "description": "name of the disk offering", + "description": "the ID of the load balancer rule", "length": 255, - "name": "name", + "name": "id", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "length (in seconds) of the burst", + "description": "true if load balancer rule VM IP information to be included; default is false", "length": 255, - "name": "iopsreadratemaxlength", + "name": "lbvmips", "required": false, - "type": "long" + "type": "boolean" }, { - "description": "max iops of the disk offering", + "description": "", "length": 255, - "name": "maxiops", + "name": "page", "required": false, - "type": "long" + "type": "integer" + } + ], + "related": "listLoadBalancerRuleInstances", + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "whether disk offering size is custom or not", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + {}, + { + "description": "the user vm set for lb rule", + "name": "loadbalancerruleinstance", + "type": "uservmresponse" + }, + { + "description": "IP addresses of the vm set of lb rule", + "name": "lbvmipaddresses", + "type": "list" + } + ] + }, + { + "description": "Removes a condition for VM auto scaling", + "isasync": true, + "name": "deleteCondition", + "params": [ + { + "description": "the ID of the condition.", "length": 255, - "name": "customized", - "required": false, + "name": "id", + "related": "createCondition", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "burst bytes read rate of the disk offering", - "length": 255, - "name": "bytesreadratemax", - "required": false, - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, + {}, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "length": 255, - "name": "provisioningtype", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "min iops of the disk offering", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Updates a domain with a new name", + "isasync": false, + "name": "updateDomain", + "params": [ + { + "description": "ID of domain to update", "length": 255, - "name": "miniops", - "required": false, - "type": "long" + "name": "id", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain", + "required": true, + "type": "uuid" }, { - "description": "size of the disk offering in GB (1GB = 1,073,741,824 bytes)", + "description": "Network domain for the domain's networks; empty string will update domainName with NULL value", "length": 255, - "name": "disksize", + "name": "networkdomain", "required": false, - "type": "long" + "type": "string" }, { - "description": "length (in seconds) of the burst", + "description": "updates domain with this name", "length": 255, - "name": "iopswriteratemaxlength", + "name": "name", "required": false, - "type": "long" + "type": "string" + } + ], + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "response": [ + { + "description": "the total secondary storage space (in GiB) owned by domain", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "the ID of the containing domain(s), null for public offerings", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "list" + "description": "the level of the domain", + "name": "level", + "type": "integer" }, { - "description": "Volumes using this offering should be encrypted", - "length": 255, - "name": "encrypt", - "required": false, - "since": "4.18", - "type": "boolean" + "description": "the path of the domain", + "name": "path", + "type": "string" }, { - "description": "bytes write rate of the disk offering", - "length": 255, - "name": "byteswriterate", - "required": false, - "type": "long" + "description": "the total number of cpu cores available to be created for this domain", + "name": "cpuavailable", + "type": "string" }, { - "description": "an optional field, whether to display the offering to the end user or not.", - "length": 255, - "name": "displayoffering", - "required": false, - "type": "boolean" + "description": "the total number of networks available to be created for this domain", + "name": "networkavailable", + "type": "string" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "length": 255, - "name": "hypervisorsnapshotreserve", - "required": false, - "type": "integer" + "description": "the total memory (in MB) available to be created for this domain", + "name": "memoryavailable", + "type": "string" }, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "byteswriteratemaxlength", - "required": false, + "description": "the total memory (in MB) owned by domain", + "name": "memorytotal", "type": "long" }, { - "description": "details to specify disk offering parameters", - "length": 255, - "name": "details", - "required": false, - "since": "4.16", - "type": "map" + "description": "the total number of projects being administrated by this domain", + "name": "projecttotal", + "type": "long" }, + {}, { - "description": "tags for the disk offering", - "length": 4096, - "name": "tags", - "required": false, + "description": "the name of the domain", + "name": "name", + "type": "string" + }, + {}, + { + "description": "the total number of vpcs the domain can own", + "name": "vpclimit", "type": "string" }, { - "description": "the ID of the containing zone(s), null for public offerings", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": false, - "since": "4.13", - "type": "list" + "description": "details for the domain", + "name": "domaindetails", + "type": "map" }, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "bytesreadratemaxlength", - "required": false, + "description": "the total number of vpcs owned by domain", + "name": "vpctotal", "type": "long" }, { - "description": "io requests write rate of the disk offering", - "length": 255, - "name": "iopswriterate", - "required": false, + "description": "the total number of templates available to be created by this domain", + "name": "templateavailable", + "type": "string" + }, + { + "description": "the total number of virtual machines available for this domain to acquire", + "name": "vmavailable", + "type": "string" + }, + { + "description": "the total number of public ip addresses allocated for this domain", + "name": "iptotal", "type": "long" }, { - "description": "burst requests read rate of the disk offering", - "length": 255, - "name": "iopsreadratemax", - "required": false, + "description": "the total primary storage space (in GiB) owned by domain", + "name": "primarystoragetotal", "type": "long" }, { - "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", - "length": 255, - "name": "disksizestrictness", - "required": false, - "since": "4.17", - "type": "boolean" + "description": "the total volume which can be used by this domain", + "name": "volumelimit", + "type": "string" }, { - "description": "burst io requests write rate of the disk offering", - "length": 255, - "name": "iopswriteratemax", - "required": false, + "description": "the total number of networks owned by domain", + "name": "networktotal", "type": "long" }, { - "description": "the storage type of the disk offering. Values are local and shared.", - "length": 255, - "name": "storagetype", - "required": false, + "description": "the total number of snapshots available for this domain", + "name": "snapshotavailable", "type": "string" }, { - "description": "An alternate display text of the disk offering, defaults to 'name'.", - "length": 4096, - "name": "displaytext", - "required": false, + "description": "the total primary storage space (in GiB) the domain can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "io requests read rate of the disk offering", - "length": 255, - "name": "iopsreadrate", - "required": false, - "type": "long" + "description": "the total number of virtual machines that can be deployed by this domain", + "name": "vmlimit", + "type": "string" }, { - "description": "whether disk offering iops is custom or not", - "length": 255, - "name": "customizediops", - "required": false, - "type": "boolean" + "description": "The tagged resource limit and count for the domain", + "name": "taggedresources", + "type": "list" }, { - "description": "burst bytes write rate of the disk offering", - "length": 255, - "name": "byteswriteratemax", - "required": false, + "description": "the total number of virtual machines deployed by this domain", + "name": "vmtotal", "type": "long" - } - ], - "related": "", - "response": [ + }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the total number of projects available for administration by this domain", + "name": "projectavailable", "type": "string" }, { - "description": "unique ID of the disk offering", - "name": "id", + "description": "the total number of templates which have been created by this domain", + "name": "templatetotal", + "type": "long" + }, + { + "description": "the network domain", + "name": "networkdomain", "type": "string" }, - {}, { - "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", - "name": "disksizestrictness", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "burst io requests write rate of the disk offering", - "name": "diskIopsWriteRateMax", - "type": "long" + "description": "whether the domain has one or more sub-domains", + "name": "haschild", + "type": "boolean" }, { - "description": "the min iops of the disk offering", - "name": "miniops", - "type": "long" + "description": "the state of the domain", + "name": "state", + "type": "string" }, { - "description": "the name of the disk offering", - "name": "name", + "description": "the total number of templates which can be created by this domain", + "name": "templatelimit", "type": "string" }, { - "description": "burst io requests read rate of the disk offering", - "name": "diskIopsReadRateMax", + "description": "the total volume being used by this domain", + "name": "volumetotal", "type": "long" }, { - "description": "length (in seconds) of the burst", - "name": "diskIopsWriteRateMaxLength", - "type": "long" + "description": "the total volume available for this domain", + "name": "volumeavailable", + "type": "string" }, { - "description": "Whether disks using this offering will be encrypted on primary storage", - "name": "encrypt", - "type": "boolean" + "description": "the ID of the domain", + "name": "id", + "type": "string" }, { - "description": "additional key/value details tied with this disk offering", - "name": "details", - "type": "map" + "description": "the total number of snapshots which can be stored by this domain", + "name": "snapshotlimit", + "type": "string" }, { - "description": "io requests read rate of the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the total number of projects the domain can own", + "name": "projectlimit", + "type": "string" }, { - "description": "the date this disk offering was created", - "name": "created", - "type": "date" + "description": "the total number of public ip addresses available for this domain to acquire", + "name": "ipavailable", + "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesReadRateMaxLength", - "type": "long" + "description": "the total number of vpcs available to be created for this domain", + "name": "vpcavailable", + "type": "string" }, { - "description": "an alternate display text of the disk offering.", - "name": "displaytext", + "description": "the total secondary storage space (in GiB) available to be used for this domain", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the size of the disk offering in GB", - "name": "disksize", - "type": "long" + "description": "the domain ID of the parent domain", + "name": "parentdomainid", + "type": "string" }, - {}, { - "description": "the vsphere storage policy tagged to the disk offering in case of VMware", - "name": "vspherestoragepolicy", + "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": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "the total memory (in MB) the domain can own", + "name": "memorylimit", "type": "string" }, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "name": "provisioningtype", + "description": "the total number of networks the domain can own", + "name": "networklimit", "type": "string" }, { - "description": "io requests write rate of the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "the total number of cpu cores the domain can own", + "name": "cpulimit", + "type": "string" }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "the total secondary storage space (in GiB) the domain can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "burst bytes read rate of the disk offering", - "name": "diskBytesReadRateMax", - "type": "long" + "description": "the total primary storage space (in GiB) available to be used for this domain", + "name": "primarystorageavailable", + "type": "string" }, { - "description": "the max iops of the disk offering", - "name": "maxiops", + "description": "the total number of cpu cores owned by domain", + "name": "cputotal", "type": "long" }, { - "description": "bytes read rate of the disk offering", - "name": "diskBytesReadRate", + "description": "the date when this domain was created", + "name": "created", + "type": "date" + }, + { + "description": "the total number of snapshots stored by this domain", + "name": "snapshottotal", "type": "long" }, { - "description": "Returns true if the disk offering is suitable for the given virtual machine for disk creation otherwise false", - "name": "suitableforvirtualmachine", - "type": "boolean" + "description": "the domain name of the parent domain", + "name": "parentdomainname", + "type": "string" }, { - "description": "length (in second) of the burst", - "name": "diskIopsReadRateMaxLength", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the total number of public ip addresses this domain can acquire", + "name": "iplimit", + "type": "string" + } + ] + }, + { + "description": "Updates a physical network", + "isasync": true, + "name": "updatePhysicalNetwork", + "params": [ + { + "description": "Tag the physical network", + "length": 255, + "name": "tags", + "required": false, + "type": "list" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "name": "hypervisorsnapshotreserve", - "type": "integer" + "description": "the VLAN for the physical network", + "length": 255, + "name": "vlan", + "required": false, + "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesWriteRateMaxLength", - "type": "long" + "description": "physical network id", + "length": 255, + "name": "id", + "related": "createPhysicalNetwork,updatePhysicalNetwork", + "required": true, + "type": "uuid" }, { - "description": "state of the disk offering", + "description": "the speed for the physical network[1G/10G]", + "length": 255, + "name": "networkspeed", + "required": false, + "type": "string" + }, + { + "description": "Enabled/Disabled", + "length": 255, "name": "state", + "required": false, + "type": "string" + } + ], + "related": "createPhysicalNetwork", + "response": [ + { + "description": "isolation methods", + "name": "isolationmethods", "type": "string" }, { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "name": "cacheMode", + "description": "name of the physical network", + "name": "name", "type": "string" }, { - "description": "the storage type for this disk offering", - "name": "storagetype", + "description": "zone id of the physical network", + "name": "zoneid", "type": "string" }, { - "description": "whether to display the offering to the end user or not.", - "name": "displayoffering", - "type": "boolean" + "description": "Broadcast domain range of the physical network", + "name": "broadcastdomainrange", + "type": "string" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "comma separated tag", + "name": "tags", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -46216,360 +38148,319 @@ "type": "string" }, { - "description": "burst bytes write rate of the disk offering", - "name": "diskBytesWriteRateMax", - "type": "long" + "description": "the domain id of the physical network owner", + "name": "domainid", + "type": "string" }, + {}, { - "description": "the tags for the disk offering", - "name": "tags", + "description": "zone name of the physical network", + "name": "zonename", "type": "string" }, { - "description": "true if disk offering uses custom size, false otherwise", - "name": "iscustomized", - "type": "boolean" + "description": "state of the physical network", + "name": "state", + "type": "string" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "the speed of the physical network", + "name": "networkspeed", "type": "string" }, { - "description": "bytes write rate of the disk offering", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the uuid of the physical network", + "name": "id", + "type": "string" }, { - "description": "true if disk offering uses custom iops, false otherwise", - "name": "iscustomizediops", - "type": "boolean" + "description": "the vlan of the physical network", + "name": "vlan", + "type": "string" } - ] + ], + "since": "3.0.0" }, { - "description": "Lists details of network protocols", - "isasync": false, - "name": "listNetworkProtocols", + "description": "Stop a Shared FileSystem", + "isasync": true, + "name": "stopSharedFileSystem", "params": [ { - "description": "The option of network protocols. Supported values are: protocolnumber, icmptype.", + "description": "Force stop the shared filesystem.", "length": 255, - "name": "option", + "name": "forced", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the shared filesystem", + "length": 255, + "name": "id", + "related": "createSharedFileSystem,listSharedFileSystems,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", "required": true, - "type": "string" + "type": "uuid" } ], - "related": "", + "related": "createSharedFileSystem,listSharedFileSystems,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", "response": [ { - "description": "the details of the protocol parameter", - "name": "details", - "type": "map" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the name of the protocol parameter", - "name": "name", + "description": "name of the storage fs data volume", + "name": "volumename", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the storage fs data volume", + "name": "volumeid", "type": "string" }, - {}, { - "description": "the index (ID, Value, Code, Type, Option, etc) of the protocol parameter", - "name": "index", - "type": "integer" + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the description of the protocol parameter", - "name": "description", + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.19.0" - }, - { - "description": "Lists load balancer health check policies.", - "isasync": false, - "name": "listLBHealthCheckPolicies", - "params": [ + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" + }, { - "description": "the ID of the health check policy", - "length": 255, - "name": "id", - "related": "createLBHealthCheckPolicy,listLBHealthCheckPolicies", - "required": false, - "since": "4.4", - "type": "uuid" + "description": "name of the storage pool hosting the data volume", + "name": "storage", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "size of the shared filesystem in GiB", + "name": "sizegb", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", + "type": "string" + }, + { + "description": "description of the shared filesystem", + "name": "description", + "type": "string" + }, + { + "description": "the filesystem format", + "name": "filesystem", + "type": "string" + }, + { + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", "type": "boolean" }, { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "lbruleid", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", - "required": false, - "type": "uuid" + "description": "path to mount the shared filesystem", + "name": "path", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" - } - ], - "related": "createLBHealthCheckPolicy", - "response": [ + }, { - "description": "the domain ID of the HealthCheck policy", - "name": "domainid", + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", "type": "string" }, { - "description": "the list of healthcheckpolicies", - "name": "healthcheckpolicy", - "response": [ - { - "description": "Number of consecutive health check failures before declaring an instance unhealthy.", - "name": "unhealthcheckthresshold", - "type": "int" - }, - { - "description": "the LB HealthCheck policy ID", - "name": "id", - "type": "string" - }, - { - "description": "Time to wait when receiving a response from the health check", - "name": "responsetime", - "type": "int" - }, - { - "description": "the state of the policy", - "name": "state", - "type": "string" - }, - { - "description": "Amount of time between health checks", - "name": "healthcheckinterval", - "type": "int" - }, - { - "description": "Number of consecutive health check success before declaring an instance healthy", - "name": "healthcheckthresshold", - "type": "int" - }, - { - "description": "the description of the healthcheck policy", - "name": "description", - "type": "string" - }, - { - "description": "the pingpath of the healthcheck policy", - "name": "pingpath", - "type": "string" - }, - { - "description": "is policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" - } - ], - "type": "list" + "description": "the state of the shared filesystem", + "name": "state", + "type": "string" }, { - "description": "the id of the zone the HealthCheck policy belongs to", - "name": "zoneid", + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the account of the HealthCheck policy", - "name": "account", + "description": "ID of the shared filesystem", + "name": "id", "type": "string" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "ID of the storage fs vm", + "name": "vmstate", "type": "string" }, { - "description": "the domain of the HealthCheck policy", + "description": "the shared filesystem provider", + "name": "provider", + "type": "string" + }, + { + "description": "the domain associated with the shared filesystem", "name": "domain", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the shared filesystem", + "name": "name", "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Attempts Migration of a VM with its volumes to a different host", - "isasync": true, - "name": "migrateVirtualMachineWithVolume", - "params": [ + }, { - "description": "Automatically select a destination host for a running instance, if hostId is not specified. false by default", - "length": 255, - "name": "autoselect", - "required": false, - "since": "4.19.0", - "type": "boolean" + "description": "the account associated with the shared filesystem", + "name": "account", + "type": "string" + }, + { + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "Network name of the shared filesystem", + "name": "networkname", + "type": "string" }, { - "description": "the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" + "description": "size of the shared filesystem", + "name": "size", + "type": "long" }, { - "description": "Destination Host ID to migrate VM to.", - "length": 255, - "name": "hostid", - "related": "addHost,cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": false, - "type": "uuid" + "description": "ID of the storage fs vm", + "name": "virtualmachineid", + "type": "string" }, { - "description": "Storage to pool mapping. This parameter specifies the mapping between a volume and a pool where you want to migrate that volume. Format of this parameter: migrateto[volume-index].volume=&migrateto[volume-index].pool=Where, [volume-index] indicates the index to identify the volume that you want to migrate, volume= indicates the UUID of the volume that you want to migrate, and pool= indicates the UUID of the pool where you want to migrate the volume. Example: migrateto[0].volume=<71f43cd6-69b0-4d3b-9fbc-67f50963d60b>&migrateto[0].pool=&migrateto[1].volume=<88de0173-55c0-4c1c-a269-83d0279eeedf>&migrateto[1].pool=<95d6e97c-6766-4d67-9a30-c449c15011d1>&migrateto[2].volume=<1b331390-59f2-4796-9993-bf11c6e76225>&migrateto[2].pool=<41fdb564-9d3b-447d-88ed-7628f7640cbc>", - "length": 255, - "name": "migrateto", - "required": false, - "type": "map" - } - ], - "related": "assignVirtualMachine,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "response": [ + "description": "Network ID of the shared filesystem", + "name": "networkid", + "type": "string" + }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "path of the domain to which the shared filesystem", + "name": "domainpath", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the project name of the shared filesystem", + "name": "project", "type": "string" }, { - "description": "the read (IO) of disk on the VM", + "description": "the read (IO) of disk on the shared filesystem", "name": "diskioread", "type": "long" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", "type": "long" }, - {}, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "Name of the availability zone", + "name": "zonename", + "type": "string" }, { - "description": "the list of nics associated with vm", + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the project ID of the shared filesystem", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of nics associated with the shared filesystem", "name": "nic", "response": [ - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, { "description": "the ID of the corresponding network", "name": "networkid", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", + "description": "MTU configured on the NIC", + "name": "mtu", "type": "integer" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { @@ -46583,8 +38474,8 @@ "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { @@ -46598,34 +38489,34 @@ "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "the ID of the nic", + "name": "id", + "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { "description": "the gateway of the nic", @@ -46633,831 +38524,436 @@ "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" } ], - "type": "set" - }, - { - "description": "the name of the virtual machine", - "name": "name", - "type": "string" - }, - { - "description": "the project name of the vm", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" - }, - { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" + "type": "list" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, + {}, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the name of the affinity group", - "name": "name", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "the account associated with the tag", + "name": "account", "type": "string" } ], "type": "set" }, + {} + ], + "since": "4.20.0" + }, + { + "description": "Disables an AutoScale Vm Group", + "isasync": true, + "name": "disableAutoScaleVmGroup", + "params": [ { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, + "description": "the ID of the autoscale group", + "length": 255, + "name": "id", + "related": "disableAutoScaleVmGroup,enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", + "required": true, + "type": "uuid" + } + ], + "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", + "response": [ { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the domain name of the vm group", + "name": "domain", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "name": "minmembers", + "type": "int" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the current state of the AutoScale Vm Group", + "name": "state", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the date when this vm group was created", + "name": "created", + "type": "date" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the id of the guest network the lb rule belongs to", + "name": "associatednetworkid", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" + "description": "is group for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the account owning the vm group", + "name": "account", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the autoscale vm group ID", + "name": "id", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the name of the autoscale vm group ", + "name": "name", "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - } - ], - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "path of the domain to which the vm group belongs", + "name": "domainpath", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, - {}, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the load balancer rule ID", + "name": "lbruleid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the lb provider of the guest network the lb rule belongs to", + "name": "lbprovider", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the domain ID of the vm group", + "name": "domainid", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" + "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", + "name": "availablevirtualmachinecount", + "type": "int" }, - {}, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the project id of the vm group", + "name": "projectid", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the name of the guest network the lb rule belongs to", + "name": "associatednetworkname", "type": "string" }, + {}, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" + "description": "the frequency at which the conditions have to be evaluated", + "name": "interval", + "type": "int" }, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", + "name": "maxmembers", + "type": "int" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the private port", + "name": "privateport", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "list of scaleup autoscale policies", + "name": "scaleuppolicies", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list of scaledown autoscale policies", + "name": "scaledownpolicies", + "type": "list" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the project name of the vm group", + "name": "project", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the autoscale profile that contains information about the vms in the vm group.", + "name": "vmprofileid", "type": "string" - }, - { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, + } + ] + }, + { + "description": "Creates a snapshot policy for the account.", + "isasync": false, + "name": "createSnapshotPolicy", + "params": [ { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "length": 255, + "name": "timezone", + "required": true, "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "time the snapshot is scheduled to be taken. Format is:* if HOURLY, MM* if DAILY, MM:HH* if WEEKLY, MM:HH:DD (1-7)* if MONTHLY, MM:HH:DD (1-28)", + "length": 255, + "name": "schedule", + "required": true, "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "A list of IDs of the zones in which the snapshots will be made available.The snapshots will always be made available in the zone in which the volume is present.", + "length": 255, + "name": "zoneids", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "list" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "Map of tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "maximum number of snapshots to retain", + "length": 255, + "name": "maxsnaps", + "required": true, + "type": "integer" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY", + "length": 255, + "name": "intervaltype", + "required": true, "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "an optional field, whether to the display the policy to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" - }, + "description": "the ID of the disk volume", + "length": 255, + "name": "volumeid", + "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "required": true, + "type": "uuid" + } + ], + "related": "updateSnapshotPolicy", + "response": [ { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the time zone of the snapshot policy", + "name": "timezone", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" + "description": "maximum number of snapshots retained", + "name": "maxsnaps", + "type": "int" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the ID of the snapshot policy", + "name": "id", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "time the snapshot is scheduled to be taken.", + "name": "schedule", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "the interval type of the snapshot policy", + "name": "intervaltype", + "type": "short" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" + "description": "The list of zones in which snapshot backup is scheduled", + "name": "zone", + "type": "set" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "is this policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "tag value", - "name": "value", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -47470,980 +38966,1145 @@ "name": "domain", "type": "string" }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, { "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" + } + ] + }, + { + "description": "Disables HA for a zone", + "isasync": true, + "name": "disableHAForZone", + "params": [ + { + "description": "ID of the zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "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" }, + {}, + {} + ], + "since": "4.11" + }, + { + "description": "Unmanage a volume on storage pool.", + "isasync": true, + "name": "unmanageVolume", + "params": [ { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "The ID of the volume to unmanage", + "length": 255, + "name": "id", + "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "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", + "name": "jobid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.19.1" + }, + { + "description": "Adds an API permission to a role", + "isasync": false, + "name": "createRolePermission", + "params": [ + { + "description": "The rule permission, allow or deny. Default: deny.", + "length": 255, + "name": "permission", + "required": true, "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "The API name or wildcard rule such as list*", + "length": 255, + "name": "rule", + "required": true, "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "The description of the role permission", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "ID of the role", + "length": 255, + "name": "roleid", + "related": "createRole,importRole,listRoles,updateRole", + "required": true, + "type": "uuid" + } + ], + "related": "listRolePermissions", + "response": [ + { + "description": "the permission type of the api name or wildcard rule, allow/deny", + "name": "permission", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the name of the role to which the role permission belongs", + "name": "rolename", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the ID of the role to which the role permission belongs", + "name": "roleid", + "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the ID of the role permission", + "name": "id", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the api name or wildcard rule", + "name": "rule", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the description of the role permission", + "name": "description", "type": "string" }, + {}, { - "description": "the project id of the vm", - "name": "projectid", + "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" } - ] + ], + "since": "4.9.0" }, { - "description": "Updates a user account", + "description": "List system virtual machines.", "isasync": false, - "name": "updateUser", + "name": "listSystemVms", "params": [ { - "description": "email", + "description": "the host ID of the system VM", "length": 255, - "name": "email", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "The API key for the user. Must be specified with userSecretKey", + "description": "the storage ID where vm's volumes belong to", "length": 255, - "name": "userapikey", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, - "type": "string" + "since": "3.0.1", + "type": "uuid" }, { - "description": "Provide true to mandate the user to use two factor authentication has to be enabled.This parameter is only used to mandate 2FA, not to disable 2FA", + "description": "the name of the system VM", "length": 255, - "name": "mandate2fa", + "name": "name", "required": false, - "since": "4.18.0.0", - "type": "boolean" + "type": "string" }, { - "description": "Clear text password (default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter. Can't be passed when command is executed via integration.api.port", + "description": "the system VM type. Possible types are \"consoleproxy\" and \"secondarystoragevm\".", "length": 255, - "name": "password", + "name": "systemvmtype", "required": false, "type": "string" }, { - "description": "Current password that was being used by the user. You must inform the current password when updating the password.", + "description": "", "length": 255, - "name": "currentpassword", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "description": "the state of the system VM", "length": 255, - "name": "timezone", + "name": "state", "required": false, "type": "string" }, { - "description": "last name", + "description": "List by keyword", "length": 255, - "name": "lastname", + "name": "keyword", "required": false, "type": "string" }, { - "description": "Unique username", + "description": "", "length": 255, - "name": "username", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "The secret key for the user. Must be specified with userApiKey", + "description": "the Pod ID of the system VM", "length": 255, - "name": "usersecretkey", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "User uuid", + "description": "the Zone ID of the system VM", "length": 255, - "name": "id", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", - "required": true, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, "type": "uuid" }, { - "description": "first name", + "description": "the ID of the system VM", "length": 255, - "name": "firstname", + "name": "id", + "related": "listSystemVms,migrateSystemVm,startSystemVm,changeServiceForSystemVm", "required": false, - "type": "string" + "type": "uuid" } ], - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser", + "related": "migrateSystemVm,startSystemVm,changeServiceForSystemVm", "response": [ { - "description": "the account ID of the user", - "name": "accountid", + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "the user email address", - "name": "email", + "description": "the template name for the system VM", + "name": "templatename", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the link local IP address for the system vm", + "name": "linklocalip", + "type": "string" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the Zone ID for the system VM", + "name": "zoneid", "type": "string" }, + {}, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", + "type": "string" + }, + { + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the user name", - "name": "username", + "description": "the private netmask for the system VM", + "name": "privatenetmask", "type": "string" }, - {}, { - "description": "the ID of the role", - "name": "roleid", + "description": "the host ID for the system VM", + "name": "hostid", "type": "string" }, { - "description": "the domain name of the user", - "name": "domain", + "description": "the template ID for the system VM", + "name": "templateid", "type": "string" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "public vlan range", + "name": "publicvlan", + "type": "list" + }, + { + "description": "the name of the system VM", + "name": "name", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", "type": "integer" }, { - "description": "the api key of the user", - "name": "apikey", + "description": "the private IP address for the system VM", + "name": "privateip", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "the ID of the system VM", + "name": "id", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the user firstname", - "name": "firstname", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" + "description": "the Zone name for the system VM", + "name": "zonename", + "type": "string" }, { - "description": "the user lastname", - "name": "lastname", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", "type": "string" }, { - "description": "the account name of the user", - "name": "account", + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" }, { - "description": "the user state", - "name": "state", + "description": "the Pod name for the system VM", + "name": "podname", "type": "string" }, { - "description": "the user ID", - "name": "id", + "description": "the state of the system VM", + "name": "state", "type": "string" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" + "description": "the network domain for the system VM", + "name": "networkdomain", + "type": "string" }, - {}, { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "the domain ID of the user", - "name": "domainid", + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the systemvm agent version", + "name": "version", "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the Pod ID for the system VM", + "name": "podid", "type": "string" - } - ] - }, - { - "description": "Removes a certificate from a load balancer rule", - "isasync": true, - "name": "removeCertFromLoadBalancer", - "params": [ + }, { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "lbruleid", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the date and time the system VM 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 second DNS for the system VM", + "name": "dns2", + "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the public IP address for the system VM", + "name": "publicip", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the agent state of the system VM", + "name": "agentstate", "type": "string" }, - {} - ] - }, - { - "description": "Adds a new host.", - "isasync": false, - "name": "addHost", - "params": [ { - "description": "the cluster name for the host", - "length": 255, - "name": "clustername", - "required": false, + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", "type": "string" }, { - "description": "the password for the host; required to be passed for hypervisors other than VMWare", - "length": 255, - "name": "password", - "required": false, + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", "type": "string" }, { - "description": "the username for the host; required to be passed for hypervisors other than VMWare", - "length": 255, - "name": "username", - "required": false, + "description": "guest vlan range", + "name": "guestvlan", "type": "string" }, + {}, { - "description": "the cluster ID for the host", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the Pod ID for the host", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the public netmask for the system VM", + "name": "publicnetmask", + "type": "string" + }, + { + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" + } + ] + }, + { + "description": "Creates a project", + "isasync": true, + "name": "createProject", + "params": [ + { + "description": "The display text of the project, defaults to the 'name´.", "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": true, - "type": "uuid" + "name": "displaytext", + "required": false, + "type": "string" }, { - "description": "hypervisor type of the host", + "description": "name of the project", "length": 255, - "name": "hypervisor", + "name": "name", "required": true, "type": "string" }, { - "description": "the Zone ID for the host", + "description": "user ID of the account to be assigned as owner of the project i.e., Project Admin", "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": true, + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": false, + "since": "4.15.0", "type": "uuid" }, { - "description": "the host URL", + "description": "account who will be Admin for the project", "length": 255, - "name": "url", - "required": true, + "name": "account", + "required": false, "type": "string" }, { - "description": "Allocation state of this Host for allocation of new resources", + "description": "ID of the account owning a project", "length": 255, - "name": "allocationstate", + "name": "accountid", + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "list of tags to be added to the host", + "description": "domain ID of the account owning a project", "length": 255, - "name": "hosttags", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, - "type": "list" + "type": "uuid" } ], - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "response": [ { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "the total number of public ip addresses available for this project to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" + "description": "the total number of virtual machines deployed by this project", + "name": "vmtotal", + "type": "long" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", + "description": "the total primary storage space (in GiB) owned by project", + "name": "primarystoragetotal", "type": "long" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", - "type": "boolean" + "description": "the total number of virtual machines stopped for this project", + "name": "vmstopped", + "type": "integer" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "the total number of virtual machines that can be deployed by this project", + "name": "vmlimit", "type": "string" }, - {}, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the total number of vpcs the project can own", + "name": "vpclimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of snapshots which can be stored by this project", + "name": "snapshotlimit", + "type": "string" }, { - "description": "the Pod name of the host", - "name": "podname", + "description": "the total volume which can be used by this project", + "name": "volumelimit", "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", + "description": "the total number of networks the project can own", + "name": "networklimit", "type": "string" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" + "description": "the total number of snapshots stored by this project", + "name": "snapshottotal", + "type": "long" }, + {}, { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "description": "the total number of templates which have been created by this project", + "name": "templatetotal", + "type": "long" }, { - "description": "the cluster name of the host", - "name": "clustername", + "description": "the total number of public ip addresses this project can acquire", + "name": "iplimit", "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", - "type": "string" + "description": "The tagged resource limit and count for the project", + "name": "taggedresources", + "type": "list" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "the name of the project", + "name": "name", "type": "string" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", + "description": "the id of the project", + "name": "id", "type": "string" }, { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": "the total memory (in MB) available to be created for this project", + "name": "memoryavailable", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the total secondary storage space (in GiB) available to be used for this project", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "the total number of templates available to be created by this project", + "name": "templateavailable", + "type": "string" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "the date this project was created", + "name": "created", + "type": "date" }, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "the total number of snapshots available for this project", + "name": "snapshotavailable", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "the state of the project", + "name": "state", + "type": "string" }, + {}, { - "description": "the ID of the host", - "name": "id", + "description": "the total number of vpcs available to be created for this project", + "name": "vpcavailable", "type": "string" }, { - "description": "CPU Arch of the host", - "name": "arch", + "description": "the list of resource tags associated with vm", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the total secondary storage space (in GiB) the project can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "the total number of virtual machines available for this project to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "events available for the host", - "name": "events", + "description": "the total primary storage space (in GiB) the project can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "the total number of cpu cores owned by project", + "name": "cputotal", + "type": "long" + }, + { + "description": "the domain name where the project belongs to", + "name": "domain", "type": "string" }, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" + "description": "the total secondary storage space (in GiB) owned by project", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "the total memory (in MB) owned by project", + "name": "memorytotal", + "type": "long" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the displaytext of the project", + "name": "displaytext", "type": "string" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", + "description": "the account name of the project's owners", + "name": "owner", + "type": "list" + }, + { + "description": "the total number of vpcs owned by project", + "name": "vpctotal", "type": "long" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "the total volume being used by this project", + "name": "volumetotal", + "type": "long" + }, + { + "description": "the total memory (in MB) the project can own", + "name": "memorylimit", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", + "description": "the total number of public ip addresses allocated for this project", + "name": "iptotal", "type": "long" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", - "type": "long" + "description": "the total primary storage space (in GiB) available to be used for this project", + "name": "primarystorageavailable", + "type": "string" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "the total number of virtual machines running for this project", + "name": "vmrunning", + "type": "integer" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" + "description": "the domain id the project belongs to", + "name": "domainid", + "type": "string" }, - {}, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" + "description": "the project account name of the project", + "name": "projectaccountname", + "type": "string" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the total number of templates which can be created by this project", + "name": "templatelimit", "type": "string" }, { - "description": "the host version", - "name": "version", + "description": "the total number of cpu cores available to be created for this project", + "name": "cpuavailable", "type": "string" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the total number of networks available to be created for this project", + "name": "networkavailable", "type": "string" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "the total number of cpu cores the project can own", + "name": "cpulimit", + "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", + "description": "the total number of networks owned by project", + "name": "networktotal", "type": "long" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" + "description": "the total volume available for this project", + "name": "volumeavailable", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Assigns a certificate to a load balancer rule", + "isasync": true, + "name": "assignCertToLoadBalancer", + "params": [ + { + "description": "the ID of the certificate", + "length": 255, + "name": "certid", + "related": "uploadSslCert", + "required": true, + "type": "uuid" }, { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the ID of the load balancer rule", + "length": 255, + "name": "lbruleid", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "Detaches a disk volume from a virtual machine.", + "isasync": true, + "name": "detachVolume", + "params": [ + { + "description": "the ID of the disk volume", + "length": 255, + "name": "id", + "related": "attachVolume,createVolume,updateVolume,detachVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "required": false, + "type": "uuid" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "the ID of the virtual machine where the volume is detached from", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "uuid" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", + "description": "the device ID on the virtual machine where volume is detached from", + "length": 255, + "name": "deviceid", + "required": false, "type": "long" + } + ], + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "response": [ + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "the status of the volume", + "name": "status", "type": "string" }, { - "description": "the name of the host", - "name": "name", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" + }, + { + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", + "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", + "type": "string" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", - "response": [ - { - "description": "GPU cards present in the host", - "name": "gpugroupname", - "type": "string" - }, - { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "the Zone name of the host", - "name": "zonename", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", - "type": "string" + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", - "type": "string" + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" - } - ] - }, - { - "description": "Attaches a disk volume to a virtual machine.", - "isasync": true, - "name": "attachVolume", - "params": [ - { - "description": "the ID of the disk volume", - "length": 255, - "name": "id", - "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" }, { - "description": "The ID of the device to map the volume to the guest OS. If no deviceID is informed, the next available deviceID will be chosen. Use 0 when volume needs to be attached as ROOT.
When using a linux operating system and the hypervisor XenServer, the devices IDs will be mapped as follows:
  • 0 maps to /dev/xvda;
  • 1 maps to /dev/xvdb;
  • 2 maps /dev/xvdc and so on.
Please refer to the docs of your hypervisor for the correct mapping of the deviceID and the actual logical disk structure.", - "length": 255, - "name": "deviceid", - "required": false, - "type": "long" + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", + "type": "string" }, { - "description": " the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "response": [ - { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "shared or local storage", + "name": "storagetype", + "type": "string" }, { - "description": "name of the disk volume", - "name": "name", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, - {}, { - "description": "max iops of the disk volume", - "name": "maxiops", + "description": "the read (IO) of disk on the vm", + "name": "diskioread", "type": "long" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", + "type": "string" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", - "type": "string" + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", "type": "long" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", + "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", + "description": "max iops of the disk volume", + "name": "maxiops", "type": "long" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", + "description": "size of the disk volume", + "name": "size", + "type": "long" + }, + { + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { @@ -48451,18 +40112,18 @@ "name": "tags", "response": [ { - "description": "the domain associated with the tag", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -48471,18 +40132,23 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -48499,84 +40165,61 @@ "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" } ], "type": "set" }, + {}, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" - }, - { - "description": "state of the virtual machine", - "name": "vmstate", - "type": "string" - }, - { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, + {}, { - "description": "ID of the disk volume", - "name": "id", - "type": "string" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" - }, - { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { - "description": "the project name of the vpn", - "name": "project", - "type": "string" + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", - "type": "string" + "description": "the date the disk volume was created", + "name": "created", + "type": "date" }, { "description": "true if the volume is extractable, false otherwise", @@ -48584,23 +40227,23 @@ "type": "boolean" }, { - "description": "the status of the volume", - "name": "status", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "name of the disk volume", + "name": "name", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", "type": "long" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { @@ -48609,84 +40252,23 @@ "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", - "type": "string" - }, - { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" - }, - { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" - }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" - }, - { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" - }, - { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" - }, - { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", "type": "boolean" }, { - "description": "pod id of the volume", - "name": "podid", - "type": "string" - }, - { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", - "type": "string" - }, - { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { @@ -48695,511 +40277,677 @@ "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", "type": "long" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" - }, - { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "the path of the volume", - "name": "path", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" - }, - { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" } ] }, { - "description": "Updates a project", + "description": "Replaces ACL associated with a network or private gateway", "isasync": true, - "name": "updateProject", + "name": "replaceNetworkACLList", "params": [ { - "description": "new Admin account for the project", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "ID of the user to be promoted/demoted", + "description": "the ID of the private gateway", "length": 255, - "name": "userid", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser", + "name": "gatewayid", + "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", "required": false, "type": "uuid" }, { - "description": "name of the project", - "length": 255, - "name": "name", - "required": false, - "since": "4.19.0", - "type": "string" - }, - { - "description": "when true, it swaps ownership with the account/ user provided. Ideally to be used when a single project administrator is present. In case of multiple project admins, swapowner is to be set to false,to promote or demote the user/account based on the roleType (Regular or Admin) provided. Defaults to true", + "description": "the ID of the network", "length": 255, - "name": "swapowner", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "id of the project to be modified", + "description": "the ID of the network ACL", "length": 255, - "name": "id", - "related": "activateProject,createProject,suspendProject,updateProject", + "name": "aclid", + "related": "createNetworkACLList,listNetworkACLLists", "required": true, "type": "uuid" - }, - { - "description": "display text of the project", - "length": 255, - "name": "displaytext", - "required": false, - "type": "string" - }, - { - "description": "Account level role to be assigned to the user/account : Admin/Regular", - "length": 255, - "name": "roletype", - "required": false, - "type": "string" } ], - "related": "activateProject,createProject,suspendProject", "response": [ + {}, { - "description": "the total number of public ip addresses available for this project to acquire", - "name": "ipavailable", - "type": "string" - }, - { - "description": "the name of the project", - "name": "name", - "type": "string" - }, - { - "description": "the id of the project", - "name": "id", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the state of the project", - "name": "state", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, - { - "description": "the total primary storage space (in GiB) owned by project", - "name": "primarystoragetotal", - "type": "long" - }, {}, { - "description": "the total memory (in MB) available to be created for this project", - "name": "memoryavailable", - "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", "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "Marks a default zone for this account", + "isasync": true, + "name": "markDefaultZoneForAccount", + "params": [ { - "description": "the project account name of the project", - "name": "projectaccountname", - "type": "string" + "description": "Marks the account that belongs to the specified domain.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": true, + "type": "uuid" }, { - "description": "the total number of virtual machines that can be deployed by this project", - "name": "vmlimit", + "description": "Name of the account that is to be marked.", + "length": 255, + "name": "account", + "related": "createAccount,disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "required": true, "type": "string" }, { - "description": "the total number of templates available to be created by this project", - "name": "templateavailable", + "description": "The Zone ID with which the account is to be marked.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "related": "createAccount,disableAccount,enableAccount,updateAccount,listAccounts,listAccounts", + "response": [ + { + "description": "the total number of projects the account can own", + "name": "projectlimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "details for the account", + "name": "accountdetails", + "type": "map" }, { - "description": "the total number of virtual machines deployed by this project", - "name": "vmtotal", - "type": "long" + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", + "type": "string" }, { - "description": "the total number of snapshots stored by this project", - "name": "snapshottotal", - "type": "long" + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the total number of networks the account can own", + "name": "networklimit", + "type": "string" }, { - "description": "the list of resource tags associated with vm", - "name": "tags", + "description": "the list of users associated with account", + "name": "user", "response": [ { - "description": "the ID of the domain associated with the tag", + "description": "the user name", + "name": "username", + "type": "string" + }, + { + "description": "the domain ID of the user", "name": "domainid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" + }, + { + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the user state", + "name": "state", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account ID of the user", + "name": "accountid", + "type": "string" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" + }, + { + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "the account name of the user", + "name": "account", + "type": "string" + }, + { + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the type of the role", + "name": "roletype", + "type": "string" + }, + { + "description": "the name of the role", + "name": "rolename", + "type": "string" + }, + { + "description": "the domain name of the user", + "name": "domain", "type": "string" + }, + { + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, + { + "description": "the date and time the user account was created", + "name": "created", + "type": "date" } ], "type": "list" }, { - "description": "the total number of networks available to be created for this project", - "name": "networkavailable", + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the total volume available for this account", + "name": "volumeavailable", "type": "string" }, + {}, { - "description": "the total secondary storage space (in GiB) the project can own", - "name": "secondarystoragelimit", + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" + }, + { + "description": "path of the Domain the account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the account name of the project's owners", - "name": "owner", - "type": "list" + "description": "the total number of networks owned by account", + "name": "networktotal", + "type": "long" }, { - "description": "the total number of networks the project can own", - "name": "networklimit", + "description": "the total volume which can be used by this account", + "name": "volumelimit", "type": "string" }, { - "description": "the total memory (in MB) the project can own", - "name": "memorylimit", + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", "type": "string" }, { - "description": "the date this project was created", + "description": "the date when this account was created", "name": "created", "type": "date" }, { - "description": "the domain id the project belongs to", - "name": "domainid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", "type": "string" }, { - "description": "the total volume which can be used by this project", - "name": "volumelimit", + "description": "true if account is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the total number of vpcs the account can own", + "name": "vpclimit", "type": "string" }, { - "description": "the total number of cpu cores the project can own", - "name": "cpulimit", + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the total number of virtual machines stopped for this project", - "name": "vmstopped", - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the total number of cpu cores available to be created for this project", - "name": "cpuavailable", + "description": "the name of the account", + "name": "name", "type": "string" }, { - "description": "the total number of vpcs owned by project", - "name": "vpctotal", + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", + "type": "string" + }, + { + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", "type": "long" }, { - "description": "the total number of templates which can be created by this project", - "name": "templatelimit", + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" + }, + { + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", "type": "string" }, { - "description": "the total primary storage space (in GiB) the project can own", - "name": "primarystoragelimit", + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", "type": "string" }, { - "description": "the total volume being used by this project", - "name": "volumetotal", + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", + "type": "integer" + }, + { + "description": "id of the Domain the account belongs to", + "name": "domainid", + "type": "string" + }, + { + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", "type": "long" }, - {}, { - "description": "the total memory (in MB) owned by project", - "name": "memorytotal", + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", "type": "long" }, { - "description": "the total number of public ip addresses this project can acquire", - "name": "iplimit", + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" + }, + { + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "the total number of virtual machines available for this project to acquire", - "name": "vmavailable", + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this project", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", + "type": "string" + }, + { + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" + }, + { + "description": "the id of the account", + "name": "id", + "type": "string" + }, + { + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", + "type": "string" + }, + { + "description": "the total number of snapshots which can be stored by this account", "name": "snapshotlimit", "type": "string" }, { - "description": "the total number of cpu cores owned by project", + "description": "the total number of vpcs owned by account", + "name": "vpctotal", + "type": "long" + }, + { + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", + "type": "string" + }, + { + "description": "the total number of cpu cores owned by account", "name": "cputotal", "type": "long" }, { - "description": "The tagged resource limit and count for the project", + "description": "the name of the role", + "name": "rolename", + "type": "string" + }, + { + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" + }, + { + "description": "The tagged resource limit and count for the account", "name": "taggedresources", "type": "list" }, { - "description": "the total number of vpcs available to be created for this project", - "name": "vpcavailable", + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", + "type": "boolean" + }, + { + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this project", - "name": "iptotal", + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", "type": "long" }, { - "description": "the domain name where the project belongs to", - "name": "domain", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the total secondary storage space (in GiB) available to be used for this project", - "name": "secondarystorageavailable", + "description": "the default zone of the account", + "name": "defaultzoneid", "type": "string" }, { - "description": "the displaytext of the project", - "name": "displaytext", + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this project", - "name": "primarystorageavailable", + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" + }, + { + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "the total number of virtual machines running for this project", - "name": "vmrunning", - "type": "integer" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the total number of networks owned by project", - "name": "networktotal", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "the total volume available for this project", - "name": "volumeavailable", + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "the total number of snapshots available for this project", - "name": "snapshotavailable", + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, { - "description": "the total number of vpcs the project can own", - "name": "vpclimit", + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by project", - "name": "secondarystoragetotal", - "type": "float" + "description": "name of the Domain the account belongs to", + "name": "domain", + "type": "string" }, { - "description": "the total number of templates which have been created by this project", - "name": "templatetotal", - "type": "long" + "description": "the state of the account", + "name": "state", + "type": "string" + }, + { + "description": "the ID of the role", + "name": "roleid", + "type": "string" + }, + {}, + { + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", + "type": "string" } ], - "since": "3.0.0" + "since": "4.0" }, { - "description": "Lists internal load balancers", - "isasync": false, - "name": "listLoadBalancers", + "description": "Enables out-of-band management for a zone", + "isasync": true, + "name": "enableOutOfBandManagementForZone", "params": [ { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the ID of the zone", "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": false, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, "type": "uuid" + } + ], + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster,issueOutOfBandManagementPowerAction", + "response": [ + { + "description": "the operation result", + "name": "status", + "type": "boolean" }, { - "description": "the scheme of the load balancer. Supported value is internal in the current release", - "length": 255, - "name": "scheme", - "required": false, + "description": "the out-of-band management interface port", + "name": "port", "type": "string" }, { - "description": "the name of the load balancer", - "length": 255, - "name": "name", - "required": false, + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" + }, + { + "description": "the out-of-band management interface address", + "name": "address", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the ID of the host", + "name": "hostid", + "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the out-of-band management driver for the host", + "name": "driver", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the out-of-band management interface password", + "name": "password", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the out-of-band management interface username", + "name": "username", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + {}, + { + "description": "the out-of-band management action (if issued)", + "name": "action", + "type": "string" + }, + { + "description": "the operation result description", + "name": "description", + "type": "string" }, { - "description": "the ID of the load balancer", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.9.0" + }, + { + "description": "Lists LDAP Users according to the specifications from the user request.", + "isasync": false, + "name": "listLdapUsers", + "params": [ + { + "description": "linked domain", "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, "type": "uuid" }, @@ -49211,605 +40959,490 @@ "type": "string" }, { - "description": "the source IP address of the load balancer", - "length": 255, - "name": "sourceipaddress", - "required": false, - "type": "string" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "description": "", "length": 255, - "name": "fordisplay", + "name": "page", "required": false, - "since": "4.4", - "type": "boolean" + "type": "integer" }, { - "description": "the network ID of the source IP address", + "description": "Determines whether all ldap users are returned or just non-cloudstack users. This option is deprecated in favour for the more option rich 'userfilter' parameter", "length": 255, - "name": "sourceipaddressnetworkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "listtype", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the network ID of the load balancer", + "description": "Determines what type of filter is applied on the list of users returned from LDAP.\n\tvalid values are\n\t'NoFilter'\t no filtering is done,\n\t'LocalDomain'\tusers already in the current or requested domain will be filtered out of the result list,\n\t'AnyDomain'\tusers that already exist anywhere in cloudstack will be filtered out, and\n\t'PotentialImport'\tall users that would be automatically imported from the listing will be shown, including those that are already in cloudstack, the later will be annotated with their userSource", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "userfilter", "required": false, - "type": "uuid" + "since": "4.13", + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "", "length": 255, - "name": "account", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" } ], - "related": "createLoadBalancer", + "related": "", "response": [ { - "description": "the name of the Load Balancer", - "name": "name", - "type": "string" - }, - { - "description": "path of the domain to which the Load Balancer belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the project id of the Load Balancer", - "name": "projectid", + "description": "The user's email", + "name": "email", "type": "string" }, { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", + "description": "The user's principle", + "name": "principal", "type": "string" }, { - "description": "the domain of the Load Balancer", - "name": "domain", + "description": "The user's lastname", + "name": "lastname", "type": "string" }, { - "description": "Load Balancer source ip", - "name": "sourceipaddress", + "description": "The user's username", + "name": "username", "type": "string" }, { - "description": "Load Balancer network id", - "name": "networkid", + "description": "The authentication source for this user as known to the system or empty if the user is not yet in cloudstack.", + "name": "conflictingusersource", "type": "string" }, { - "description": "the domain ID of the Load Balancer", - "name": "domainid", + "description": "The user's domain", + "name": "domain", "type": "string" }, + {}, { - "description": "the account of the Load Balancer", - "name": "account", + "description": "The user's firstname", + "name": "firstname", "type": "string" }, + {}, { - "description": "Load Balancer source ip network id", - "name": "sourceipaddressnetworkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - { - "description": "the list of rules associated with the Load Balancer", - "name": "loadbalancerrule", - "response": [ - { - "description": "instance port of the load balancer rule", - "name": "instanceport", - "type": "integer" - }, - { - "description": "source port of the load balancer rule", - "name": "sourceport", - "type": "integer" - }, - { - "description": "the state of the load balancer rule", - "name": "state", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the list of instances associated with the Load Balancer", - "name": "loadbalancerinstance", - "response": [ - { - "description": "the name of the instance", - "name": "name", - "type": "string" - }, - { - "description": "the ip address of the instance", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the state of the instance", - "name": "state", - "type": "string" - }, - { - "description": "the instance ID", - "name": "id", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the list of resource tags associated with the Load Balancer", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "list" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, - { - "description": "the project name of the Load Balancer", - "name": "project", - "type": "string" - }, - {}, - {}, - { - "description": "the description of the Load Balancer", - "name": "description", - "type": "string" - }, - { - "description": "the Load Balancer ID", - "name": "id", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" } ], "since": "4.2.0" }, { - "description": "This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user", - "isasync": false, - "name": "registerUserKeys", + "description": "Revokes certificate using configured CA plugin", + "isasync": true, + "name": "revokeCertificate", "params": [ { - "description": "User id", + "description": "The certificate CN", "length": 255, - "name": "id", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser", + "name": "cn", + "required": false, + "type": "string" + }, + { + "description": "The certificate serial number, as a hex value", + "length": 255, + "name": "serial", "required": true, - "type": "uuid" + "type": "string" + }, + { + "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", + "length": 255, + "name": "provider", + "required": false, + "type": "string" } ], - "related": "getUserKeys", "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": "the api key of the registered user", - "name": "apikey", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, - {}, - { - "description": "the secret key of the registered user", - "name": "secretkey", - "type": "string" - } - ] + {} + ], + "since": "4.11.0" }, { - "description": "Deletes a load balancer stickiness policy.", + "description": "Deletes a routing firewall rule", "isasync": true, - "name": "deleteLBStickinessPolicy", + "name": "deleteRoutingFirewallRule", "params": [ { - "description": "the ID of the LB stickiness policy", + "description": "the ID of the Routing firewall rule", "length": 255, "name": "id", - "related": "createLBStickinessPolicy,listLBStickinessPolicies,updateLBStickinessPolicy", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", "required": true, "type": "uuid" } ], "response": [ + { + "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 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" - }, {} ], - "since": "3.0.0" + "since": "4.20.0" }, { - "description": "Lists site to site vpn connection gateways", + "description": "Changes the service offering for a system vm (console proxy or secondary storage). The system vm must be in a \"Stopped\" state for this command to take effect.", "isasync": false, - "name": "listVpnConnections", + "name": "changeServiceForSystemVm", "params": [ { - "description": "id of vpc", + "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "name": "details", "required": false, - "type": "uuid" + "type": "map" }, { - "description": "", + "description": "the service offering ID to apply to the system vm", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "The ID of the system vm", "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "name": "id", + "related": "migrateSystemVm,startSystemVm,changeServiceForSystemVm", + "required": true, + "type": "uuid" + } + ], + "related": "migrateSystemVm,startSystemVm", + "response": [ + { + "description": "the Zone name for the system VM", + "name": "zonename", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": false, - "type": "uuid" + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the state of the system VM", + "name": "state", "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the template ID for the system VM", + "name": "templateid", + "type": "string" }, + {}, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the second DNS for the system VM", + "name": "dns2", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "id of the vpn connection", - "length": 255, - "name": "id", - "related": "createVpnConnection,listVpnConnections,updateVpnConnection", - "required": false, - "type": "uuid" - } - ], - "related": "createVpnConnection,updateVpnConnection", - "response": [ + "description": "the public netmask for the system VM", + "name": "publicnetmask", + "type": "string" + }, { - "description": "ESP policy of the customer gateway", - "name": "esppolicy", + "description": "the network domain for the system VM", + "name": "networkdomain", "type": "string" }, { - "description": "State of vpn connection", - "name": "state", + "description": "the Pod name for the system VM", + "name": "podname", "type": "string" }, { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", - "type": "long" + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the project name", - "name": "project", + "description": "the public IP address for the system VM", + "name": "publicip", "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "IPsec Preshared-Key of the customer gateway", - "name": "ipsecpsk", + "description": "the systemvm agent version", + "name": "version", "type": "string" }, { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", "type": "string" }, - {}, { - "description": "the domain id of the owner", - "name": "domainid", + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, - {}, { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the connection ID", - "name": "id", + "description": "the Pod ID for the system VM", + "name": "podid", "type": "string" }, { - "description": "State of vpn connection", - "name": "passive", - "type": "boolean" + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", + "type": "string" }, { - "description": "the customer gateway ID", - "name": "s2scustomergatewayid", + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", "type": "string" }, { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", - "type": "boolean" + "description": "the ID of the system VM", + "name": "id", + "type": "string" }, { - "description": "the project id", - "name": "projectid", + "description": "public vlan range", + "name": "publicvlan", + "type": "list" + }, + { + "description": "the name of the system VM", + "name": "name", "type": "string" }, { - "description": "is connection for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the Zone ID for the system VM", + "name": "zoneid", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the agent state of the system VM", + "name": "agentstate", + "type": "string" }, { - "description": "if DPD is enabled for customer gateway", - "name": "dpd", - "type": "boolean" + "description": "the host ID for the system VM", + "name": "hostid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the link local IP address for the system vm", + "name": "linklocalip", "type": "string" }, + {}, { - "description": "the public IP address", - "name": "publicip", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", + "description": "the date and time the system VM was created", + "name": "created", "type": "date" }, { - "description": "the vpn gateway ID", - "name": "s2svpngatewayid", - "type": "string" + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", + "type": "integer" }, { - "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", - "name": "splitconnections", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "public ip address id of the customer gateway", - "name": "gateway", + "description": "the private IP address for the system VM", + "name": "privateip", "type": "string" }, { - "description": "IKE policy of the customer gateway", - "name": "ikepolicy", + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" + }, + { + "description": "the private netmask for the system VM", + "name": "privatenetmask", "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "guest vlan range", + "name": "guestvlan", "type": "string" }, { - "description": "the owner", - "name": "account", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the template name for the system VM", + "name": "templatename", "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" } ] }, { - "description": "remove Tungsten-Fabric policy", - "isasync": true, - "name": "removeTungstenFabricPolicy", + "description": "Create VM Schedule", + "isasync": false, + "name": "createVMSchedule", "params": [ { - "description": "the uuid of Tungsten-Fabric policy", + "description": "end date after which the schedule becomes inactiveUse format \"yyyy-MM-dd hh:mm:ss\")", + "length": 255, + "name": "enddate", + "required": false, + "type": "date" + }, + { + "description": "start date from which the schedule becomes active. Defaults to current date plus 1 minute.Use format \"yyyy-MM-dd hh:mm:ss\")", + "length": 255, + "name": "startdate", + "required": false, + "type": "date" + }, + { + "description": "Schedule for action on VM in cron format. e.g. '0 15 10 * *' for 'at 15:00 on 10th day of every month'", "length": 255, - "name": "policyuuid", + "name": "schedule", "required": true, "type": "string" }, { - "description": "the uuid of Tungsten-Fabric network", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see TimeZone Format.", "length": 255, - "name": "networkuuid", + "name": "timezone", "required": true, "type": "string" }, { - "description": "the ID of zone", + "description": "Action to take on the VM (start/stop/reboot/force_stop/force_reboot).", "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", + "name": "action", "required": true, - "type": "uuid" - } - ], - "related": "createTungstenFabricPolicy,listTungstenFabricPolicy,applyTungstenFabricPolicy", - "response": [ + "type": "string" + }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "Description of the schedule", + "length": 255, + "name": "description", + "required": false, "type": "string" }, - {}, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "ID of the VM for which schedule is to be defined", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, + { + "description": "Enable VM schedule. Defaults to true", + "length": 255, + "name": "enabled", + "required": false, + "type": "boolean" + } + ], + "related": "updateVMSchedule", + "response": [ {}, { "description": "the UUID of the latest async job acting on this object", @@ -49817,566 +41450,728 @@ "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "Date from which the schedule is active", + "name": "startdate", + "type": "date" }, { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "Timezone of the schedule", + "name": "timezone", "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "Tungsten-Fabric policy name", - "name": "name", + "description": "ID of virtual machine", + "name": "virtualmachineid", "type": "string" }, - {} - ] + { + "description": "Description of VM schedule", + "name": "description", + "type": "string" + }, + { + "description": "the ID of VM schedule", + "name": "id", + "type": "string" + }, + { + "description": "Date after which the schedule becomes inactive", + "name": "enddate", + "type": "date" + }, + { + "description": "Date when the schedule was created", + "name": "created", + "type": "date" + }, + { + "description": "VM schedule is enabled", + "name": "enabled", + "type": "boolean" + }, + { + "description": "Cron formatted VM schedule", + "name": "schedule", + "type": "string" + }, + { + "description": "Action", + "name": "action", + "type": "action" + } + ], + "since": "4.19.0" }, { - "description": "Migrate current NFS secondary storages to use object store.", + "description": "List the IP forwarding rules", "isasync": false, - "name": "updateCloudToUseObjectStore", + "name": "listIpForwardingRules", "params": [ { - "description": "the URL for the image store", + "description": "Lists all rules applied to the specified VM.", "length": 255, - "name": "url", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss", + "description": "", "length": 255, - "name": "details", + "name": "page", "required": false, - "type": "map" + "type": "integer" }, { - "description": "the image store provider name", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "provider", - "required": true, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "Lists rule with the specified ID.", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule,listIpForwardingRules", + "required": false, + "type": "uuid" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "list the rule belonging to this public IP address", + "length": 255, + "name": "ipaddressid", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": false, + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the name for the image store", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "name", + "name": "account", "required": false, "type": "string" + }, + { + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" } ], - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore,addImageStoreS3,listImageStores", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,createPortForwardingRule,listPortForwardingRules,updatePortForwardingRule", "response": [ { - "description": "the url of the image store", - "name": "url", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the Zone ID of the image store", - "name": "zoneid", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "is firewall for display to the regular user", + "name": "fordisplay", "type": "boolean" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", + "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", + "type": "string" }, { - "description": "the protocol of the image store", - "name": "protocol", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", + "type": "string" + }, + { + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", "type": "string" }, {}, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "the ID of the port forwarding rule", + "name": "id", + "type": "string" }, { - "description": "the name of the image store", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, { - "description": "the ID of the image store", - "name": "id", + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", "type": "string" }, - {} - ], - "since": "4.3.0" + { + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", + "type": "string" + }, + { + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", + "type": "string" + } + ] }, { - "description": "Creates a range of Autonomous Systems for BGP Dynamic Routing", - "isasync": false, - "name": "createASNRange", + "description": "Creates an instant snapshot of a volume.", + "isasync": true, + "name": "createSnapshot", "params": [ { - "description": "the start AS Number", + "description": "The ID of the disk volume", "length": 255, - "name": "startasn", + "name": "volumeid", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "required": true, - "type": "long" + "type": "uuid" }, { - "description": "the zone ID", + "description": "policy id of the snapshot, if this is null, then use MANUAL_POLICY.", "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": true, + "name": "policyid", + "related": "updateSnapshotPolicy", + "required": false, "type": "uuid" }, { - "description": "the end AS Number", + "description": "The domain ID of the snapshot. If used with the account parameter, specifies a domain for the account associated with the disk volume. If account is NOT provided then snapshot will be assigned to the caller account and domain.", "length": 255, - "name": "endasn", - "required": true, - "type": "long" - } - ], - "related": "listASNRanges", - "response": [ + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" + }, { - "description": "Created date", - "name": "created", - "type": "date" + "description": "asynchronous backup if true", + "length": 255, + "name": "asyncbackup", + "required": false, + "type": "boolean" }, { - "description": "End AS Number", - "name": "endasn", - "type": "long" + "description": "The account of the snapshot. The account parameter must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" }, { - "description": "Zone ID", - "name": "zoneid", + "description": "the name of the snapshot", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "A comma-separated list of IDs of the zones in which the snapshot will be made available. The snapshot will always be made available in the zone in which the volume is present.", + "length": 255, + "name": "zoneids", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "since": "4.19.0", + "type": "list" }, { - "description": "ID of the AS Number Range", - "name": "id", - "type": "string" + "description": "Map of tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, - {}, { - "description": "Start AS Number", - "name": "startasn", - "type": "long" + "description": "quiesce vm if true", + "length": 255, + "name": "quiescevm", + "required": false, + "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Currently applicable only for managed storage. Valid location types: 'primary', 'secondary'. Default = 'primary'.", + "length": 255, + "name": "locationtype", + "required": false, "type": "string" } ], - "since": "4.20.0" - }, - { - "description": "add Tungsten-Fabric network gateway to logical router", - "isasync": true, - "name": "addTungstenFabricNetworkGatewayToLogicalRouter", - "params": [ + "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,revertSnapshot,listSnapshots", + "response": [ { - "description": "the ID of zone", - "length": 255, + "description": "id of the availability zone", "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": true, - "type": "uuid" + "type": "string" }, { - "description": "Tungsten-Fabric logical router uuid", - "length": 255, - "name": "logicalrouteruuid", - "required": true, + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "physical size of backedup snapshot on image store", + "name": "physicalsize", + "type": "long" + }, + { + "description": "name of the snapshot", + "name": "name", "type": "string" }, + {}, { - "description": "Tungsten-Fabric network uuid", - "length": 255, - "name": "networkuuid", - "required": true, + "description": "the account associated with the snapshot", + "name": "account", "type": "string" - } - ], - "related": "createTungstenFabricLogicalRouter,removeTungstenFabricNetworkGatewayFromLogicalRouter,listTungstenFabricLogicalRouter", - "response": [ + }, + { + "description": "valid types are hourly, daily, weekly, monthy, template, and none.", + "name": "intervaltype", + "type": "string" + }, { - "description": "Tungsten-Fabric logical router name", - "name": "name", + "description": "ID of the datastore for the snapshot entry", + "name": "datastoreid", "type": "string" }, - {}, { - "description": "Tungsten-Fabric logical router uuid", - "name": "uuid", + "description": "download progress of a snapshot", + "name": "downloaddetails", + "type": "map" + }, + { + "description": "type of the disk volume", + "name": "volumetype", "type": "string" }, - {}, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "ID of the disk volume", + "name": "volumeid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the type of the snapshot", + "name": "snapshottype", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "state of the disk volume", + "name": "volumestate", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", + "description": "virtual size of backedup snapshot on image store", + "name": "virtualsize", "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "list Tungsten-Fabric nic", - "isasync": false, - "name": "listTungstenFabricNic", - "params": [ - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": false, - "type": "uuid" + "description": "the project id of the snapshot", + "name": "projectid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the status of the template", + "name": "status", "type": "string" }, + {}, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "state of the snapshot on the datastore", + "name": "datastorestate", + "type": "string" }, { - "description": "the uuid of Tungsten-Fabric nic", - "length": 255, - "name": "nicuuid", - "required": false, + "description": "the domain ID of the snapshot's account", + "name": "domainid", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - {}, + "description": "the project name of the snapshot", + "name": "project", + "type": "string" + }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "name": "state", + "type": "state" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the snapshot", + "name": "id", "type": "string" }, - {}, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "id of the os on volume", + "name": "ostypeid", "type": "string" }, { - "description": "Tungsten-Fabric nic uuid", - "name": "uuid", + "description": "name of the datastore for the snapshot entry", + "name": "datastorename", "type": "string" }, { - "description": "Tungsten-Fabric nic name", - "name": "name", + "description": "path of the Domain the snapshot's account belongs to", + "name": "domainpath", "type": "string" - } - ] - }, - { - "description": "Retrieves VMware DC(s) associated with a zone.", - "isasync": false, - "name": "listVmwareDcs", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "type of the datastore for the snapshot entry", + "name": "datastoretype", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": " the date the snapshot was created", + "name": "created", + "type": "date" }, - { - "description": "Id of the CloudStack zone.", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", - "required": true, - "type": "uuid" - } - ], - "related": "addVmwareDc", - "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "The VMware Datacenter ID", - "name": "id", + "description": "valid location types are primary and secondary.", + "name": "locationtype", "type": "string" }, { - "description": "The VMware vCenter name/ip", - "name": "vcenter", + "description": "the domain name of the snapshot's account", + "name": "domain", "type": "string" }, - {}, - {}, { - "description": "the Zone ID associated with this VMware Datacenter", - "name": "zoneid", - "type": "long" + "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", + "name": "revertable", + "type": "boolean" }, { - "description": "The VMware Datacenter name", - "name": "name", + "description": "name of the disk volume", + "name": "volumename", + "type": "string" + }, + { + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" + }, + { + "description": "display name of the os on volume", + "name": "osdisplayname", + "type": "string" } ] }, { - "description": "apply Tungsten-Fabric policy", + "description": "Deletes a vmsnapshot.", "isasync": true, - "name": "applyTungstenFabricPolicy", + "name": "deleteVMSnapshot", "params": [ { - "description": "the uuid of network", - "length": 255, - "name": "networkuuid", - "required": true, - "type": "string" - }, - { - "description": "the uuid of Tungsten-Fabric policy", - "length": 255, - "name": "policyuuid", - "required": true, - "type": "string" - }, - { - "description": "the minor sequence of Tungsten-Fabric policy", - "length": 255, - "name": "minorsequence", - "required": true, - "type": "integer" - }, - { - "description": "the major sequence of Tungsten-Fabric policy", - "length": 255, - "name": "majorsequence", - "required": true, - "type": "integer" - }, - { - "description": "the ID of zone", + "description": "The ID of the VM snapshot", "length": 255, - "name": "zoneid", - "related": "createZone,listZones,listZones", + "name": "vmsnapshotid", + "related": "listVMSnapshot,createVMSnapshot", "required": true, "type": "uuid" } ], - "related": "createTungstenFabricPolicy,listTungstenFabricPolicy", "response": [ {}, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "Tungsten-Fabric policy name", - "name": "name", + "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": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", - "type": "string" - }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } - ] + ], + "since": "4.2.0" }, { - "description": "Lists zones", + "description": "Lists storage pool metrics", "isasync": false, - "name": "listZones", + "name": "listStoragePoolsMetrics", "params": [ { - "description": "the network type of the zone that the virtual machine belongs to", + "description": "", "length": 255, - "name": "networktype", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "List by keyword", + "description": "If true, lists the custom stats of the storage pool", "length": 255, - "name": "keyword", + "name": "storagecustomstats", "required": false, - "type": "string" + "since": "4.18.1", + "type": "boolean" }, { - "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.", + "description": "the Pod ID for the storage pool", "length": 255, - "name": "available", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "the ID of the domain associated with the zone", + "description": "the ID of the storage pool", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, "type": "uuid" }, { - "description": "the name of the zone", + "description": "List by keyword", "length": 255, - "name": "name", + "name": "keyword", "required": false, "type": "string" }, { - "description": "flag to display the capacity of the zones", + "description": "the storage pool path", "length": 255, - "name": "showcapacities", + "name": "path", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "List zones by resource tags (key/value pairs)", + "description": "the name of the storage pool", "length": 255, - "name": "tags", + "name": "name", "required": false, - "since": "4.3", - "type": "map" + "type": "string" + }, + { + "description": "list storage pools belongig to the specific cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": false, + "type": "uuid" }, { "description": "", @@ -50386,206 +42181,110 @@ "type": "integer" }, { - "description": "flag to display the resource image for the zones", + "description": "the scope of the storage pool", "length": 255, - "name": "showicon", + "name": "scope", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "the ID of the zone", + "description": "host ID of the storage pools", "length": 255, - "name": "id", - "related": "createZone,listZones,listZones", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": false, "type": "uuid" }, { - "description": "the IDs of the zones, mutually exclusive with id", + "description": "the Zone ID for the storage pool", "length": 255, - "name": "ids", - "related": "createZone,listZones,listZones", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "since": "4.19.0", - "type": "list" + "type": "uuid" }, { - "description": "", + "description": "the status of the storage pool", "length": 255, - "name": "page", + "name": "status", "required": false, - "type": "integer" - } - ], - "related": "createZone,listZones", - "response": [ - { - "description": "the first DNS for the Zone", - "name": "dns1", - "type": "string" - }, - { - "description": "the display text of the zone", - "name": "displaytext", "type": "string" }, { - "description": "the UUID of the containing domain, null for public zones", - "name": "domainid", - "type": "string" - }, - { - "description": "Zone description", - "name": "description", + "description": "the IP address for the storage pool", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" - }, - {}, + } + ], + "related": "", + "response": [ { - "description": "The maximum value the MTU can have on the VR's private interfaces", - "name": "routerprivateinterfacemaxmtu", - "type": "integer" + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" }, { - "description": "the first internal DNS for the Zone", - "name": "internaldns1", + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", "type": "string" }, { - "description": "true if local storage offering enabled, false otherwise", - "name": "localstorageenabled", + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", "type": "boolean" }, { - "description": "the allocation state of the cluster", - "name": "allocationstate", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, - {}, - { - "description": "true, if zone is NSX enabled", - "name": "isnsxenabled", - "type": "boolean" - }, - { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", - "type": "boolean" + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", + "type": "string" }, { - "description": "the network type of the zone; can be Basic or Advanced", - "name": "networktype", + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "true, if zone contains clusters and hosts from different CPU architectures", - "name": "ismultiarch", - "type": "boolean" + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" }, + {}, { - "description": "Zone id", - "name": "id", + "description": "disk size in GiB", + "name": "disksizetotalgb", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" }, { - "description": "AS Number Range", - "name": "asnrange", - "type": "string" + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" }, { - "description": "the capacity of the Zone", - "name": "capacity", - "response": [ - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the capacity name", - "name": "name", - "type": "string" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - } - ], - "type": "list" + "description": "the Pod ID of the storage pool", + "name": "podid", + "type": "string" }, { - "description": "The maximum value the MTU can have on the VR's public interfaces", - "name": "routerpublicinterfacemaxmtu", - "type": "integer" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the dhcp Provider for the Zone", - "name": "dhcpprovider", + "description": "the storage pool path", + "name": "path", "type": "string" }, { @@ -50594,236 +42293,157 @@ "type": "string" }, { - "description": "the name of the containing domain, null for public zones", - "name": "domainname", + "description": "the Zone ID of the storage pool", + "name": "zoneid", "type": "string" }, { - "description": "the list of resource tags associated with zone.", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "Zone Token", - "name": "zonetoken", - "type": "string" + "description": "storage allocated disable threshold exceeded", + "name": "storageallocateddisablethreshold", + "type": "boolean" }, { - "description": "the second IPv6 DNS for the Zone", - "name": "ip6dns2", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "the guest CIDR address for the Zone", - "name": "guestcidraddress", + "description": "disk size allocated in GiB", + "name": "disksizeallocatedgb", "type": "string" }, { - "description": "Network domain name for the networks in the zone", - "name": "domain", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "Allow end users to specify VR MTU", - "name": "allowuserspecifyvrmtu", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the second internal DNS for the Zone", - "name": "internaldns2", + "description": "disk size used in GiB", + "name": "disksizeusedgb", "type": "string" }, { - "description": "Zone name", + "description": "the name of the storage pool", "name": "name", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, { - "description": "the second DNS for the Zone", - "name": "dns2", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, { - "description": "the type of the zone - core or edge", - "name": "type", - "type": "string" + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" }, { - "description": "the first IPv6 DNS for the Zone", - "name": "ip6dns1", - "type": "string" - } - ] - }, - { - "description": "Removes a public IP address from quarantine. Only IPs in active quarantine can be removed.", - "isasync": false, - "name": "removeQuarantinedIp", - "params": [ + "description": "storage allocated notification threshold exceeded", + "name": "storageallocatedthreshold", + "type": "boolean" + }, { - "description": "The public IP address in active quarantine. Either the IP address is informed, or the ID of the IP address in quarantine.", - "length": 255, - "name": "ipaddress", - "required": false, + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "The reason for removing the public IP address from quarantine prematurely.", - "length": 255, - "name": "removalreason", - "required": true, + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "The ID of the public IP address in active quarantine. Either the IP address is informed, or the ID of the IP address in quarantine.", - "length": 255, - "name": "id", - "related": "listQuarantinedIps,updateQuarantinedIp,removeQuarantinedIp", - "required": false, - "type": "uuid" - } - ], - "related": "listQuarantinedIps,updateQuarantinedIp", - "response": [ - { - "description": "ID of the quarantine process.", - "name": "id", - "type": "string" + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" }, { - "description": "The public IP address in quarantine.", - "name": "ipaddress", - "type": "string" + "description": "storage usage disable threshold exceeded", + "name": "storageusagedisablethreshold", + "type": "boolean" }, - {}, - {}, { - "description": "Account name of the previous public IP address owner.", - "name": "previousownername", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" }, { - "description": "When the quarantine was created.", - "name": "created", - "type": "date" + "description": "storage usage notification threshold exceeded", + "name": "storageusagethreshold", + "type": "boolean" }, { - "description": "Account ID of the previous public IP address owner.", - "name": "previousownerid", - "type": "string" + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" }, { - "description": "ID of the account that removed the IP from quarantine.", - "name": "removeraccountid", + "description": "disk size unallocated in GiB", + "name": "disksizeunallocatedgb", "type": "string" }, + {}, { - "description": "When the quarantine was removed.", - "name": "removed", - "type": "date" - }, - { - "description": "End date for the quarantine.", - "name": "enddate", - "type": "date" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "The reason for removing the IP from quarantine prematurely.", - "name": "removalreason", + "description": "the storage pool type", + "name": "type", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" + }, + { + "description": "the scope of the storage pool", + "name": "scope", + "type": "string" + }, + { + "description": "Storage provider for this pool", + "name": "provider", + "type": "string" } ], - "since": "4.19" + "since": "4.9.3" }, { - "description": "Releases a Public IP range back to the system pool", - "isasync": false, - "name": "releasePublicIpRange", + "description": "Unmanage a guest virtual machine.", + "isasync": true, + "name": "unmanageVirtualMachine", "params": [ { - "description": "the id of the Public IP range", + "description": "The ID of the virtual machine to unmanage", "length": 255, "name": "id", - "related": "createVlanIpRange,updateVlanIpRange,dedicatePublicIpRange", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, "type": "uuid" } ], + "related": "", "response": [ { - "description": "true if operation is executed successfully", + "description": "result of the unmanage VM operation", "name": "success", "type": "boolean" }, @@ -50834,8 +42454,8 @@ "type": "integer" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "details of the unmanage VM operation", + "name": "details", "type": "string" }, {}, @@ -50844,730 +42464,754 @@ "name": "jobid", "type": "string" } - ] + ], + "since": "4.15.0" }, { - "description": "lists network that are using a netscaler load balancer device", - "isasync": false, - "name": "listNetscalerLoadBalancerNetworks", + "description": "Starts a router.", + "isasync": true, + "name": "rebootRouter", "params": [ { - "description": "List by keyword", + "description": "Force reboot the router (Router is force Stopped and then Started)", "length": 255, - "name": "keyword", + "name": "forced", "required": false, - "type": "string" + "since": "4.16.0", + "type": "boolean" }, { - "description": "netscaler load balancer device ID", + "description": "the ID of the router", "length": 255, - "name": "lbdeviceid", - "related": "addNetscalerLoadBalancer,configureNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter,deployNetscalerVpx", + "name": "id", + "related": "destroyRouter,listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", "required": true, "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" } ], - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "related": "destroyRouter,listRouters,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", "response": [ { - "description": "the domain name of the network owner", - "name": "domain", + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "related to what other network configuration", - "name": "related", + "description": "the link local IP address for the router", + "name": "linklocalip", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the Domain the router belongs to", + "name": "domainpath", "type": "string" }, { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", - "type": "integer" - }, - { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" }, { - "description": "list networks that are persistent", - "name": "ispersistent", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the public MAC address for the router", + "name": "publicmacaddress", + "type": "string" }, { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, { - "description": "the physical network id", - "name": "physicalnetworkid", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", - "type": "boolean" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "zone id of the network", - "name": "zoneid", + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", "type": "string" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, { - "description": "the list of resource tags associated with network", - "name": "tags", + "description": "Last executed health check result for the router", + "name": "healthcheckresults", "response": [ { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the name of the health check on the router", + "name": "checkname", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the type of the health check - basic or advanced", + "name": "checktype", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", - "type": "string" + "description": "result of the health check", + "name": "success", + "type": "boolean" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "detailed response generated on running health check", + "name": "details", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" } ], "type": "list" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", - "type": "string" - }, - { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", - "type": "string" - }, - { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" - }, - { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" - }, - { - "description": "true if network is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - {}, - {}, - { - "description": "the traffic type of the network", - "name": "traffictype", - "type": "string" - }, - { - "description": "the network's netmask", - "name": "netmask", + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", - "type": "integer" - }, - { - "description": "the second IPv4 DNS for the network", - "name": "dns2", + "description": "the Zone ID for the router", + "name": "zoneid", "type": "string" }, { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", + "description": "the version of template", + "name": "version", "type": "string" }, { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "the link local netmask for the router", + "name": "linklocalnetmask", "type": "string" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", + "description": "the guest MAC address for the router", + "name": "guestmacaddress", "type": "string" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "acl type - access type to the network", - "name": "acltype", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" }, + {}, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", + "description": "the state of redundant virtual router", + "name": "redundantstate", "type": "string" }, + {}, { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" }, { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the first IPv4 DNS for the network", - "name": "dns1", + "description": "the template ID for the router", + "name": "templateid", "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the account associated with the router", + "name": "account", "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", + "description": "the Zone name for the router", + "name": "zonename", "type": "string" }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", "type": "string" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", - "type": "boolean" + "description": "the domain ID associated with the router", + "name": "domainid", + "type": "string" }, { - "description": "true if network is system, false otherwise", - "name": "issystem", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "state of the network", - "name": "state", + "description": "the guest IP address for the router", + "name": "guestipaddress", "type": "string" }, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", - "type": "boolean" + "description": "the name of VPC the router belongs to", + "name": "vpcname", + "type": "string" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", + "description": "role of the domain router", + "name": "role", "type": "string" }, { - "description": "the name of the network", - "name": "name", - "type": "string" + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "the public IP address for the router", + "name": "publicip", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the guest netmask for the router", + "name": "guestnetmask", "type": "string" }, { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" + "description": "the id of the router", + "name": "id", + "type": "string" }, { - "description": "the details of the network", - "name": "details", - "type": "map" + "description": "the public netmask for the router", + "name": "publicnetmask", + "type": "string" }, { - "description": "the network's gateway", - "name": "gateway", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "the type of the network", - "name": "type", + "description": "the domain associated with the router", + "name": "domain", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", + "type": "string" }, { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "the hostname for the router", + "name": "hostname", "type": "string" }, { - "description": "the owner of the network", - "name": "account", + "description": "the name of the router", + "name": "name", "type": "string" }, { - "description": "the date this network was created", - "name": "created", - "type": "date" + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", + "type": "string" }, { - "description": "VPC the network belongs to", - "name": "vpcid", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", - "type": "boolean" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "The IPv4 routing type of network", - "name": "ip4routing", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", + "description": "the second DNS for the router", + "name": "dns2", "type": "string" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the list of services", - "name": "service", + "description": "the list of nics associated with the router", + "name": "nic", "response": [ { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", "type": "list" }, { - "description": "the service name", - "name": "name", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - } - ], + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the version of the code / software in the router", + "name": "softwareversion", + "type": "string" + } + ] + }, + { + "description": "list the vm nics IP to NIC", + "isasync": false, + "name": "listNics", + "params": [ + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the project name of the address", - "name": "project", - "type": "string" + "description": "list nic of the specific vm's network", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "true network requires restart", - "name": "restartrequired", - "type": "boolean" + "description": "the ID of the vm", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "The external id of the network", - "name": "externalid", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" - }, + "description": "the ID of the nic to list IPs", + "length": 255, + "name": "nicid", + "related": "listNics", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ { - "description": "the name of the zone the network belongs to", - "name": "zonename", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, + {}, { - "description": "ACL name associated with the VPC network", - "name": "aclname", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "the id of the network", - "name": "id", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", - "type": "string" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" - } - ] - }, - { - "description": "create Tungsten-Fabric public network", - "isasync": false, - "name": "createTungstenFabricPublicNetwork", - "params": [ + }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "MTU configured on the NIC", + "name": "mtu", "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": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, - {} - ] - }, - { - "description": "Lists supported methods of network isolation", - "isasync": false, - "name": "listNetworkIsolationMethods", - "params": [ { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", "type": "integer" - } - ], - "related": "", - "response": [ + }, { - "description": "Network isolation method name", - "name": "name", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the type of the nic", + "name": "type", "type": "string" }, - {}, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ], - "since": "4.2.0" - }, - { - "description": "Lists host HA resources", - "isasync": false, - "name": "listHostHAResources", - "params": [ + }, { - "description": "List by host ID", - "length": 255, - "name": "hostid", - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": false, - "type": "uuid" - } - ], - "related": "configureHAForHost,enableHAForHost,disableHAForHost,listHostHAProviders", - "response": [ + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, { - "description": "the HA state of the host", - "name": "hastate", - "type": "hastate" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "operation status", - "name": "status", - "type": "boolean" + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "if host HA is enabled for the host", - "name": "haenable", - "type": "boolean" + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" }, { - "description": "the host HA provider", - "name": "haprovider", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", "type": "integer" - } - ], - "since": "4.11" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + {} + ] }, { - "description": "list Tungsten-Fabric firewall policy", + "description": "Lists Bgp Peers.", "isasync": false, - "name": "listTungstenFabricFirewallPolicy", + "name": "listBgpPeers", "params": [ { - "description": "the uuid of Tungsten-Fabric firewall policy", + "description": "AS number of the Bgp Peer.", + "length": 255, + "name": "asnumber", + "required": false, + "type": "long" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", "length": 255, - "name": "firewallpolicyuuid", + "name": "keyword", "required": false, "type": "string" }, @@ -51579,101 +43223,124 @@ "type": "integer" }, { - "description": "the ID of zone", + "description": "UUID of the Bgp Peer.", + "length": 255, + "name": "id", + "related": "listBgpPeers,updateBgpPeer,releaseBgpPeer", + "required": false, + "type": "uuid" + }, + { + "description": "UUID of zone to which the Bgp Peer belongs to.", "length": 255, "name": "zoneid", - "related": "createZone,listZones", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "List by keyword", + "description": "project who which the Bgp Peer is dedicated to", "length": 255, - "name": "keyword", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric application policy set", + "description": "the account which the Bgp Peer is dedicated to. Must be used with the domainId parameter.", "length": 255, - "name": "applicationpolicysetuuid", + "name": "account", "required": false, "type": "string" }, { - "description": "", + "description": "Lists only dedicated or non-dedicated Bgp Peers. If not set, lists all dedicated and non-dedicated BGP peers the domain/account can access.", "length": 255, - "name": "pagesize", + "name": "isdedicated", "required": false, - "type": "integer" + "type": "boolean" + }, + { + "description": "the domain ID which the Bgp Peer is dedicated to.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" } ], - "related": "createTungstenFabricFirewallPolicy", + "related": "updateBgpPeer,releaseBgpPeer", "response": [ + {}, { - "description": "Tungsten-Fabric firewall policy name", - "name": "name", + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "date when this bgp peer was created.", + "name": "created", + "type": "date" }, { - "description": "list Tungsten-Fabric firewall rule", - "name": "firewallrule", - "type": "list" + "description": "the domain name of the bgp peer", + "name": "domain", + "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" }, { - "description": "Tungsten-Fabric provider zone name", + "description": "name of zone to which the bgp peer belongs to.", "name": "zonename", "type": "string" }, + {}, { - "description": "Tungsten-Fabric firewall policy uuid", - "name": "uuid", + "description": "id of the bgp peer", + "name": "id", + "type": "string" + }, + { + "description": "IPv6 address of bgp peer", + "name": "ip6address", + "type": "string" + }, + { + "description": "the account of the bgp peer", + "name": "account", + "type": "string" + }, + { + "description": "the project name of the bgp peer", + "name": "project", + "type": "string" + }, + { + "description": "IPv4 address of bgp peer", + "name": "ipaddress", "type": "string" }, - {}, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] - }, - { - "description": "Deletes a specified domain", - "isasync": true, - "name": "deleteDomain", - "params": [ + }, { - "description": "true if all domain resources (child domains, accounts) have to be cleaned up, false otherwise", - "length": 255, - "name": "cleanup", - "required": false, - "type": "boolean" + "description": "AS number of bgp peer", + "name": "asnumber", + "type": "long" }, { - "description": "ID of domain to delete", - "length": 255, - "name": "id", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the domain ID of the bgp peer", + "name": "domainid", + "type": "string" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "password of bgp peer", + "name": "password", "type": "string" }, { @@ -51682,277 +43349,311 @@ "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": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", + "type": "string" + } + ], + "since": "4.20.0" }, { - "description": "Migrate volume", - "isasync": true, - "name": "migrateVolume", + "description": "Create a new keypair and returns the private key", + "isasync": false, + "name": "createSSHKeyPair", "params": [ { - "description": "the ID of the volume", + "description": "an optional project for the ssh key", "length": 255, - "name": "volumeid", - "related": "createVolume,updateVolume,listVolumes,migrateVolume,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, "type": "uuid" }, { - "description": "if the volume should be live migrated when it is attached to a running vm", + "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "livemigrate", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "The new disk offering ID that replaces the current one used by the volume. This new disk offering is used to better reflect the new storage where the volume is going to be migrated to.", + "description": "Name of the keypair", "length": 255, - "name": "newdiskofferingid", - "related": "", - "required": false, - "type": "uuid" + "name": "name", + "required": true, + "type": "string" }, { - "description": "destination storage pool ID to migrate the volume to", + "description": "an optional account for the ssh key. Must be used with domainId.", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": true, - "type": "uuid" + "name": "account", + "required": false, + "type": "string" } ], - "related": "createVolume,updateVolume,listVolumes,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "", "response": [ { - "description": "ID of the disk offering", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "ID of the ssh keypair", + "name": "id", "type": "string" }, + {}, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "Private key", + "name": "privatekey", "type": "string" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the domain id of the keypair owner", + "name": "domainid", "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "the domain name of the keypair owner", + "name": "domain", "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" - }, - { - "description": "the path of the volume", - "name": "path", + "description": "Fingerprint of the public key", + "name": "fingerprint", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "the owner of the keypair", + "name": "account", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" - }, - { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" - }, - { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "Name of the keypair", + "name": "name", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" - }, - { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "the project id of the keypair owner", + "name": "projectid", + "type": "string" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "the project name of the keypair owner", + "name": "project", "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Creates an instant snapshot of a volume from existing vm snapshot.", + "isasync": true, + "name": "createSnapshotFromVMSnapshot", + "params": [ { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "The ID of the VM snapshot", + "length": 255, + "name": "vmsnapshotid", + "related": "listVMSnapshot,createVMSnapshot", + "required": true, + "type": "uuid" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" + "description": "The ID of the disk volume", + "length": 255, + "name": "volumeid", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "required": true, + "type": "uuid" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "the name of the snapshot", + "length": 255, + "name": "name", + "required": false, "type": "string" - }, + } + ], + "related": "copySnapshot,archiveSnapshot,revertSnapshot,listSnapshots", + "response": [ { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "type of the disk volume", + "name": "volumetype", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "state of the disk volume", + "name": "volumestate", + "type": "string" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "ID of the snapshot", + "name": "id", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "name": "state", + "type": "state" }, - {}, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "state of the snapshot on the datastore", + "name": "datastorestate", "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "path of the Domain the snapshot's account belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "name of the disk volume", + "description": "name of the snapshot", "name": "name", "type": "string" }, { - "description": "the status of the volume", - "name": "status", + "description": "the domain ID of the snapshot's account", + "name": "domainid", "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" - }, - { - "description": "the state of the disk volume", - "name": "state", + "description": "the project id of the snapshot", + "name": "projectid", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "download progress of a snapshot", + "name": "downloaddetails", + "type": "map" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "valid location types are primary and secondary.", + "name": "locationtype", + "type": "string" }, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "id of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "name of the datastore for the snapshot entry", + "name": "datastorename", "type": "string" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "virtual size of backedup snapshot on image store", + "name": "virtualsize", + "type": "long" }, { - "description": "shared or local storage", - "name": "storagetype", + "description": "valid types are hourly, daily, weekly, monthy, template, and none.", + "name": "intervaltype", "type": "string" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "the project name of the snapshot", + "name": "project", "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "name of the disk volume", + "name": "volumename", "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "ID of the datastore for the snapshot entry", + "name": "datastoreid", "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" + "description": " the date the snapshot was created", + "name": "created", + "type": "date" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { @@ -51961,163 +43662,212 @@ "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "type of the datastore for the snapshot entry", + "name": "datastoretype", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "id of the os on volume", + "name": "ostypeid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "display name of the os on volume", + "name": "osdisplayname", + "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "the account associated with the snapshot", + "name": "account", + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the domain name of the snapshot's account", + "name": "domain", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", - "type": "string" + "description": "physical size of backedup snapshot on image store", + "name": "physicalsize", + "type": "long" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, + {}, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", + "name": "revertable", + "type": "boolean" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the type of the snapshot", + "name": "snapshottype", "type": "string" + } + ], + "since": "4.10.0" + }, + { + "description": "Authorizes a particular egress rule for this security group", + "isasync": true, + "name": "authorizeSecurityGroupEgress", + "params": [ + { + "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter", + "length": 255, + "name": "securitygroupid", + "related": "createSecurityGroup,updateSecurityGroup", + "required": false, + "type": "uuid" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "The name of the security group. Mutually exclusive with securityGroupId parameter", + "length": 255, + "name": "securitygroupname", + "required": false, "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", - "type": "string" + "description": "type of the icmp message being sent", + "length": 255, + "name": "icmptype", + "required": false, + "type": "integer" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" + "description": "an optional project of the security group", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "name of the disk offering", - "name": "diskofferingname", - "type": "string" + "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", - "type": "string" + "description": "error code for this icmp message", + "length": 255, + "name": "icmpcode", + "required": false, + "type": "integer" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "start port for this egress rule", + "length": 255, + "name": "startport", + "required": false, + "type": "integer" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" + "description": "TCP is default. UDP is the other supported protocol", + "length": 255, + "name": "protocol", + "required": false, + "type": "string" }, - {}, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "end port for this egress rule", + "length": 255, + "name": "endport", + "required": false, + "type": "integer" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "the cidr list associated. Multiple entries must be separated by a single comma character (,).", + "length": 255, + "name": "cidrlist", + "required": false, + "type": "list" + }, + { + "description": "an optional account for the security group. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the list of resource tags associated", + "description": "user to security group mapping", + "length": 255, + "name": "usersecuritygrouplist", + "required": false, + "type": "map" + } + ], + "related": "authorizeSecurityGroupIngress", + "response": [ + { + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the account associated with the tag", - "name": "account", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -52128,87 +43878,31 @@ ], "type": "set" }, + {}, { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" - }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" - }, - { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - } - ], - "since": "3.0.0" - }, - { - "description": "create Tungsten-Fabric application policy set", - "isasync": true, - "name": "createTungstenFabricApplicationPolicySet", - "params": [ - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": true, - "type": "uuid" - }, - { - "description": "Tungsten-Fabric application policy set name", - "length": 255, - "name": "name", - "required": true, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "Tungsten-Fabric policy name", - "name": "name", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "list Tungsten-Fabric tag", - "name": "tag", - "type": "list" + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" }, - {}, { - "description": "Tungsten-Fabric application policy uuid", - "name": "uuid", + "description": "security group name", + "name": "securitygroupname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" }, { - "description": "list Tungsten-Fabric firewall policy", - "name": "firewallpolicy", - "type": "list" + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" }, { "description": "the current status of the latest async job acting on this object", @@ -52216,89 +43910,59 @@ "type": "integer" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" }, - {} - ] - }, - { - "description": "Deletes an existing Bgp Peer.", - "isasync": true, - "name": "deleteBgpPeer", - "params": [ - { - "description": "Id of the Bgp Peer", - "length": 255, - "name": "id", - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer", - "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", + "name": "jobid", + "type": "string" }, {}, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "account owning the security group rule", + "name": "account", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" } ], - "since": "4.20.0" + "since": "3.0.0" }, { - "description": "A command to list events.", + "description": "Lists storage pools.", "isasync": false, - "name": "listEvents", + "name": "listStoragePools", "params": [ { - "description": "the time the event was entered", - "length": 255, - "name": "entrytime", - "required": false, - "type": "integer" - }, - { - "description": "the event level (INFO, WARN, ERROR)", + "description": "the status of the storage pool", "length": 255, - "name": "level", + "name": "status", "required": false, "type": "string" }, { - "description": "List by keyword", + "description": "If true, lists the custom stats of the storage pool", "length": 255, - "name": "keyword", + "name": "storagecustomstats", "required": false, - "type": "string" + "since": "4.18.1", + "type": "boolean" }, { - "description": "the ID of the event", + "description": "list storage pools belongig to the specific cluster", "length": 255, - "name": "id", - "related": "listEvents", + "name": "clusterid", + "related": "addCluster,updateCluster", "required": false, "type": "uuid" }, @@ -52310,502 +43974,677 @@ "type": "integer" }, { - "description": "the duration of the event", + "description": "", "length": 255, - "name": "duration", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "true to list archived events otherwise false", - "length": 255, - "name": "archived", - "required": false, - "since": "4.19.0", - "type": "boolean" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "the Pod ID for the storage pool", "length": 255, - "name": "isrecursive", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "the scope of the storage pool", "length": 255, - "name": "account", + "name": "scope", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, "type": "string" }, { - "description": "the end date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")", + "description": "host ID of the storage pools", "length": 255, - "name": "enddate", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": false, - "type": "date" + "type": "uuid" }, { - "description": "the type of the resource associated with the event", + "description": "the storage pool path", "length": 255, - "name": "resourcetype", + "name": "path", "required": false, - "since": "4.17.0", "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the Zone ID for the storage pool", "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "the event type (see event types)", + "description": "List by keyword", "length": 255, - "name": "type", + "name": "keyword", "required": false, "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" - }, - { - "description": "the parent/start ID of the event, when provided this will list all the events with the start/parent ID including the parent event", + "description": "the ID of the storage pool", "length": 255, - "name": "startid", - "related": "listEvents", + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,listStoragePools,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, "type": "uuid" }, { - "description": "the start date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")", + "description": "the name of the storage pool", "length": 255, - "name": "startdate", + "name": "name", "required": false, - "type": "date" + "type": "string" }, { - "description": "the ID of the resource associated with the event", + "description": "the IP address for the storage pool", "length": 255, - "name": "resourceid", + "name": "ipaddress", "required": false, - "since": "4.17.0", "type": "string" } ], - "related": "", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "response": [ { - "description": "the name of the account's domain", - "name": "domain", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, { - "description": "the name of the resource", - "name": "resourcename", - "type": "string" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "whether the event has been archived or not", - "name": "archived", - "type": "boolean" + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", + "type": "string" }, { - "description": "a brief description of the event", - "name": "description", + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "the id of the resource", - "name": "resourceid", + "description": "the Pod ID of the storage pool", + "name": "podid", "type": "string" }, { - "description": "whether the event is parented", - "name": "parentid", + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, { - "description": "the date the event was created", - "name": "created", - "type": "date" + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", + "type": "boolean" }, { - "description": "path of the Domain the account's domain belongs to", - "name": "domainpath", - "type": "string" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "the name of the user who performed the action (can be different from the account if an admin is performing an action for a user, e.g. starting/stopping a user's virtual machine)", - "name": "username", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the Zone ID of the storage pool", + "name": "zoneid", "type": "string" }, { - "description": "the id of the account's domain", - "name": "domainid", + "description": "Storage provider for this pool", + "name": "provider", "type": "string" }, - {}, { - "description": "the event level (INFO, WARN, ERROR)", - "name": "level", + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "the type of the resource", - "name": "resourcetype", + "description": "the name of the storage pool", + "name": "name", "type": "string" }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the state of the event", + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" + }, + {}, + { + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" + }, + { + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" + }, + { + "description": "the storage pool path", + "name": "path", + "type": "string" + }, + { + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the scope of the storage pool", + "name": "scope", + "type": "string" + }, + { + "description": "the state of the storage pool", "name": "state", - "type": "state" + "type": "storagepoolstatus" }, { - "description": "the account name for the account that owns the object being acted on in the event (e.g. the owner of the virtual machine, ip address, or security group)", - "name": "account", + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" + }, + { + "description": "the storage pool type", + "name": "type", "type": "string" }, + { + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" + }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, { - "description": "the ID of the event", - "name": "id", + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "the type of the event (see event types)", - "name": "type", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" + }, + { + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" + }, + { + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" } ] }, { - "description": "Lists HA providers", + "description": "Updates a hypervisor capabilities.", "isasync": false, - "name": "listHostHAProviders", + "name": "updateHypervisorCapabilities", "params": [ { - "description": "Hypervisor type of the resource", + "description": "the maximum number of Data Volumes that can be attached to a VM for this hypervisor.", + "length": 255, + "name": "maxdatavolumeslimit", + "required": false, + "since": "4.16.0", + "type": "integer" + }, + { + "description": "set true to enable storage motion support for this hypervisor", + "length": 255, + "name": "storagemotionenabled", + "required": false, + "since": "4.16.0", + "type": "boolean" + }, + { + "description": "the hypervisor version for which the hypervisor capabilities are to be updated", + "length": 255, + "name": "hypervisorversion", + "required": false, + "since": "4.19.1", + "type": "string" + }, + { + "description": "ID of the hypervisor capability", + "length": 255, + "name": "id", + "related": "listHypervisorCapabilities,updateHypervisorCapabilities", + "required": false, + "type": "uuid" + }, + { + "description": "the maximum number of the hypervisor hosts per cluster ", + "length": 255, + "name": "maxhostspercluster", + "required": false, + "since": "4.16.0", + "type": "integer" + }, + { + "description": "set true to enable VM snapshots for this hypervisor", + "length": 255, + "name": "vmsnapshotenabled", + "required": false, + "since": "4.16.0", + "type": "boolean" + }, + { + "description": "the hypervisor for which the hypervisor capabilities are to be updated", "length": 255, "name": "hypervisor", - "required": true, + "required": false, + "since": "4.19.1", "type": "string" + }, + { + "description": "the max number of Guest VMs per host for this hypervisor.", + "length": 255, + "name": "maxguestslimit", + "required": false, + "type": "long" + }, + { + "description": "set true to enable security group for this hypervisor.", + "length": 255, + "name": "securitygroupenabled", + "required": false, + "type": "boolean" } ], - "related": "configureHAForHost,enableHAForHost,disableHAForHost", + "related": "listHypervisorCapabilities", "response": [ { - "description": "the HA state of the host", - "name": "hastate", - "type": "hastate" + "description": "true if security group is supported", + "name": "securitygroupenabled", + "type": "boolean" + }, + { + "description": "the hypervisor type", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the hypervisor version", + "name": "hypervisorversion", + "type": "string" }, + { + "description": "the maximum number of Data Volumes that can be attached for this hypervisor", + "name": "maxdatavolumeslimit", + "type": "integer" + }, + {}, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", - "type": "string" + "description": "the maximum number of guest vms recommended for this hypervisor", + "name": "maxguestslimit", + "type": "long" }, { - "description": "operation status", - "name": "status", - "type": "boolean" + "description": "the maximum number of Hosts per cluster for this hypervisor", + "name": "maxhostspercluster", + "type": "integer" }, { - "description": "the host HA provider", - "name": "haprovider", + "description": "the ID of the hypervisor capabilities row", + "name": "id", "type": "string" }, - {}, - {}, + { + "description": "true if storage motion is supported", + "name": "storagemotionenabled", + "type": "boolean" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "if host HA is enabled for the host", - "name": "haenable", + "description": "true if VM snapshots are enabled for this hypervisor", + "name": "vmsnapshotenabled", "type": "boolean" } ], - "since": "4.11" + "since": "3.0.0" }, { - "description": "Creates resource tag(s)", - "isasync": true, - "name": "createTags", + "description": "Find hosts suitable for migrating a virtual machine.", + "isasync": false, + "name": "findHostsForMigration", "params": [ { - "description": "list of resources to create the tags for", + "description": "", "length": 255, - "name": "resourceids", - "required": true, - "type": "list" + "name": "page", + "required": false, + "type": "integer" }, { - "description": "type of the resource", + "description": "List by keyword", "length": 255, - "name": "resourcetype", - "required": true, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "Map of tags (key/value pairs)", + "description": "find hosts to which this VM can be migrated and flag the hosts with enough CPU/RAM to host the VM", "length": 255, - "name": "tags", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, - "type": "map" + "type": "uuid" }, { - "description": "identifies client specific tag. When the value is not null, the tag can't be used by cloudStack code internally", + "description": "", "length": 255, - "name": "customer", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" } ], + "related": "", "response": [ + { + "description": "the OS category ID of the host", + "name": "oscategoryid", + "type": "string" + }, + { + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" + }, + { + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", + "type": "string" + }, + { + "description": "the amount of the host's CPU currently used", + "name": "cpuused", + "type": "string" + }, + { + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" + }, + { + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" + }, + { + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" + }, + { + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" + }, {}, + { + "description": "the state of the host", + "name": "state", + "type": "status" + }, {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" + }, + { + "description": "the host type", + "name": "type", + "type": "type" + }, + { + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", + "type": "string" + }, + { + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", + "type": "string" + }, + { + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", + "type": "long" + }, + { + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", "type": "boolean" }, + { + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" + }, { "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" - } - ], - "since": "4.0.0" - }, - { - "description": "Create an Internal Load Balancer element.", - "isasync": true, - "name": "createInternalLoadBalancerElement", - "params": [ + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" + }, { - "description": "the network service provider ID of the internal load balancer element", - "length": 255, - "name": "nspid", - "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", - "required": true, - "type": "uuid" - } - ], - "related": "configureInternalLoadBalancerElement,listInternalLoadBalancerElements", - "response": [ + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, { - "description": "Enabled/Disabled the element", - "name": "enabled", + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" + }, + { + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", "type": "boolean" }, - {}, { - "description": "the physical network service provider id of the element", - "name": "nspid", + "description": "true if migrating a vm to this host requires storage motion, false otherwise", + "name": "requiresStorageMotion", + "type": "boolean" + }, + { + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the IP address of the host", + "name": "ipaddress", + "type": "string" }, - {}, { - "description": "the id of the internal load balancer element", - "name": "id", + "description": "the cpu average load on the host", + "name": "averageload", + "type": "long" + }, + { + "description": "the Pod ID of the host", + "name": "podid", "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Reset api count", - "isasync": false, - "name": "resetApiLimit", - "params": [ + }, { - "description": "the ID of the account whose limit to be reset", - "length": 255, - "name": "account", - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, - "type": "uuid" - } - ], - "response": [ - {}, + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", + "type": "string" + }, + { + "description": "the OS category name of the host", + "name": "oscategoryname", + "type": "string" + }, + { + "description": "the name of the host", + "name": "name", + "type": "string" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor ", + "name": "memorywithoverprovisioning", + "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Deletes a VLAN IP range.", - "isasync": false, - "name": "deleteVlanIpRange", - "params": [ + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor ", + "name": "cpuwithoverprovisioning", + "type": "string" + }, { - "description": "the id of the VLAN IP range", - "length": 255, - "name": "id", - "related": "createVlanIpRange,updateVlanIpRange,dedicatePublicIpRange", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" + }, + { + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the host version", + "name": "version", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Generates an alert", - "isasync": true, - "name": "generateAlert", - "params": [ + "description": "the hypervisor version", + "name": "hypervisorversion", + "type": "string" + }, { - "description": "Alert description", - "length": 999, - "name": "description", - "required": true, + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, { - "description": "Name of the alert", - "length": 255, - "name": "name", - "required": true, + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "Type of the alert", - "length": 255, - "name": "type", - "required": true, - "type": "short" + "description": "the ID of the host", + "name": "id", + "type": "string" }, { - "description": "Pod id for which alert is generated", - "length": 255, - "name": "podid", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", + "type": "string" }, { - "description": "Zone id for which alert is generated", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": false, - "type": "uuid" - } - ], - "response": [ + "description": "the management server ID of the host", + "name": "managementserverid", + "type": "long" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Pod name of the host", + "name": "podname", "type": "string" }, { @@ -52813,1403 +44652,1631 @@ "name": "jobstatus", "type": "integer" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {} - ], - "since": "4.3" + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", + "type": "string" + } + ] }, { - "description": "(Deprecated, use addLdapConfiguration) Configure the LDAP context for this site.", + "description": "Lists objects at specified path on an image store.", "isasync": false, - "name": "ldapConfig", + "name": "listImageStoreObjects", "params": [ { - "description": "Enter the path to trust certificates store.", + "description": "List by keyword", "length": 255, - "name": "truststore", + "name": "keyword", "required": false, "type": "string" }, { - "description": "Hostname or ip address of the ldap server eg: my.ldap.com", + "description": "path to list on image store", "length": 255, - "name": "hostname", + "name": "path", "required": false, "type": "string" }, { - "description": "Specify the LDAP port if required, default is 389.", + "description": "", "length": 255, - "name": "port", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "If true return current LDAP configuration", + "description": "", "length": 255, - "name": "listall", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com.", + "description": "id of the image store", "length": 255, - "name": "searchbase", - "required": false, - "type": "string" - }, + "name": "id", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, { - "description": "You specify a query filter here, which narrows down the users, who can be part of this domain.", - "length": 255, - "name": "queryfilter", - "required": false, - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Specify the distinguished name of a user with the search permission on the directory.", - "length": 255, - "name": "binddn", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Enter the password for trust store.", - "length": 255, - "name": "truststorepass", - "required": false, + "description": "Volume ID associated with the data store object.", + "name": "volumeid", "type": "string" }, { - "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL.", - "length": 255, - "name": "ssl", - "required": false, - "type": "boolean" - }, - { - "description": "Enter the password.", - "length": 255, - "name": "bindpass", - "required": false, - "type": "string" - } - ], - "related": "ldapRemove", - "response": [ - { - "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL", - "name": "ssl", + "description": "Snapshot Name associated with the data store object.", + "name": "snapshotname", "type": "string" }, { - "description": "Specify the distinguished name of a user with the search permission on the directory", - "name": "binddn", + "description": "Volume Name associated with the data store object.", + "name": "volumename", "type": "string" }, { - "description": "Specify the LDAP port if required, default is 389", - "name": "port", - "type": "string" + "description": "Last modified date of the file/directory.", + "name": "lastupdated", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Template ID associated with the data store object.", + "name": "templateid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Size is in Bytes.", + "name": "size", + "type": "long" }, + {}, { - "description": "You specify a query filter here, which narrows down the users, who can be part of this domain", - "name": "queryfilter", + "description": "Snapshot ID associated with the data store object.", + "name": "snapshotid", "type": "string" }, { - "description": "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com", - "name": "searchbase", + "description": "Format of template associated with the data store object.", + "name": "format", "type": "string" }, - {}, { - "description": "DN password", - "name": "bindpass", - "type": "string" + "description": "Is it a directory.", + "name": "isdirectory", + "type": "boolean" }, { - "description": "Hostname or ip address of the ldap server eg: my.ldap.com", - "name": "hostname", + "description": "Name of the data store object.", + "name": "name", "type": "string" }, - {} + { + "description": "Template Name associated with the data store object.", + "name": "templatename", + "type": "string" + } ], - "since": "3.0.0" + "since": "4.19.0" }, { - "description": "List vSphere storage policies", + "description": "Return true if the specified account is allowed to create offerings with tags.", "isasync": false, - "name": "listVsphereStoragePolicies", + "name": "isAccountAllowedToCreateOfferingsWithTags", "params": [ { - "description": "ID of the zone", + "description": "Account UUID", "length": 255, - "name": "zoneid", - "related": "createZone,listZones", + "name": "id", + "related": "createAccount,disableAccount,enableAccount,updateAccount,listAccounts,listAccounts", "required": false, "type": "uuid" } ], "related": "", "response": [ - { - "description": "the ID of the Storage Policy", - "name": "id", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the ID of the Zone", - "name": "zoneid", - "type": "string" + "description": "is domain admin allowed to create offerings with tags", + "name": "isallowed", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - { - "description": "the identifier of the Storage Policy in vSphere DataCenter", - "name": "policyid", - "type": "string" - }, - { - "description": "the description of the Storage Policy", - "name": "description", - "type": "string" - }, - { - "description": "the name of the Storage Policy", - "name": "name", - "type": "string" - }, {}, {} ] }, { - "description": "Deletes a port forwarding rule", - "isasync": true, - "name": "deletePortForwardingRule", + "description": "Dedicates a guest vlan range to an account", + "isasync": false, + "name": "dedicateGuestVlanRange", "params": [ { - "description": "the ID of the port forwarding rule", + "description": "domain ID of the account owning a VLAN", "length": 255, - "name": "id", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", - "required": true, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {}, - { - "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": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ] - }, - { - "description": "moves a vpc to another physical network", - "isasync": true, - "name": "migrateVPC", - "params": [ - { - "description": "true if previous network migration cmd failed", + "description": "guest vlan range to be dedicated", "length": 255, - "name": "resume", - "required": false, - "type": "boolean" + "name": "vlanrange", + "required": true, + "type": "string" }, { - "description": "the ID of the vpc", + "description": "physical network ID of the vlan", "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": true, "type": "uuid" }, { - "description": "network offering ids for each network in the vpc. Example: tierNetworkOfferings[0].networkId=networkId1&tierNetworkOfferings[0].networkOfferingId=newNetworkofferingId1&tierNetworkOfferings[1].networkId=networkId2&tierNetworkOfferings[1].networkOfferingId=newNetworkofferingId2", + "description": "project who will own the VLAN", "length": 255, - "name": "tiernetworkofferings", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "vpc offering ID", + "description": "account who will own the VLAN", "length": 255, - "name": "vpcofferingid", - "related": "updateVPCOffering,listVPCOfferings", - "required": true, - "type": "uuid" + "name": "account", + "required": false, + "type": "string" } ], - "related": "listVPCs,createVPC,listVPCs,updateVPC", + "related": "listDedicatedGuestVlanRanges", "response": [ { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" - }, - { - "description": "The BGP peers for the VPC", - "name": "bgppeers", - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the project name of the VPC", - "name": "project", + "description": "the domain name of the guest VLAN range", + "name": "domain", "type": "string" }, { - "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", - "name": "distributedvpcrouter", - "type": "boolean" + "description": "the zone of the guest vlan range", + "name": "zoneid", + "type": "long" }, { - "description": "the cidr the VPC", - "name": "cidr", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the zone the VPC belongs to", - "name": "zonename", + "description": "the account of the guest VLAN range", + "name": "account", "type": "string" }, { - "description": "the project id of the VPC", - "name": "projectid", + "description": "the guest VLAN range", + "name": "guestvlanrange", "type": "string" }, { - "description": "the first IPv6 DNS for the VPC", - "name": "ip6dns1", - "type": "string" + "description": "the physical network of the guest vlan range", + "name": "physicalnetworkid", + "type": "long" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the ID of the guest VLAN range", + "name": "id", "type": "string" }, - { - "description": "true VPC requires restart", - "name": "restartrequired", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, {}, { - "description": "the date this VPC was created", - "name": "created", - "type": "date" - }, - { - "description": "an alternate display text of the VPC.", - "name": "displaytext", + "description": "the project id of the guest vlan range", + "name": "projectid", "type": "string" }, { - "description": "is vpc for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the id of the VPC", - "name": "id", + "description": "the project name of the guest vlan range", + "name": "project", "type": "string" }, { - "description": "The IPv4 routing mode of VPC", - "name": "ip4routing", + "description": "path of the domain to which the guest VLAN range belongs", + "name": "domainpath", "type": "string" }, + {}, { - "description": "the network domain of the VPC", - "name": "networkdomain", + "description": "the domain ID of the guest VLAN range", + "name": "domainid", "type": "string" + } + ] + }, + { + "description": "Adds VM to specified network by creating a NIC", + "isasync": true, + "name": "addNicToVirtualMachine", + "params": [ + { + "description": "Network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" }, { - "description": "if this VPC has redundant router", - "name": "redundantvpcrouter", - "type": "boolean" + "description": "Virtual Machine ID", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the domain id of the VPC owner", - "name": "domainid", + "description": "Mac Address for the new network", + "length": 255, + "name": "macaddress", + "required": false, "type": "string" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", - "type": "string" + "description": "DHCP options which are passed to the nic Example: dhcpoptions[0].dhcp:114=url&dhcpoptions[0].dhcp:66=www.test.com", + "length": 255, + "name": "dhcpoptions", + "required": false, + "type": "map" }, { - "description": "the owner of the VPC", - "name": "account", + "description": "IP Address for the new network", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" - }, + } + ], + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ { - "description": "zone id of the vpc", - "name": "zoneid", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the second IPv6 DNS for the VPC", - "name": "ip6dns2", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, + {}, { - "description": "the list of networks belongign to the VPC", - "name": "network", - "type": "list" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "vpc offering id the VPC is created from", - "name": "vpcofferingid", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "vpc offering name the VPC is created from", - "name": "vpcofferingname", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "MTU configured on the public interfaces of the VPC VR", - "name": "publicmtu", - "type": "integer" - }, - { - "description": "the first IPv4 DNS for the VPC", - "name": "dns1", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, - {}, { - "description": "state of the VPC. Can be Inactive/Enabled", + "description": "the state of the virtual machine", "name": "state", "type": "string" }, { - "description": "the second IPv4 DNS for the VPC", - "name": "dns2", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "The routes for the VPC to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" - }, - { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the list of supported services", - "name": "service", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - } - ], - "type": "list" + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" }, { - "description": "the service name", - "name": "name", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - } - ], + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", "type": "list" - } - ], - "type": "list" - }, - { - "description": "the domain name of the owner", - "name": "domain", - "type": "string" - }, - { - "description": "the list of resource tags associated with the project", - "name": "tags", - "response": [ + }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" } ], - "type": "list" - }, - { - "description": "the name of the VPC", - "name": "name", - "type": "string" + "type": "set" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "true if VPC is region level", - "name": "regionlevelvpc", - "type": "boolean" - } - ], - "since": "4.11.0" - }, - { - "description": "Deletes a global load balancer rule.", - "isasync": true, - "name": "deleteGlobalLoadBalancerRule", - "params": [ - { - "description": "the ID of the global load balancer rule", - "length": 255, - "name": "id", - "related": "listGlobalLoadBalancerRules,updateGlobalLoadBalancerRule", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the virtual machine", + "name": "name", "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": "update an annotation visibility.", - "isasync": false, - "name": "updateAnnotationVisibility", - "params": [ - { - "description": "the annotation is visible for admins only", - "length": 255, - "name": "adminsonly", - "required": true, - "type": "boolean" - }, - { - "description": "the id of the annotation", - "length": 255, - "name": "id", - "required": true, - "type": "string" - } - ], - "related": "addAnnotation,listAnnotations,removeAnnotation", - "response": [ - { - "description": "the contents of the annotation", - "name": "annotation", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the (uu)id of the annotation", - "name": "id", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, - {}, { - "description": "The username of the user that entered the annotation", - "name": "username", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "True if the annotation is available for admins only", - "name": "adminsonly", - "type": "boolean" - }, - { - "description": "the type of the annotated entity", - "name": "entitytype", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the creation timestamp for this annotation", - "name": "created", - "type": "date" + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" }, { - "description": "the removal timestamp for this annotation", - "name": "removed", - "type": "date" + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, - {}, { - "description": "The (uu)id of the user that entered the annotation", - "name": "userid", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "the name of the entity to which this annotation pertains", - "name": "entityname", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the (uu)id of the entity to which this annotation pertains", - "name": "entityid", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" - } - ], - "since": "4.16" - }, - { - "description": "Updates a configuration.", - "isasync": false, - "name": "updateConfiguration", - "params": [ + }, { - "description": "the name of the configuration", - "length": 255, - "name": "name", - "required": true, + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the ID of the Image Store to update the parameter value for corresponding image store", - "length": 255, - "name": "imagestoreuuid", - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore,addImageStoreS3,listImageStores", - "required": false, - "type": "uuid" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the ID of the Zone to update the parameter value for corresponding zone", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": false, - "type": "uuid" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" + "description": "the password (if exists) of the virtual machine", + "name": "password", + "type": "string" }, { - "description": "the value of the configuration", - "length": 4096, - "name": "value", - "required": false, + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the ID of the Cluster to update the parameter value for corresponding cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "the ID of the Domain to update the parameter value for corresponding domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the ID of the Account to update the parameter value for corresponding account", - "length": 255, - "name": "accountid", - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, - "type": "uuid" - } - ], - "related": "listConfigurations", - "response": [ - { - "description": "the component of the configuration", - "name": "component", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the category of the configuration", - "name": "category", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the value of the configuration", - "name": "value", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, - {}, { - "description": "the display text of the configuration", - "name": "displaytext", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated", - "name": "scope", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "true if the configuration is dynamic", - "name": "isdynamic", - "type": "boolean" - }, - { - "description": "the default value of the configuration", - "name": "defaultvalue", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the group of the configuration", - "name": "group", - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the name of the configuration", - "name": "name", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the possible options of the configuration value", - "name": "options", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the description of the configuration", - "name": "description", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the name of the parent configuration", - "name": "parent", - "type": "string" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, + {}, { - "description": "the type of the configuration value", - "name": "type", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the subgroup of the configuration", - "name": "subgroup", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the value of the configuration", - "name": "id", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, - {} - ] - }, - { - "description": "Configures HA for a host", - "isasync": true, - "name": "configureHAForHost", - "params": [ { - "description": "HA provider", - "length": 255, - "name": "provider", - "required": true, - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "ID of the host", - "length": 255, - "name": "hostid", - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" - } - ], - "related": "enableHAForHost,disableHAForHost", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the HA state of the host", - "name": "hastate", - "type": "hastate" - }, { - "description": "operation status", - "name": "status", - "type": "boolean" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "if host HA is enabled for the host", - "name": "haenable", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the host HA provider", - "name": "haprovider", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, - {} - ], - "since": "4.11" - }, - { - "description": "Lists volume stats", - "isasync": false, - "name": "listVolumesUsageHistory", - "params": [ { - "description": "end date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the IDs of the volumes, mutually exclusive with id.", - "length": 255, - "name": "ids", - "related": "migrateSystemVm,startSystemVm,changeServiceForSystemVm", - "required": false, - "type": "list" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" }, { - "description": "start date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, + "description": "the date when this virtual machine was created", + "name": "created", "type": "date" }, { - "description": "the ID of the volume.", - "length": 255, - "name": "id", - "related": "createVolume,updateVolume,listVolumes,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": false, - "type": "uuid" - }, - { - "description": "name of the volume (a substring match is made against the parameter value returning the data for all matching Volumes).", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the ID of the volume", - "name": "id", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, - {}, - { - "description": "the list of VM stats", - "name": "stats", - "type": "list" - }, - {}, { - "description": "the name of the volume", - "name": "name", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.18.0" - }, - { - "description": "Dedicates a Public IP range to an account", - "isasync": false, - "name": "dedicatePublicIpRange", - "params": [ - { - "description": "account who will own the VLAN", - "length": 255, - "name": "account", - "required": false, + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "project who will own the VLAN", - "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": false, - "type": "uuid" + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" }, { - "description": "the id of the VLAN IP range", - "length": 255, - "name": "id", - "related": "createVlanIpRange,updateVlanIpRange,dedicatePublicIpRange", - "required": true, - "type": "uuid" + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" }, { - "description": "domain ID of the account owning a VLAN", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": true, - "type": "uuid" - } - ], - "related": "createVlanIpRange,updateVlanIpRange", - "response": [ - { - "description": "the netmask of the VLAN IP range", - "name": "netmask", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "indicates whether IP range is dedicated to NSX resources or not", - "name": "fornsx", - "type": "boolean" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + } + ], + "type": "set" }, + {}, { - "description": "the domain name of the VLAN IP range", - "name": "domain", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the end ip of the VLAN IP range", - "name": "endip", - "type": "string" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "the gateway of the VLAN IP range", - "name": "gateway", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the Pod ID for the VLAN IP range", - "name": "podid", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the Pod name for the VLAN IP range", - "name": "podname", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the cidr of the VLAN IP range", - "name": "cidr", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the start ip of the VLAN IP range", - "name": "startip", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the ID of the VLAN IP range", - "name": "id", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "indicates whether VLAN IP range is dedicated to system vms or not", - "name": "forsystemvms", - "type": "boolean" + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" }, { - "description": "the project id of the vlan range", - "name": "projectid", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the Zone ID of the VLAN IP range", - "name": "zoneid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the domain ID of the VLAN IP range", - "name": "domainid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the network id of vlan range", - "name": "networkid", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "path of the domain to which the VLAN IP range belongs", - "name": "domainpath", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the end ipv6 of the VLAN IP range", - "name": "endipv6", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the account of the VLAN IP range", - "name": "account", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the description of the VLAN IP range", - "name": "description", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the project name of the vlan range", - "name": "project", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the virtual network for the VLAN IP range", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "the start ipv6 of the VLAN IP range", - "name": "startipv6", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" - }, - {} + } ] }, { - "description": "Deletes an empty Bucket.", + "description": "Lists all static routes", "isasync": false, - "name": "deleteBucket", + "name": "listStaticRoutes", "params": [ { - "description": "The ID of the Bucket", + "description": "list static routes by vpc id", "length": 255, - "name": "id", - "related": "createBucket,listBuckets", - "required": true, + "name": "vpcid", + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, "type": "uuid" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "list static routes by state", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, - {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "list static routes by gateway id", + "length": 255, + "name": "gatewayid", + "related": "createPrivateGateway,createPrivateGateway,listPrivateGateways", + "required": false, + "type": "uuid" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" - } - ], - "since": "4.19.0" - }, - { - "description": "Adds API permissions to a project role", - "isasync": false, - "name": "createProjectRolePermission", - "params": [ + }, { - "description": "The API name or wildcard rule such as list*", + "description": "", "length": 255, - "name": "rule", - "required": true, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "ID of project where project role permission is to be created", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": true, + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, "type": "uuid" }, { - "description": "The rule permission, allow or deny. Default: deny.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "permission", - "required": true, - "type": "string" + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "The description of the role permission", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "description", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "ID of the project role", + "description": "list static route by id", "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", - "required": true, + "name": "id", + "related": "listStaticRoutes", + "required": false, "type": "uuid" } ], - "related": "listProjectRolePermissions", + "related": "", "response": [ - {}, { - "description": "the name of the project role to which the role permission belongs", - "name": "projectrolename", + "description": "the ID of static route", + "name": "id", "type": "string" }, { - "description": "the description of the role permission", - "name": "description", + "description": "the project id of the static route", + "name": "projectid", "type": "string" }, { - "description": "the api name or wildcard rule", - "name": "rule", + "description": "the domain associated with the static route", + "name": "domain", "type": "string" }, - {}, { - "description": "the ID of the project role permission", - "name": "id", + "description": "VPC the static route belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the ID of the project", - "name": "projectid", + "description": "the ID of the domain associated with the static route", + "name": "domainid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account associated with the static route", + "name": "account", + "type": "string" + }, + { + "description": "static route CIDR", + "name": "cidr", "type": "string" }, { - "description": "the ID of the project role to which the role permission belongs", - "name": "projectroleid", + "description": "the list of resource tags associated with static route", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "VPC gateway the route is created for", + "name": "gatewayid", "type": "string" }, { - "description": "the permission type of the api name or wildcard rule, allow/deny", - "name": "permission", + "description": "the domain path associated with the static route", + "name": "domainpath", "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ], - "since": "4.15.0" - }, - { - "description": "Create a console endpoint to connect to a VM console", - "isasync": false, - "name": "createConsoleEndpoint", - "params": [ - { - "description": "ID of the VM", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" - }, - { - "description": "(optional) extra security token, valid when the extra validation is enabled", - "length": 255, - "name": "token", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "details in case of an error", - "name": "details", - "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -54217,1244 +46284,852 @@ "type": "string" }, { - "description": "true if the console endpoint is generated properly", - "name": "success", - "type": "boolean" - }, - { - "description": "the console websocket options", - "name": "websocket", - "type": "consoleendpointwebsocketresponse" - }, - { - "description": "the console url", - "name": "url", + "description": "the state of the static route", + "name": "state", "type": "string" }, {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name of the static route", + "name": "project", + "type": "string" } - ], - "since": "4.18.0" + ] }, { - "description": "Updates a project role permission and/or order", + "description": "Lists all public ip addresses", "isasync": false, - "name": "updateProjectRolePermission", + "name": "listPublicIpAddresses", "params": [ { - "description": "The parent role permission uuid, use 0 to move this rule at the top of the list", + "description": "limits search results to allocated public IP addresses", "length": 255, - "name": "ruleorder", - "related": "listProjectRolePermissions", + "name": "allocatedonly", "required": false, - "type": "list" + "type": "boolean" }, { - "description": "ID of the project role", + "description": "lists IP address by ID", "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", - "required": true, + "name": "id", + "related": "associateIpAddress,listPublicIpAddresses,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": false, "type": "uuid" }, { - "description": "ID of project where project role permission is to be updated", + "description": "the virtual network for the IP address", "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": true, - "type": "uuid" + "name": "forvirtualnetwork", + "required": false, + "type": "boolean" }, { - "description": "Rule permission, can be: allow or deny", + "description": "lists all public IP addresses by zone ID", "length": 255, - "name": "permission", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Project Role permission rule id", + "description": "lists all public IP addresses by source network ID", "length": 255, - "name": "projectrolepermissionid", - "related": "listProjectRolePermissions", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, + "since": "4.13.0", "type": "uuid" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "list only source NAT IP addresses", + "length": 255, + "name": "issourcenat", + "required": false, + "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, - {} - ], - "since": "4.15.0" - }, - { - "description": "Adds user to a project", - "isasync": true, - "name": "addUserToProject", - "params": [ { - "description": "ID of the project role", + "description": "lists the specified IP address", "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", + "name": "ipaddress", + "required": false, + "type": "string" + }, + { + "description": "lists all public IP addresses associated to the network specified", + "length": 255, + "name": "associatednetworkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" }, { - "description": "Project role type to be assigned to the user - Admin/Regular", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "roletype", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "email ID of user to which invitation to the project is going to be sent", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "email", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Name of the user to be added to the project", + "description": "true if range is dedicated for system VMs", "length": 255, - "name": "username", - "required": true, - "type": "string" + "name": "forsystemvms", + "required": false, + "since": "4.20.0", + "type": "boolean" }, { - "description": "ID of the project to add the user to", + "description": "List IPs belonging to the VPC", "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": true, + "name": "vpcid", + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, "type": "uuid" - } - ], - "response": [ + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "lists all public IP addresses by VLAN ID", + "length": 255, + "name": "vlanid", + "related": "createVlanIpRange,updateVlanIpRange,listVlanIpRanges,dedicatePublicIpRange", + "required": false, + "type": "uuid" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "makes the API's response contains only the resource count", + "length": 255, + "name": "retrieveonlyresourcecount", + "required": false, "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "lists all public IP addresses by state", + "length": 255, + "name": "state", + "required": false, "type": "string" - } - ], - "since": "4.14" - }, - { - "description": "Disables HA cluster-wide", - "isasync": true, - "name": "disableHAForCluster", - "params": [ + }, { - "description": "ID of the cluster", + "description": "", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "name": "page", + "required": false, "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "list only IPs used for load balancing", + "length": 255, + "name": "forloadbalancing", + "required": false, "type": "boolean" - } - ], - "since": "4.11" - }, - { - "description": "delete Tungsten-Fabric firewall policy", - "isasync": true, - "name": "deleteTungstenFabricFirewallPolicy", - "params": [ + }, { - "description": "the uuid of Tungsten-Fabric firewall policy", + "description": "list only static NAT IP addresses", "length": 255, - "name": "firewallpolicyuuid", - "required": true, - "type": "string" + "name": "isstaticnat", + "required": false, + "type": "boolean" }, { - "description": "the ID of zone", + "description": "lists all public IP addresses by physical network ID", "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": true, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": false, "type": "uuid" + }, + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" } ], + "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", "response": [ - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "virtual machine id the ip address is assigned to", + "name": "virtualmachineid", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the Network associated with the IP address", + "name": "associatednetworkname", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "VPC name the ip belongs to", + "name": "vpcname", + "type": "string" }, + {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", + "name": "vmipaddress", "type": "string" - } - ] - }, - { - "description": "Recovers a virtual machine.", - "isasync": false, - "name": "recoverVirtualMachine", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "assignVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "response": [ - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", + "name": "purpose", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "public IP address id", + "name": "id", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" + "description": "date the public IP address was acquired", + "name": "allocated", + "type": "date" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the domain the public IP address is associated with", + "name": "domain", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "is public IP portable across the zones", + "name": "isportable", + "type": "boolean" + }, + { + "description": "the virtual network for the IP address", + "name": "forvirtualnetwork", "type": "boolean" }, + { + "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", + "name": "state", + "type": "string" + }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" + "description": "true if this ip is for static nat, false otherwise", + "name": "isstaticnat", + "type": "boolean" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the domain ID the public IP address is associated with", + "name": "domainid", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", + "name": "vlanid", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", + "description": "the list of resource tags associated with ip address", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], "type": "list" }, - {}, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the name of the Network where ip belongs to", + "name": "networkname", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the ID of the Network where ip belongs to", + "name": "networkid", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", + "name": "issystem", + "type": "boolean" + }, + { + "description": "VPC id the ip belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "path of the domain to which the public IP address belongs", + "name": "domainpath", + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", + "name": "hasrules", "type": "boolean" }, + {}, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "true if range is dedicated for System VMs", + "name": "forsystemvms", + "type": "boolean" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "virtual machine type the ip address is assigned to", + "name": "virtualmachinetype", "type": "string" }, - {}, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the name of the zone the public IP address belongs to", + "name": "zonename", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "virtual machine name the ip address is assigned to", + "name": "virtualmachinename", + "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the ID of the zone the public IP address belongs to", + "name": "zoneid", + "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the account the public IP address is associated with", + "name": "account", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the ID of the Network associated with the IP address", + "name": "associatednetworkid", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the VLAN associated with the IP address", + "name": "vlanname", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "true if the IP address is a source nat address, false otherwise", + "name": "issourcenat", + "type": "boolean" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "is public ip for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "public IP address", + "name": "ipaddress", + "type": "string" + } + ] + }, + { + "description": "Updates an ISO file.", + "isasync": false, + "name": "updateIso", + "params": [ + { + "description": "true if image is bootable, false otherwise; available only for updateIso API", + "length": 255, + "name": "bootable", + "required": false, "type": "boolean" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - } - ], - "type": "set" + "description": "the display text of the image", + "length": 4096, + "name": "displaytext", + "required": false, + "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the format for the image", + "length": 255, + "name": "format", + "required": false, + "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - } - ], - "type": "set" + "description": "true if the template requires HVM, false otherwise; available only for updateTemplate API", + "length": 255, + "name": "requireshvm", + "required": false, + "type": "boolean" + }, + { + "description": "the CPU arch of the template/ISO. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", + "type": "string" + }, + { + "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "length": 255, + "name": "cleanupdetails", + "required": false, + "type": "boolean" + }, + { + "description": "the name of the image file", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "sort key of the template, integer", + "length": 255, + "name": "sortkey", + "required": false, + "type": "integer" }, - {}, { - "description": "OS type id of the vm", + "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", + "length": 255, + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "true if the image supports the password reset feature; default is false", + "length": 255, + "name": "passwordenabled", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the OS type that best represents the OS of this image.", + "length": 255, "name": "ostypeid", - "type": "string" + "related": "listOsTypes,addGuestOs", + "required": false, + "type": "uuid" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" + "description": "true if the template type is routing i.e., if template is used to deploy router", + "length": 255, + "name": "isrouting", + "required": false, + "type": "boolean" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "length": 255, + "name": "isdynamicallyscalable", + "required": false, + "type": "boolean" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "true if the template supports the sshkey upload feature; default is false", + "length": 255, + "name": "sshkeyenabled", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the image file", + "length": 255, + "name": "id", + "related": "prepareTemplate,listIsos,registerIso,updateIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" + } + ], + "related": "prepareTemplate,listIsos,registerIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ + { + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" + }, + { + "description": "the processor bit size", + "name": "bits", + "type": "int" + }, + { + "description": "the size of the template", + "name": "size", "type": "long" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "path of the Domain the template belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, + {}, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - } - ], - "type": "set" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "the physical size of the template", + "name": "physicalsize", "type": "long" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", "type": "boolean" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" + }, + { + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", + "description": "additional key/value details tied with template", + "name": "details", "type": "map" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "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": "Base64 string containing the user data", - "name": "userdata", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the project name of the vm", - "name": "project", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the date this template was created", + "name": "created", + "type": "date" }, + {}, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" + }, + { + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the ID of the secondary storage host for the template", + "name": "hostid", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" + }, + { + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" + }, + { + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { @@ -55462,18 +47137,18 @@ "name": "tags", "response": [ { - "description": "the domain associated with the tag", - "name": "domain", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -55482,998 +47157,1111 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" - }, - { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" - }, - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" - }, - { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" } ] }, { - "description": "Resets network permissions.", + "description": "Lists OpenDyalight controllers", "isasync": false, - "name": "resetNetworkPermissions", + "name": "listOpenDaylightControllers", "params": [ { - "description": "the network ID", + "description": "the ID of a OpenDaylight Controller", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, + "name": "id", + "related": "addOpenDaylightController,deleteOpenDaylightController,listOpenDaylightControllers", + "required": false, + "type": "uuid" + }, + { + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": false, "type": "uuid" } ], + "related": "addOpenDaylightController,deleteOpenDaylightController", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name assigned to the controller", + "name": "name", "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the username to authenticate to the controller", + "name": "username", "type": "string" }, {}, + { + "description": "the url of the controller api", + "name": "url", + "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 physical network to which this controller belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + {}, + { + "description": "device id of the controller", + "name": "id", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" } - ], - "since": "4.17.0" + ] }, { - "description": "Updates an existing Bgp Peer.", + "description": "Adds a BigSwitch BCF Controller device", "isasync": true, - "name": "updateBgpPeer", + "name": "addBigSwitchBcfDevice", "params": [ { - "description": "Id of the Bgp Peer", - "length": 255, - "name": "id", - "related": "createBgpPeer,listBgpPeers,updateBgpPeer,dedicateBgpPeer,releaseBgpPeer", - "required": true, - "type": "uuid" - }, - { - "description": "The AS number of the Bgp Peer.", - "length": 255, - "name": "asnumber", - "required": false, - "type": "long" - }, - { - "description": "The password of the Bgp Peer.", + "description": "Password of the BigSwitch BCF Controller.", "length": 255, "name": "password", - "required": false, + "required": true, "type": "string" }, { - "description": "BGP peer details in key/value pairs.", + "description": "NAT support of the BigSwitch BCF Controller.", "length": 255, - "name": "details", - "required": false, - "type": "map" + "name": "nat", + "required": true, + "type": "boolean" }, { - "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details are removed for this resource; if false or not set, no action)", + "description": "Username of the BigSwitch BCF Controller.", "length": 255, - "name": "cleanupdetails", - "required": false, - "type": "boolean" + "name": "username", + "required": true, + "type": "string" }, { - "description": "The IPv6 address of the Bgp Peer.", + "description": "Hostname of ip address of the BigSwitch BCF Controller.", "length": 255, - "name": "ip6address", - "required": false, + "name": "hostname", + "required": true, "type": "string" }, { - "description": "The IPv4 address of the Bgp Peer.", + "description": "the Physical Network ID", "length": 255, - "name": "ipaddress", - "required": false, - "type": "string" + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": true, + "type": "uuid" } ], - "related": "createBgpPeer,listBgpPeers,dedicateBgpPeer,releaseBgpPeer", + "related": "listBigSwitchBcfDevices", "response": [ - { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", - "type": "string" - }, {}, { - "description": "id of the bgp peer", - "name": "id", + "description": "device id of the BigSwitch BCF Controller", + "name": "bcfdeviceid", "type": "string" }, + {}, { - "description": "the domain name of the bgp peer", - "name": "domain", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" + "description": "NAT support", + "name": "nat", + "type": "boolean" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", + "description": "name of the provider", + "name": "provider", "type": "string" }, { - "description": "password of bgp peer", + "description": "the controller password", "name": "password", "type": "string" }, { - "description": "the account of the bgp peer", - "name": "account", + "description": "device name", + "name": "bigswitchdevicename", "type": "string" }, { - "description": "the project id of the bgp peer", - "name": "projectid", + "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": "the domain ID of the bgp peer", - "name": "domainid", + "description": "the controller username", + "name": "username", "type": "string" }, { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", + "description": "the physical network to which this BigSwitch BCF segment belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the project name of the bgp peer", - "name": "project", + "description": "the controller Ip address", + "name": "hostname", "type": "string" - }, + } + ], + "since": "4.6.0" + }, + { + "description": "Deletes a counter for VM auto scaling", + "isasync": true, + "name": "deleteCounter", + "params": [ + { + "description": "the ID of the counter", + "length": 255, + "name": "id", + "related": "createCounter,listCounters", + "required": true, + "type": "uuid" + } + ], + "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "AS number of bgp peer", - "name": "asnumber", - "type": "long" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "date when this bgp peer was created.", - "name": "created", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } - ], - "since": "4.20.0" + ] }, { - "description": "update Tungsten-Fabric loadbalancer health monitor", + "description": "Changes the default NIC on a VM", "isasync": true, - "name": "updateTungstenFabricLBHealthMonitor", + "name": "updateDefaultNicForVirtualMachine", "params": [ { - "description": "loadbalancer health monitor url path", - "length": 255, - "name": "urlpath", - "required": false, - "type": "string" - }, - { - "description": "loadbalancer health monitor type", + "description": "NIC ID", "length": 255, - "name": "type", + "name": "nicid", + "related": "", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "loadbalancer health monitor interval", + "description": "Virtual Machine ID", "length": 255, - "name": "interval", + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, - "type": "integer" + "type": "uuid" + } + ], + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" }, + {}, { - "description": "the ID of lb rule", - "length": 255, - "name": "lbruleid", - "related": "createRoutingFirewallRule,listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "loadbalancer health monitor retry", - "length": 255, - "name": "retry", - "required": true, - "type": "integer" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { - "description": "loadbalancer health monitor expected code", - "length": 255, - "name": "expectedcode", - "required": false, + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "loadbalancer health monitor timeout", - "length": 255, - "name": "timeout", - "required": true, - "type": "integer" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "loadbalancer health monitor http method", - "length": 255, - "name": "httpmethodtype", - "required": false, + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the health monitor url path", - "name": "urlpath", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the health monitor timeout", - "name": "timeout", - "type": "int" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the health monitor interval", - "name": "interval", - "type": "int" + "description": "Base64 string containing the user data", + "name": "userdata", + "type": "string" }, { - "description": "the health monitor UUID", - "name": "uuid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, - {}, { - "description": "the health monitor expected code", - "name": "expectedcode", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the health monitor retry", - "name": "retry", - "type": "int" + "description": "the state of the virtual machine", + "name": "state", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the memory allocated for the virtual machine", + "name": "memory", "type": "integer" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the health monitor ID", - "name": "id", - "type": "long" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the health monitor type", - "name": "type", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the health monitor http method", - "name": "httpmethod", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" }, - {} - ] - }, - { - "description": "Release the dedication for host", - "isasync": true, - "name": "releaseDedicatedHost", - "params": [ { - "description": "the ID of the host", - "length": 255, - "name": "hostid", - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", + "type": "string" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, - {}, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" + }, + { + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Accepts or declines project invitation", - "isasync": true, - "name": "updateProjectInvitation", - "params": [ - { - "description": "if true, accept the invitation, decline if false. True by default", - "length": 255, - "name": "accept", - "required": false, - "type": "boolean" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "User UUID, required for adding account from external provisioning system", - "length": 255, - "name": "userid", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser", - "required": false, - "type": "uuid" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "list invitations for specified account; this parameter has to be specified with domainId", - "length": 255, - "name": "token", - "required": false, + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "id of the project to join", - "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": true, - "type": "uuid" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "account that is joining the project", - "length": 255, - "name": "account", - "required": false, + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + { + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, - {}, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "3.0.0" - }, - { - "description": "This is supposed to revert a volume snapshot. This command is only supported with KVM so far", - "isasync": true, - "name": "revertSnapshot", - "params": [ + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" + }, { - "description": "The ID of the snapshot", - "length": 255, - "name": "id", - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,revertSnapshot,listSnapshots", - "required": true, - "type": "uuid" - } - ], - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,listSnapshots", - "response": [ + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" + }, { - "description": "type of the disk volume", - "name": "volumetype", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" + }, + { + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "ID of the datastore for the snapshot entry", - "name": "datastoreid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, - {}, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, { - "description": "the project name of the snapshot", - "name": "project", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", - "name": "state", - "type": "state" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "type of the datastore for the snapshot entry", - "name": "datastoretype", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", - "name": "revertable", - "type": "boolean" + "description": "the project id of the vm", + "name": "projectid", + "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "resource type", - "name": "resourcetype", - "type": "string" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the ID of the security group", + "name": "id", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name of the group", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain associated with the tag", + "description": "path of the Domain the security group belongs to", "name": "domainpath", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" } ], "type": "set" }, + {}, { - "description": "state of the disk volume", - "name": "volumestate", - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "display name of the os on volume", - "name": "osdisplayname", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "id of the os on volume", - "name": "ostypeid", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "ID of the disk volume", - "name": "volumeid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": " the date the snapshot was created", - "name": "created", - "type": "date" - }, - { - "description": "the domain name of the snapshot's account", - "name": "domain", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "virtual size of backedup snapshot on image store", - "name": "virtualsize", + "description": "device ID of the root volume", + "name": "rootdeviceid", "type": "long" }, { - "description": "name of the datastore for the snapshot entry", - "name": "datastorename", - "type": "string" - }, - { - "description": "the type of the snapshot", - "name": "snapshottype", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "ID of the snapshot", - "name": "id", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "download progress of a snapshot", - "name": "downloaddetails", - "type": "map" - }, - { - "description": "the account associated with the snapshot", - "name": "account", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the project id of the snapshot", - "name": "projectid", - "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", - "name": "jobid", - "type": "string" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "physical size of backedup snapshot on image store", - "name": "physicalsize", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, - {}, - { - "description": "valid location types are primary and secondary.", - "name": "locationtype", - "type": "string" - }, - { - "description": "the status of the template", - "name": "status", - "type": "string" - }, { - "description": "name of the snapshot", - "name": "name", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "valid types are hourly, daily, weekly, monthy, template, and none.", - "name": "intervaltype", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "id of the availability zone", + "description": "the ID of the availability zone for the virtual machine", "name": "zoneid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the domain ID of the snapshot's account", - "name": "domainid", - "type": "string" - }, - { - "description": "name of the disk volume", - "name": "volumename", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "state of the snapshot on the datastore", - "name": "datastorestate", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "path of the Domain the snapshot's account belongs to", - "name": "domainpath", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" - } - ] - }, - { - "description": "Updates a condition for VM auto scaling", - "isasync": true, - "name": "updateCondition", - "params": [ - { - "description": "the ID of the condition.", - "length": 255, - "name": "id", - "related": "listConditions", - "required": true, - "type": "uuid" }, { - "description": "Relational Operator to be used with threshold. Valid values are EQ, GT, LT, GE, LE.", - "length": 255, - "name": "relationaloperator", - "required": true, + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "Value for which the Counter will be evaluated with the Operator selected.", - "length": 255, - "name": "threshold", - "required": true, - "type": "long" - } - ], - "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", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {} - ], - "since": "4.18.0" - }, - { - "description": "Lists Regions", - "isasync": false, - "name": "listRegions", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List Region by region ID.", - "length": 255, - "name": "id", - "required": false, + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "List Region by region name.", - "length": 255, - "name": "name", - "required": false, + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "addRegion,updateRegion", - "response": [ - { - "description": "the end point of the region", - "name": "endpoint", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, - { - "description": "true if GSLB service is enabled in the region, false otherwise", - "name": "gslbserviceenabled", - "type": "boolean" - }, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the ID of the region", - "name": "id", - "type": "integer" - }, - { - "description": "true if security groups support is enabled, false otherwise", - "name": "portableipserviceenabled", - "type": "boolean" - }, - { - "description": "the name of the region", - "name": "name", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, - {} - ] - }, - { - "description": "Attempts Migration of a system virtual machine to the host specified.", - "isasync": true, - "name": "migrateSystemVm", - "params": [ - { - "description": "destination Host ID to migrate VM to", - "length": 255, - "name": "hostid", - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": false, - "type": "uuid" - }, { - "description": "the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "migrateSystemVm,startSystemVm,changeServiceForSystemVm", - "required": true, - "type": "uuid" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "since": "4.16.0", - "type": "uuid" + "description": "the project name of the vm", + "name": "project", + "type": "string" }, { - "description": "Automatically select a destination host which do not require storage migration, if hostId and storageId are not specified. false by default", - "length": 255, - "name": "autoselect", - "required": false, - "since": "4.16.0", - "type": "boolean" - } - ], - "related": "startSystemVm,changeServiceForSystemVm", - "response": [ - { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the link local IP address for the system vm", - "name": "linklocalip", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the public netmask for the system VM", - "name": "publicnetmask", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the name of the system VM", - "name": "name", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", - "type": "string" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", @@ -56481,684 +48269,709 @@ "type": "boolean" }, { - "description": "the date and time the system VM was created", - "name": "created", - "type": "date" - }, - { - "description": "the second DNS for the system VM", - "name": "dns2", - "type": "string" - }, - { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" - }, - { - "description": "the state of the system VM", - "name": "state", - "type": "string" - }, - { - "description": "the Pod ID for the system VM", - "name": "podid", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the private IP address for the system VM", - "name": "privateip", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the Zone name for the system VM", - "name": "zonename", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the template ID for the system VM", - "name": "templateid", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, - {}, { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "the agent state of the system VM", - "name": "agentstate", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the systemvm agent version", - "name": "version", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the hostname for the system VM", - "name": "hostname", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + } + ], + "type": "set" + } + ] + }, + { + "description": "Generate DRS plan for a cluster", + "isasync": false, + "name": "generateClusterDrsPlan", + "params": [ { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", - "type": "string" + "description": "the ID of the Cluster", + "length": 255, + "name": "id", + "related": "addCluster,updateCluster", + "required": true, + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "Maximum number of VMs to migrate for a DRS execution. Defaults to value of cluster's drs.vm.migrations setting", + "length": 255, + "name": "migrations", + "required": false, "type": "integer" - }, - { - "description": "guest vlan range", - "name": "guestvlan", - "type": "string" - }, - { - "description": "the system VM type", - "name": "systemvmtype", - "type": "string" - }, - { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" - }, - { - "description": "the template name for the system VM", - "name": "templatename", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", - "type": "string" - }, + } + ], + "related": "executeClusterDrsPlan", + "response": [ { - "description": "the network domain for the system VM", - "name": "networkdomain", - "type": "string" + "description": "Status of DRS Plan", + "name": "status", + "type": "status" }, + {}, { - "description": "the ID of the system VM", + "description": "unique ID of the drs plan for cluster", "name": "id", "type": "string" }, - { - "description": "the Pod name for the system VM", - "name": "podname", - "type": "string" - }, {}, { - "description": "the first DNS for the system VM", - "name": "dns1", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" + "description": "Type of DRS Plan (Automated or Manual))", + "name": "type", + "type": "type" }, { - "description": "the gateway for the system VM", - "name": "gateway", + "description": "Id of the cluster", + "name": "clusterid", "type": "string" }, { - "description": "the private netmask for the system VM", - "name": "privatenetmask", - "type": "string" + "description": "List of migrations", + "name": "migrations", + "type": "list" }, { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" - }, - { - "description": "the host ID for the system VM", - "name": "hostid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Start event Id of the DRS Plan", + "name": "eventid", "type": "string" } - ] + ], + "since": "4.19.0" }, { - "description": "List the counters for VM auto scaling", + "description": "Deletes a user for an account", "isasync": false, - "name": "listCounters", + "name": "deleteUser", "params": [ { - "description": "", + "description": "id of the user to be deleted", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, + "name": "id", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "Name of the counter.", - "length": 255, - "name": "name", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "ID of the Counter.", - "length": 255, - "name": "id", - "related": "createCounter,listCounters", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "Network provider of the counter.", - "length": 255, - "name": "provider", - "required": false, - "since": "4.18.0", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Source of the counter.", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {} + ] + }, + { + "description": "Initiates the specified power action to the host's out-of-band management interface", + "isasync": true, + "name": "issueOutOfBandManagementPowerAction", + "params": [ + { + "description": "out-of-band management power actions, valid actions are: ON, OFF, CYCLE, RESET, SOFT, STATUS", "length": 255, - "name": "source", - "required": false, + "name": "action", + "required": true, "type": "string" }, { - "description": "", + "description": "the ID of the host", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": true, + "type": "uuid" }, { - "description": "List by keyword", + "description": "optional operation timeout in seconds that overrides the global or cluster-level out-of-band management timeout setting", "length": 255, - "name": "keyword", + "name": "timeout", "required": false, - "type": "string" + "type": "long" } ], - "related": "createCounter", + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,enableOutOfBandManagementForCluster,disableOutOfBandManagementForCluster", "response": [ { - "description": "Name of the counter.", - "name": "name", + "description": "the out-of-band management interface address", + "name": "address", "type": "string" }, + {}, { - "description": "Source of the counter.", - "name": "source", - "type": "string" + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "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": "Provider of the counter.", - "name": "provider", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "zone id of counter", - "name": "zoneid", + "description": "the out-of-band management action (if issued)", + "name": "action", "type": "string" }, - {}, { - "description": "the id of the Counter", - "name": "id", + "description": "the out-of-band management interface password", + "name": "password", "type": "string" }, { - "description": "Value in case of snmp or other specific counters.", - "name": "value", + "description": "the operation result description", + "name": "description", "type": "string" - } - ] - }, - { - "description": "Configures an Internal Load Balancer element.", - "isasync": true, - "name": "configureInternalLoadBalancerElement", - "params": [ - { - "description": "the ID of the internal lb provider", - "length": 255, - "name": "id", - "related": "configureInternalLoadBalancerElement,listInternalLoadBalancerElements", - "required": true, - "type": "uuid" }, { - "description": "Enables/Disables the Internal Load Balancer element", - "length": 255, - "name": "enabled", - "required": true, - "type": "boolean" - } - ], - "related": "listInternalLoadBalancerElements", - "response": [ - {}, + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - {}, { - "description": "the physical network service provider id of the element", - "name": "nspid", + "description": "the out-of-band management interface port", + "name": "port", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the out-of-band management driver for the host", + "name": "driver", "type": "string" }, { - "description": "the id of the internal load balancer element", - "name": "id", + "description": "the out-of-band management interface username", + "name": "username", "type": "string" }, { - "description": "Enabled/Disabled the element", - "name": "enabled", + "description": "the operation result", + "name": "status", "type": "boolean" - } + }, + {} ], - "since": "4.2.0" + "since": "4.9.0" }, { - "description": "remove Tungsten-Fabric tag", + "description": "Create a new Shared File System of specified size and disk offering, attached to the given network", "isasync": true, - "name": "removeTungstenFabricTag", + "name": "createSharedFileSystem", "params": [ { - "description": "the uuid of networks", - "length": 255, - "name": "networkuuid", - "required": false, - "type": "list" - }, - { - "description": "the uuid of Tungsten-Fabric policy", + "description": "the name of the shared filesystem.", "length": 255, - "name": "policyuuid", - "required": false, + "name": "name", + "required": true, "type": "string" }, { - "description": "the uuid of Tungsten-Fabric tag", + "description": "the service offering to use for the shared filesystem instance hosting the data. The offering should be HA enabled and the cpu count and memory size should be greater than equal to sharedfsvm.min.cpu.count and sharedfsvm.min.ram.size respectively", "length": 255, - "name": "taguuid", + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "the ID of zone", + "description": "the disk offering to use for the underlying storage. This will define the size and other specifications like encryption and qos for the shared filesystem.", "length": 255, - "name": "zoneid", - "related": "createZone,listZones", + "name": "diskofferingid", + "related": "createDiskOffering,listDiskOfferings", "required": true, "type": "uuid" }, { - "description": "the uuid of nics", + "description": "the filesystem format (XFS / EXT4) which will be installed on the shared filesystem.", "length": 255, - "name": "nicuuid", - "required": false, - "type": "list" + "name": "filesystem", + "required": true, + "type": "string" }, { - "description": "the uuid of Tungsten-Fabric application policy set", + "description": "the description for the shared filesystem.", "length": 255, - "name": "applicationpolicysetuuid", + "name": "description", "required": false, "type": "string" }, { - "description": "the uuid of vms", + "description": "the project associated with the shared filesystem. Mutually exclusive with account parameter", "length": 255, - "name": "vmuuid", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "list" - } - ], - "related": "createTungstenFabricTag,listTungstenFabricTag,applyTungstenFabricTag", - "response": [ - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "list Tungsten-Fabric network", - "name": "network", - "type": "list" - }, - { - "description": "list Tungsten-Fabric policy", - "name": "policy", - "type": "list" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Tungsten-Fabric tag name", - "name": "name", - "type": "string" - }, - { - "description": "list Tungsten-Fabric vm", - "name": "vm", - "type": "list" + "type": "uuid" }, { - "description": "list Tungsten-Fabric nic", - "name": "nic", - "type": "list" + "description": "the zone id.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" }, - {}, { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "the provider to be used for the shared filesystem. The list of providers can be fetched by using the listSharedFileSystemProviders API.", + "length": 255, + "name": "provider", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - } - ] - }, - { - "description": "Lists all available virtual router elements.", - "isasync": false, - "name": "listVirtualRouterElements", - "params": [ - { - "description": "list virtual router elements by network service provider id", + "description": "min iops", "length": 255, - "name": "nspid", - "related": "addNetworkServiceProvider,listNetworkServiceProviders,listTrafficTypes", + "name": "miniops", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "", + "description": "network to attach the shared filesystem to", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" }, { - "description": "list virtual router elements by id", + "description": "max iops", "length": 255, - "name": "id", - "related": "configureVirtualRouterElement,listVirtualRouterElements", + "name": "maxiops", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "List by keyword", + "description": "the size of the shared filesystem in GiB", "length": 255, - "name": "keyword", + "name": "size", "required": false, - "type": "string" + "type": "long" }, { - "description": "list network offerings by enabled state", + "description": "the account associated with the shared filesystem. Must be used with the domainId parameter.", "length": 255, - "name": "enabled", + "name": "account", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "", + "description": "the domain ID associated with the shared filesystem. If used with the account parameter returns the shared filesystem associated with the account for the specified domain.If account is NOT provided then the shared filesystem will be assigned to the caller account and domain.", "length": 255, - "name": "page", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, - "type": "integer" + "type": "uuid" } ], - "related": "configureVirtualRouterElement", + "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the id of the router", - "name": "id", - "type": "string" - }, - { - "description": "the physical network service provider id of the provider", - "name": "nspid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the project name of the address", - "name": "project", + "description": "path to mount the shared filesystem", + "name": "path", "type": "string" }, { - "description": "the domain associated with the provider", - "name": "domain", + "description": "path of the domain to which the shared filesystem", + "name": "domainpath", "type": "string" }, { - "description": "the domain ID associated with the provider", - "name": "domainid", + "description": "the shared filesystem provider", + "name": "provider", "type": "string" }, - {}, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the filesystem format", + "name": "filesystem", "type": "string" }, { - "description": "the account associated with the provider", + "description": "the account associated with the shared filesystem", "name": "account", "type": "string" }, { - "description": "path of the domain to which the provider belongs", - "name": "domainpath", + "description": "Network name of the shared filesystem", + "name": "networkname", "type": "string" }, { - "description": "Enabled/Disabled the service provider", - "name": "enabled", + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", "type": "boolean" }, - {} - ] - }, - { - "description": "Deletes an existing IPv4 subnet for guest network.", - "isasync": true, - "name": "deleteIpv4SubnetForGuestNetwork", - "params": [ { - "description": "Id of the guest network IPv4 subnet", - "length": 255, - "name": "id", - "related": "createIpv4SubnetForGuestNetwork", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "name of the shared filesystem", + "name": "name", + "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ], - "since": "4.20.0" - }, - { - "description": "Creates a routing firewall rule in the given network in ROUTED mode", - "isasync": true, - "name": "createRoutingFirewallRule", - "params": [ - { - "description": "error code for this ICMP message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" + "description": "the read (IO) of disk on the shared filesystem", + "name": "diskioread", + "type": "long" }, { - "description": "the starting port of firewall rule", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", + "type": "string" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "type": "boolean" + "description": "ID of the shared filesystem", + "name": "id", + "type": "string" }, { - "description": "the destination CIDR list to allow traffic to. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "destcidrlist", - "required": false, - "type": "list" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { - "description": "the source CIDR list to allow traffic from. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", + "type": "string" }, { - "description": "The network of the VM the firewall rule will be created for", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", - "required": true, - "type": "uuid" + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", + "type": "string" }, { - "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", - "length": 255, - "name": "protocol", - "required": true, + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", "type": "string" }, { - "description": "type of the ICMP message being sent", - "length": 255, - "name": "icmptype", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the ending port of firewall rule", - "length": 255, - "name": "endport", - "required": false, - "type": "integer" + "description": "ID of the storage fs vm", + "name": "virtualmachineid", + "type": "string" }, { - "description": "the traffic type for the Routing firewall rule, can be ingress or egress, defaulted to ingress if not specified", - "length": 255, - "name": "traffictype", - "required": false, + "description": "ID of the storage fs vm", + "name": "vmstate", "type": "string" - } - ], - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", - "response": [ + }, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", + "description": "the project ID of the shared filesystem", + "name": "projectid", "type": "string" }, { - "description": "the list of resource tags associated with the rule", + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -57167,13 +48980,23 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", "type": "string" }, { @@ -57182,858 +49005,1021 @@ "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", "type": "string" }, { "description": "resource type", "name": "resourcetype", "type": "string" + } + ], + "type": "set" + }, + { + "description": "the state of the shared filesystem", + "name": "state", + "type": "string" + }, + { + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", + "type": "string" + }, + { + "description": "name of the storage pool hosting the data volume", + "name": "storage", + "type": "string" + }, + { + "description": "the list of nics associated with the shared filesystem", + "name": "nic", + "response": [ + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" } ], "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", + "description": "name of the storage fs data volume", + "name": "volumename", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", + "type": "string" }, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "description": "ID of the storage fs data volume", + "name": "volumeid", "type": "string" }, { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the project name of the shared filesystem", + "name": "project", + "type": "string" }, { - "description": "the ID of the port forwarding rule", - "name": "id", - "type": "string" + "description": "size of the shared filesystem", + "name": "size", + "type": "long" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" }, { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", - "type": "string" + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", - "type": "string" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, - {}, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", + "description": "Name of the availability zone", + "name": "zonename", "type": "string" }, - {}, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "size of the shared filesystem in GiB", + "name": "sizegb", "type": "string" }, { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "Network ID of the shared filesystem", + "name": "networkid", "type": "string" }, + {}, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "description of the shared filesystem", + "name": "description", "type": "string" }, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "the domain associated with the shared filesystem", + "name": "domain", "type": "string" } ], "since": "4.20.0" }, { - "description": "link a cloudstack account to a group or OU in ldap", - "isasync": false, - "name": "linkAccountToLdap", + "description": "Issues a client certificate using configured or provided CA plugin", + "isasync": true, + "name": "issueCertificate", "params": [ { - "description": "domain admin username in LDAP ", + "description": "Comma separated list of domains, the certificate should be issued for. When csr is not provided, the first domain is used as a subject/CN", "length": 255, - "name": "admin", + "name": "domain", "required": false, "type": "string" }, { - "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin", - "length": 255, - "name": "accounttype", - "required": false, - "type": "integer" - }, - { - "description": "type of the ldap name. GROUP or OU, defaults to GROUP", + "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", "length": 255, - "name": "type", + "name": "provider", "required": false, "type": "string" }, { - "description": "name of the account, it will be created if it does not exist", + "description": "Certificate validity duration in number of days, when not provided the default configured value will be used", "length": 255, - "name": "account", - "required": true, - "type": "string" + "name": "duration", + "required": false, + "type": "integer" }, { - "description": "name of the group or OU in LDAP", + "description": "Comma separated list of IP addresses, the certificate should be issued for", "length": 255, - "name": "ldapdomain", - "required": true, + "name": "ipaddress", + "required": false, "type": "string" }, { - "description": "The id of the domain that is to contain the linked account.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": true, - "type": "uuid" - }, - { - "description": "Creates the account under the specified role.", - "length": 255, - "name": "roleid", - "related": "createRole,importRole,listRoles,updateRole", + "description": "The certificate signing request (in pem format), if CSR is not provided then configured/provided options are considered", + "length": 65535, + "name": "csr", "required": false, - "since": "4.19.1", - "type": "uuid" + "type": "string" } ], - "related": "", + "related": "listCaCertificate", "response": [ { - "description": "id of the Domain which is linked to LDAP", - "name": "domainid", - "type": "string" - }, - { - "description": "name of the group or OU in LDAP which is linked to the domain", - "name": "name", + "description": "The client certificate", + "name": "certificate", "type": "string" }, {}, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "name of the group or OU in LDAP which is linked to the domain", - "name": "ldapdomain", + "description": "Private key for the certificate", + "name": "privatekey", "type": "string" }, { - "description": "type of the name in LDAP which is linked to the domain", - "name": "type", + "description": "The CA certificate(s)", + "name": "cacertificates", "type": "string" }, { - "description": "Type of the account to auto import", - "name": "accounttype", - "type": "int" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.11.0" + }, + { + "description": "Deletes network device.", + "isasync": false, + "name": "deleteNetworkDevice", + "params": [ + { + "description": "Id of network device to delete", + "length": 255, + "name": "id", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "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": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, { - "description": "Domain Admin accountId that is created", - "name": "accountid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } - ], - "since": "4.11.0" + ] }, { - "description": "Disables out-of-band management for a host", - "isasync": true, - "name": "disableOutOfBandManagementForHost", + "description": "Updates image store read-only status", + "isasync": false, + "name": "updateImageStore", "params": [ { - "description": "the ID of the host", + "description": "The number of bytes CloudStack can use on this image storage.\n\tNOTE: this will be overwritten by the StatsCollector as soon as there is a SSVM to query the storage.", + "length": 255, + "name": "capacitybytes", + "required": false, + "type": "long" + }, + { + "description": "If set to true, it designates the corresponding image store to read-only, hence not considering them during storage migration", + "length": 255, + "name": "readonly", + "required": false, + "type": "boolean" + }, + { + "description": "Image Store UUID", "length": 255, - "name": "hostid", - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "name": "id", + "related": "addSecondaryStorage,listSwifts,updateImageStore,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", "required": true, "type": "uuid" + }, + { + "description": "The new name for the Image Store.", + "length": 255, + "name": "name", + "required": false, + "type": "string" } ], - "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForCluster,configureOutOfBandManagement,changeOutOfBandManagementPassword", + "related": "addSecondaryStorage,listSwifts,addImageStore,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", "response": [ + {}, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the Zone ID of the image store", + "name": "zoneid", "type": "string" }, { - "description": "the operation result description", - "name": "description", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the Zone name of the image store", + "name": "zonename", "type": "string" }, { - "description": "the out-of-band management driver for the host", - "name": "driver", - "type": "string" + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "the out-of-band management interface address", - "name": "address", + "description": "the name of the image store", + "name": "name", "type": "string" }, - { - "description": "the operation result", - "name": "status", - "type": "boolean" - }, - {}, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the out-of-band management interface password", - "name": "password", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the ID of the image store", + "name": "id", "type": "string" }, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "the provider name of the image store", + "name": "providername", + "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" + }, + { + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" + }, + { + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" } ], - "since": "4.9.0" + "since": "4.15.0" }, { - "description": "Cancel host status from 'Degraded'. Host will transit back to status 'Enabled'.", + "description": "Creates a port forwarding rule", "isasync": true, - "name": "cancelHostAsDegraded", + "name": "createPortForwardingRule", "params": [ { - "description": "host ID", + "description": "the starting port of port forwarding rule's public port range", "length": 255, - "name": "id", - "related": "cancelHostAsDegraded,declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "name": "publicport", "required": true, - "type": "uuid" - } - ], - "related": "declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "response": [ - { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", "type": "integer" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", + "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. If not specified 1) defaulted to false when PF rule is being created for VPC guest network 2) in all other cases defaulted to true", + "length": 255, + "name": "openfirewall", + "required": false, "type": "boolean" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the ending port of port forwarding rule's private port range", + "length": 255, + "name": "publicendport", + "required": false, + "type": "integer" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" + "description": "the network of the virtual machine the port forwarding rule will be created for. Required when public IP address is not associated with any guest network yet (VPC case).", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the protocol for the port forwarding rule. Valid values are TCP or UDP.", + "length": 255, + "name": "protocol", + "required": true, "type": "string" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "VM guest nic secondary IP address for the port forwarding rule", + "length": 255, + "name": "vmguestip", + "required": false, "type": "string" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" + "description": "the starting port of port forwarding rule's private port range", + "length": 255, + "name": "privateport", + "required": true, + "type": "integer" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", - "response": [ - { - "description": "GPU cards present in the host", - "name": "gpugroupname", - "type": "string" - }, - { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - }, - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "the IP address id of the port forwarding rule", + "length": 255, + "name": "ipaddressid", + "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, + "type": "uuid" }, { - "description": "capabilities of the host", - "name": "capabilities", - "type": "string" + "description": "the cidr list to forward traffic from. Multiple entries must be separated by a single comma character (,). This parameter is deprecated. Do not use.", + "length": 255, + "name": "cidrlist", + "required": false, + "type": "list" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", - "type": "string" + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the Zone name of the host", - "name": "zonename", - "type": "string" + "description": "the ID of the virtual machine for the port forwarding rule", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the cluster name of the host", - "name": "clustername", + "description": "the ending port of port forwarding rule's private port range", + "length": 255, + "name": "privateendport", + "required": false, + "type": "integer" + } + ], + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,listPortForwardingRules,updatePortForwardingRule", + "response": [ + { + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", + "type": "string" }, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", + "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", + "type": "string" }, { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "list" }, { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", + "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "is firewall for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the Pod name of the host", - "name": "podname", + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" - }, - { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" - }, - { - "description": "CPU Arch of the host", - "name": "arch", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "the ID of the port forwarding rule", + "name": "id", "type": "string" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, + {}, + {}, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the rule", + "name": "state", "type": "string" - }, + } + ] + }, + { + "description": "load template into primary storage", + "isasync": false, + "name": "prepareTemplate", + "params": [ { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" + "description": "storage pool ID of the primary storage pool to which the template should be prepared. If it is not provided the template is prepared on all the available primary storage pools.", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "required": false, + "type": "uuid" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", - "type": "long" + "description": "template ID of the template to be prepared in primary storage(s).", + "length": 255, + "name": "templateid", + "related": "prepareTemplate,listIsos,registerIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "the ID of the host", - "name": "id", - "type": "string" - }, + "description": "zone ID of the template to be prepared in primary storage(s).", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "related": "listIsos,registerIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "the host version", - "name": "version", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, + {}, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" }, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "the project id of the template", + "name": "projectid", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "the name of the host", - "name": "name", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" + "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 host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "the template display text", + "name": "displaytext", "type": "string" }, - {}, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", - "type": "long" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", "type": "boolean" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, - {}, - { - "description": "the host type", - "name": "type", - "type": "type" - }, - { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" - }, - { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" - }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "the template name", + "name": "name", + "type": "string" }, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", + "description": "the date this template was created", + "name": "created", "type": "date" }, { - "description": "the management server ID of the host", - "name": "managementserverid", - "type": "string" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", - "type": "string" + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" }, { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "events available for the host", - "name": "events", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "the template ID", + "name": "id", "type": "string" - } - ], - "since": "4.16.0.0" - }, - { - "description": "Releases an AS Number back to the pool", - "isasync": false, - "name": "releaseASNumber", - "params": [ - { - "description": "the zone ID", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": true, - "type": "uuid" }, { - "description": "the AS Number to be released", - "length": 255, - "name": "asnumber", - "required": true, - "type": "long" - } - ], - "response": [ - {}, - {}, + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Creates a security group", - "isasync": false, - "name": "createSecurityGroup", - "params": [ - { - "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "an optional account for the security group. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, - "type": "string" + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" }, { - "description": "name of the security group", - "length": 255, - "name": "name", - "required": true, + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "the description of the security group", - "length": 255, - "name": "description", - "required": false, + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "Create security group for project", - "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", - "required": false, - "type": "uuid" - } - ], - "related": "updateSecurityGroup", - "response": [ + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" + }, { - "description": "the ID of the security group", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the description of the security group", - "name": "description", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, { - "description": "the project id of the group", - "name": "projectid", - "type": "string" + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the list of resource tags associated with the rule", + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { @@ -58047,410 +50033,258 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { "description": "resource type", "name": "resourcetype", "type": "string" - } - ], - "type": "set" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" }, { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" } ], "type": "set" }, { - "description": "the account owning the security group", - "name": "account", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "the project name of the group", + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" + }, + { + "description": "the project name of the template", "name": "project", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the name of the security group", - "name": "name", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, - {}, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - } - ], - "type": "set" + "description": "the size of the template", + "name": "size", + "type": "long" + }, + { + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", + "type": "string" + }, + { + "description": "the format of the template.", + "name": "format", + "type": "imageformat" + }, + { + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" } ] }, { - "description": "List network visibility and all accounts that have permissions to view this network.", - "isasync": false, - "name": "listNetworkPermissions", + "description": "Dedicates a zones.", + "isasync": true, + "name": "dedicateZone", "params": [ { - "description": "Lists network permission by network ID", + "description": "the ID of the containing domain", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": true, + "type": "uuid" + }, + { + "description": "the ID of the zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": true, "type": "uuid" + }, + { + "description": "the name of the account which needs dedication. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" } ], "related": "", "response": [ - {}, - { - "description": "the name of the domain to which the network belongs", - "name": "domain", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the account the network is available for", - "name": "account", + "description": "the ID of the dedicated resource", + "name": "id", "type": "string" }, { - "description": "the ID of the domain to which the network belongs", - "name": "domainid", + "description": "the Dedication Affinity Group ID of the zone", + "name": "affinitygroupid", "type": "string" }, { - "description": "the network ID", - "name": "networkid", + "description": "the Name of the Zone", + "name": "zonename", "type": "string" }, { - "description": "the ID of project the network is available for", - "name": "projectid", + "description": "the domain ID to which the Zone is dedicated", + "name": "domainid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the Zone", + "name": "zoneid", "type": "string" }, { - "description": "the ID of account the network is available for", + "description": "the Account Id to which the Zone is dedicated", "name": "accountid", "type": "string" }, + {}, + {}, { - "description": "the project the network is available for", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, - {} - ], - "since": "4.17.0" + } + ] }, { - "description": "Lists site 2 site vpn gateways", - "isasync": false, - "name": "listVpnGateways", + "description": "Assigns virtual machine or a list of virtual machines to a load balancer rule.", + "isasync": true, + "name": "assignToLoadBalancerRule", "params": [ { - "description": "", + "description": "the ID of the load balancer rule", "length": 255, - "name": "pagesize", + "name": "id", + "related": "createRoutingFirewallRule,createIpv6FirewallRule,updateIpv6FirewallRule,listPortForwardingRules,updatePortForwardingRule", + "required": true, + "type": "uuid" + }, + { + "description": "VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].vmip=10.1.1.75", + "length": 255, + "name": "vmidipmap", "required": false, - "type": "integer" + "since": "4.4", + "type": "map" }, { - "description": "List by keyword", + "description": "the list of IDs of the virtual machine that are being assigned to the load balancer rule(i.e. virtualMachineIds=1,2,3)", "length": 255, - "name": "keyword", + "name": "virtualmachineids", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, + "type": "list" + } + ], + "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": "list only resources belonging to the domain specified", + "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": "Lists all pending asynchronous jobs for the account.", + "isasync": false, + "name": "listAsyncJobs", + "params": [ + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "isrecursive", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "id of the vpn gateway", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "id", - "related": "createVpnGateway,listVpnGateways,updateVpnGateway", + "name": "listall", "required": false, - "type": "uuid" + "type": "boolean" }, { "description": "list resources by account. Must be used with the domainId parameter.", @@ -58460,35 +50294,35 @@ "type": "string" }, { - "description": "id of vpc", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", "required": false, "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "The id of the management server", "length": 255, - "name": "isrecursive", + "name": "managementserverid", + "related": "listManagementServers", "required": false, - "type": "boolean" + "since": "4.19", + "type": "uuid" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "List by keyword", "length": 255, - "name": "projectid", - "related": "activateProject,createProject,suspendProject", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "description": "", "length": 255, - "name": "fordisplay", + "name": "pagesize", "required": false, - "since": "4.4", - "type": "boolean" + "type": "integer" }, { "description": "", @@ -58498,357 +50332,455 @@ "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "The start date of the async job (use format \"yyyy-MM-dd'T'HH:mm:ss'+'SSSS\")", "length": 255, - "name": "listall", + "name": "startdate", "required": false, - "type": "boolean" + "type": "date" } ], - "related": "createVpnGateway,updateVpnGateway", + "related": "queryAsyncJobResult", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the unique ID of the instance/entity object related to the job", + "name": "jobinstanceid", + "type": "string" }, { - "description": "the public IP address", - "name": "publicip", - "type": "string" + "description": "the progress information of the PENDING job", + "name": "jobprocstatus", + "type": "integer" }, { - "description": "the vpc id of this gateway", - "name": "vpcid", - "type": "string" + "description": " the created date of the job", + "name": "created", + "type": "date" }, { - "description": "the project id", - "name": "projectid", + "description": "the domain id that executed the async command", + "name": "domainid", "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the owner", - "name": "account", - "type": "string" + "description": "the current job status-should be 0 for PENDING", + "name": "jobstatus", + "type": "integer" }, { - "description": "is vpn gateway for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": " the completed date of the job", + "name": "completed", + "type": "date" }, { - "description": "the vpc name of this gateway", - "name": "vpcname", + "description": "the async command executed", + "name": "cmd", "type": "string" }, + {}, { - "description": "the project name", - "name": "project", + "description": "the result code for the job", + "name": "jobresultcode", + "type": "integer" + }, + { + "description": "the result reason", + "name": "jobresult", + "type": "responseobject" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the domain that executed the async command", + "name": "domainpath", "type": "string" }, { - "description": "the vpn gateway ID", - "name": "id", + "description": "the account id that executed the async command", + "name": "accountid", "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "the instance/entity object related to the job", + "name": "jobinstancetype", + "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "the user that executed the async command", + "name": "userid", "type": "string" }, { - "description": "the domain id of the owner", - "name": "domainid", + "description": "the result type", + "name": "jobresulttype", "type": "string" }, - {}, - {}, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the account that executed the async command", + "name": "account", "type": "string" + }, + { + "description": "the msid of the management server on which the job is running", + "name": "managementserverid", + "type": "long" } ] }, { - "description": "Moves a user to another account in the same domain.", + "description": "Archive one or more alerts.", "isasync": false, - "name": "moveUser", + "name": "archiveAlerts", "params": [ { - "description": "id of the user to be moved.", + "description": "end date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", "length": 255, - "name": "id", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser", - "required": true, - "type": "uuid" + "name": "enddate", + "required": false, + "type": "date" }, { - "description": "Moves the user under the specified account. If no account id is specified, it is necessary to provide an account name.", + "description": "the IDs of the alerts", "length": 255, - "name": "accountid", - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", + "name": "ids", + "related": "listAlerts,listAlertTypes", "required": false, - "type": "uuid" + "type": "list" }, { - "description": "Moves the user under the specified account. If no account name is specified, it is necessary to provide an account id.", + "description": "start date range to archive alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", "length": 255, - "name": "account", + "name": "startdate", + "required": false, + "type": "date" + }, + { + "description": "archive by alert type", + "length": 255, + "name": "type", "required": false, "type": "string" } ], "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" }, - {}, - {} - ], - "since": "4.11" + { + "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": "Releases host reservation.", - "isasync": true, - "name": "releaseHostReservation", + "description": "Lists all Buckets.", + "isasync": false, + "name": "listBuckets", "params": [ { - "description": "the host ID", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "id", - "related": "declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "name": "isrecursive", + "required": false, + "type": "boolean" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the bucket", + "length": 255, + "name": "name", + "required": false, + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" - } - ] - }, - { - "description": "Create site to site vpn connection", - "isasync": true, - "name": "createVpnConnection", - "params": [ + }, { - "description": "id of the vpn gateway", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "s2svpngatewayid", - "related": "createVpnGateway,updateVpnGateway", - "required": true, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, "type": "uuid" }, { - "description": "id of the customer gateway", + "description": "the ID of the bucket", "length": 255, - "name": "s2scustomergatewayid", - "related": "createVpnCustomerGateway,updateVpnCustomerGateway", - "required": true, + "name": "id", + "related": "listBuckets", + "required": false, "type": "uuid" }, { - "description": "connection is passive or not", + "description": "List by keyword", "length": 255, - "name": "passive", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "an optional field, whether to the display the vpn to the end user or not", + "description": "the ID of the object storage pool, available to ROOT admin only", "length": 255, - "name": "fordisplay", + "name": "objectstorageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", "required": false, - "since": "4.4", - "type": "boolean" - } - ], - "related": "updateVpnConnection", - "response": [ + "type": "uuid" + }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "the public IP address", - "name": "publicip", - "type": "string" + "description": "the IDs of the Buckets, mutually exclusive with id", + "length": 255, + "name": "ids", + "related": "listBuckets", + "required": false, + "type": "list" }, { - "description": "the project name", - "name": "project", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, - {}, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" }, { - "description": "if DPD is enabled for customer gateway", - "name": "dpd", - "type": "boolean" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "Total size of objects in Bucket", + "name": "size", + "type": "long" }, { - "description": "the connection ID", - "name": "id", + "description": "the account associated with the Bucket", + "name": "account", "type": "string" }, { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", - "type": "boolean" + "description": "Bucket Access Policy", + "name": "policy", + "type": "string" + }, + { + "description": "the project id of the bucket", + "name": "projectid", + "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "State of vpn connection", - "name": "passive", + "description": "id of the object storage hosting the Bucket; returned to admin user only", + "name": "objectstorageid", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the domain id of the owner", - "name": "domainid", - "type": "string" + "description": "the date the Bucket was created", + "name": "created", + "type": "date" }, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", + "description": "path of the domain to which the bucket belongs", + "name": "domainpath", "type": "string" }, { - "description": "public ip address id of the customer gateway", - "name": "gateway", + "description": "Object storage provider", + "name": "provider", "type": "string" }, { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" + "description": "Bucket Object Locking", + "name": "objectlocking", + "type": "boolean" }, { - "description": "ESP policy of the customer gateway", - "name": "esppolicy", + "description": "ID of the Bucket", + "name": "id", "type": "string" }, { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" + "description": "Bucket Versioning", + "name": "versioning", + "type": "boolean" }, { - "description": "the vpn gateway ID", - "name": "s2svpngatewayid", - "type": "string" + "description": "Bucket Quota in GB", + "name": "quota", + "type": "integer" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "Bucket Secret Key", + "name": "usersecretkey", "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { - "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", - "name": "splitconnections", - "type": "boolean" + "description": "the project name of the bucket", + "name": "project", + "type": "string" }, - {}, { - "description": "State of vpn connection", - "name": "state", + "description": "the domain associated with the bucket", + "name": "domain", "type": "string" }, { - "description": "IPsec Preshared-Key of the customer gateway", - "name": "ipsecpsk", + "description": "the ID of the domain associated with the bucket", + "name": "domainid", "type": "string" }, + {}, { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", - "type": "long" + "description": "Bucket URL", + "name": "url", + "type": "string" }, { - "description": "the customer gateway ID", - "name": "s2scustomergatewayid", - "type": "string" + "description": "Bucket Encryption", + "name": "encryption", + "type": "boolean" }, { - "description": "the project id", - "name": "projectid", + "description": "Bucket Access Key", + "name": "accesskey", "type": "string" }, { - "description": "is connection for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "Name of the object storage hosting the Bucket; returned to admin user only", + "name": "objectstore", + "type": "string" }, { - "description": "the owner", - "name": "account", + "description": "name of the Bucket", + "name": "name", "type": "string" }, { - "description": "IKE policy of the customer gateway", - "name": "ikepolicy", + "description": "State of the Bucket", + "name": "state", "type": "string" }, { @@ -58856,352 +50788,246 @@ "name": "jobid", "type": "string" } - ] + ], + "since": "4.19.0" }, { - "description": "lists network that are using a brocade vcs switch", + "description": "Creates a secondary storage selector, described by the heuristic rule.", "isasync": false, - "name": "listBrocadeVcsDeviceNetworks", + "name": "createSecondaryStorageSelector", "params": [ { - "description": "", + "description": "The zone in which the heuristic rule will be applied.", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" }, { - "description": "brocade vcs switch ID", + "description": "The name identifying the heuristic rule.", "length": 255, - "name": "vcsdeviceid", - "related": "", + "name": "name", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "", + "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "type", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "The heuristic rule, in JavaScript language. It is required that it returns the UUID of a secondary storage pool. An example of a rule is `if (snapshot.hypervisorType === 'KVM') { '7832f261-c602-4e8e-8580-2496ffbbc45d'; }` would allocate all snapshots with the KVM hypervisor to the specified secondary storage UUID.", + "length": 65535, + "name": "heuristicrule", + "required": true, + "type": "string" + }, + { + "description": "The description of the heuristic rule.", "length": 255, - "name": "keyword", - "required": false, + "name": "description", + "required": true, "type": "string" } ], - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", + "related": "updateSecondaryStorageSelector", "response": [ { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", - "type": "boolean" - }, - { - "description": "the list of services", - "name": "service", - "response": [ - { - "description": "the service name", - "name": "name", - "type": "string" - }, - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - } - ], - "type": "list" - } - ], - "type": "list" - }, - { - "description": "the date this network was created", + "description": "When the heuristic was created.", "name": "created", "type": "date" }, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" - }, - { - "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 id of the network", + "description": "ID of the heuristic.", "name": "id", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "The heuristic rule, in JavaScript language, used to select a secondary storage to be directed.", + "name": "heuristicrule", "type": "string" }, + {}, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "Name of the heuristic.", + "name": "name", "type": "string" }, { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", + "description": "Description of the heuristic.", + "name": "description", "type": "string" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the type of the network", + "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", "name": "type", "type": "string" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", + "description": "The zone which the heuristic is valid upon.", + "name": "zoneid", "type": "string" }, + {}, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "When the heuristic was removed.", + "name": "removed", + "type": "date" + } + ], + "since": "4.19.0" + }, + { + "description": "Stops an Internal LB vm.", + "isasync": true, + "name": "stopInternalLoadBalancerVM", + "params": [ + { + "description": "the ID of the internal lb vm", + "length": 255, + "name": "id", + "related": "destroyRouter,listRouters,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", + "required": true, + "type": "uuid" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", + "length": 255, + "name": "forced", + "required": false, + "type": "boolean" + } + ], + "related": "destroyRouter,listRouters,changeServiceForRouter,listInternalLoadBalancerVMs", + "response": [ + { + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "Last executed health check result for the router", + "name": "healthcheckresults", + "response": [ + { + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" + }, + { + "description": "detailed response generated on running health check", + "name": "details", + "type": "string" + }, + { + "description": "the name of the health check on the router", + "name": "checkname", + "type": "string" + }, + { + "description": "the type of the health check - basic or advanced", + "name": "checktype", + "type": "string" + }, + { + "description": "result of the health check", + "name": "success", + "type": "boolean" + } + ], + "type": "list" }, { - "description": "acl type - access type to the network", - "name": "acltype", + "description": "the second DNS for the router", + "name": "dns2", "type": "string" }, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", "type": "string" }, { - "description": "The IPv4 routing type of network", - "name": "ip4routing", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "ACL name associated with the VPC network", - "name": "aclname", + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, - {}, - { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", + "description": "the Zone name for the router", + "name": "zonename", "type": "string" }, { - "description": "the network's netmask", - "name": "netmask", + "description": "the domain ID associated with the router", + "name": "domainid", "type": "string" }, { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", + "description": "the Zone ID for the router", + "name": "zoneid", "type": "string" }, { - "description": "VPC the network belongs to", - "name": "vpcid", + "description": "the public IP address for the router", + "name": "publicip", "type": "string" }, { - "description": "list networks that are persistent", - "name": "ispersistent", - "type": "boolean" - }, - { - "description": "the network's gateway", - "name": "gateway", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", - "type": "boolean" - }, - { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the guest IP address for the router", + "name": "guestipaddress", "type": "string" }, { - "description": "the list of resource tags associated with network", - "name": "tags", - "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", - "type": "integer" + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", + "type": "boolean" }, { - "description": "the first IPv4 DNS for the network", - "name": "dns1", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", + "description": "the public MAC address for the router", + "name": "publicmacaddress", "type": "string" }, { @@ -59210,330 +51036,596 @@ "type": "integer" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the version of template", + "name": "version", "type": "string" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "role of the domain router", + "name": "role", "type": "string" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", - "type": "string" + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, { - "description": "the owner of the network", - "name": "account", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", "type": "string" }, + {}, { - "description": "The external id of the network", - "name": "externalid", - "type": "string" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" - }, - { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", + "description": "true if any health checks had failed", + "name": "healthchecksfailed", "type": "boolean" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" - }, - {}, - { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "the state of redundant virtual router", + "name": "redundantstate", "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", - "type": "boolean" - }, - { - "description": "state of the network", - "name": "state", + "description": "the template ID for the router", + "name": "templateid", "type": "string" }, { - "description": "true network requires restart", - "name": "restartrequired", - "type": "boolean" + "description": "the hostname for the router", + "name": "hostname", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", + "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "the details of the network", - "name": "details", - "type": "map" + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", + "type": "string" }, + {}, { - "description": "the traffic type of the network", - "name": "traffictype", + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, { - "description": "true if network is system, false otherwise", - "name": "issystem", - "type": "boolean" + "description": "the account associated with the router", + "name": "account", + "type": "string" }, { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" + "description": "the link local netmask for the router", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the list of nics associated with the router", + "name": "nic", + "response": [ + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + } + ], + "type": "set" }, { - "description": "the name of the zone the network belongs to", - "name": "zonename", + "description": "the domain associated with the router", + "name": "domain", "type": "string" }, { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the physical network id", - "name": "physicalnetworkid", + "description": "the guest MAC address for the router", + "name": "guestmacaddress", "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" - }, - { - "description": "the name of the network", - "name": "name", + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", + "description": "the link local IP address for the router", + "name": "linklocalip", "type": "string" }, { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "path of the Domain the router belongs to", + "name": "domainpath", "type": "string" }, { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the router", + "name": "name", "type": "string" }, { - "description": "related to what other network configuration", - "name": "related", + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", - "type": "boolean" - }, - { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the public netmask for the router", + "name": "publicnetmask", "type": "string" }, { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", - "type": "integer" + "description": "the guest netmask for the router", + "name": "guestnetmask", + "type": "string" }, { - "description": "zone id of the network", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ] }, { - "description": "Lists Webhook deliveries", - "isasync": false, - "name": "listWebhookDeliveries", + "description": "Adds a Brocade VCS Switch", + "isasync": true, + "name": "addBrocadeVcsDevice", "params": [ { - "description": "The ID of the management server", + "description": "the Physical Network ID", "length": 255, - "name": "managementserverid", - "related": "listManagementServers", - "required": false, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": true, "type": "uuid" }, { - "description": "The event type of the Webhook delivery", + "description": "Hostname of ip address of the Brocade VCS Switch.", "length": 255, - "name": "eventtype", - "required": false, + "name": "hostname", + "required": true, "type": "string" }, { - "description": "The start date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having start date equal to or after the specified date will be listed.", + "description": "Credentials to access the Brocade VCS Switch API", "length": 255, - "name": "startdate", - "required": false, - "type": "date" + "name": "password", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "Credentials to access the Brocade VCS Switch API", "length": 255, - "name": "keyword", - "required": false, + "name": "username", + "required": true, + "type": "string" + } + ], + "related": "listBrocadeVcsDevices", + "response": [ + { + "description": "name of the provider", + "name": "provider", "type": "string" }, + {}, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the physical Network to which this Brocade VCS belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "device id of the Brocade Vcs", + "name": "vcsdeviceid", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "The ID of the Webhook delivery", + "description": "device name", + "name": "brocadedevicename", + "type": "string" + }, + {}, + { + "description": "the principal switch Ip address", + "name": "hostname", + "type": "string" + } + ] + }, + { + "description": "Updates a security group", + "isasync": false, + "name": "updateSecurityGroup", + "params": [ + { + "description": "The ID of the security group.", "length": 255, "name": "id", - "related": "", - "required": false, + "related": "createSecurityGroup,updateSecurityGroup", + "required": true, "type": "uuid" }, { - "description": "The end date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having end date equal to or before the specified date will be listed.", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "enddate", + "name": "customid", "required": false, - "type": "date" + "since": "4.4", + "type": "string" }, { - "description": "The ID of the Webhook", + "description": "The new name of the security group.", "length": 255, - "name": "webhookid", - "related": "createWebhook,listWebhookDeliveries", + "name": "name", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "createWebhook", + "related": "createSecurityGroup", "response": [ + {}, { - "description": "The name of the domain in which the Webhook exists", - "name": "domain", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "The ID of the Webhook", - "name": "id", - "type": "string" + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + } + ], + "type": "set" }, { - "description": "path of the domain to which the Webhook belongs", - "name": "domainpath", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "The secret key for the Webhook", - "name": "secretkey", - "type": "string" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { - "description": "The name of the Webhook", - "name": "name", + "description": "the account owning the security group", + "name": "account", "type": "string" }, { - "description": "The description of the Webhook", - "name": "description", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { @@ -59542,494 +51634,549 @@ "type": "integer" }, { - "description": "The state of the Webhook", - "name": "state", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", - "type": "string" + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + } + ], + "type": "set" }, { - "description": "The scope of the Webhook", - "name": "scope", + "description": "the name of the security group", + "name": "name", "type": "string" }, - {}, { - "description": "the project name of the Kubernetes cluster", - "name": "project", - "type": "string" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" }, - {}, { - "description": "The ID of the domain in which the Webhook exists", - "name": "domainid", + "description": "the ID of the security group", + "name": "id", "type": "string" }, { - "description": "Whether SSL verification is enabled for the Webhook", - "name": "sslverification", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "The account associated with the Webhook", - "name": "account", + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { - "description": "The payload URL end point for the Webhook", - "name": "payloadurl", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, + {}, { - "description": "The date when this Webhook was created", - "name": "created", - "type": "date" + "description": "the project name of the group", + "name": "project", + "type": "string" } ], - "since": "4.20.0" + "since": "4.14.0.0" }, { - "description": "Dedicates a host.", - "isasync": true, - "name": "dedicateHost", + "description": "Creates a domain", + "isasync": false, + "name": "createDomain", "params": [ { - "description": "the name of the account which needs dedication. Must be used with domainId.", + "description": "Network domain for networks in the domain", "length": 255, - "name": "account", + "name": "networkdomain", "required": false, "type": "string" }, { - "description": "the ID of the host to update", + "description": "assigns new domain a parent domain by domain ID of the parent. If no parent domain is specified, the ROOT domain is assumed.", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", - "required": true, + "name": "parentdomainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains", + "required": false, "type": "uuid" }, { - "description": "the ID of the containing domain", + "description": "Domain UUID, required for adding domain from another Region", "length": 255, "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "required": false, + "type": "string" + }, + { + "description": "creates domain with this name", + "length": 255, + "name": "name", "required": true, - "type": "uuid" + "type": "string" } ], - "related": "listDedicatedHosts", + "related": "listDomainChildren,listDomains,listDomains", "response": [ - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of vpcs the domain can own", + "name": "vpclimit", "type": "string" }, { - "description": "the ID of the dedicated resource", - "name": "id", + "description": "the total number of projects the domain can own", + "name": "projectlimit", "type": "string" }, { - "description": "the Dedication Affinity Group ID of the host", - "name": "affinitygroupid", + "description": "the total number of cpu cores the domain can own", + "name": "cpulimit", "type": "string" }, { - "description": "the Account ID of the host", - "name": "accountid", - "type": "string" + "description": "the total number of templates which have been created by this domain", + "name": "templatetotal", + "type": "long" }, { - "description": "the name of the host", - "name": "hostname", + "description": "the total number of cpu cores available to be created for this domain", + "name": "cpuavailable", "type": "string" }, { - "description": "the domain ID of the host", - "name": "domainid", + "description": "the ID of the domain", + "name": "id", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the total number of networks the domain can own", + "name": "networklimit", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Adds the GloboDNS external host", - "isasync": true, - "name": "addGloboDnsHost", - "params": [ { - "description": "Password for GloboDNS", - "length": 255, - "name": "password", - "required": true, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": true, - "type": "uuid" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "GloboDNS url", - "length": 255, - "name": "url", - "required": true, - "type": "string" + "description": "the total primary storage space (in GiB) owned by domain", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "Username for GloboDNS", - "length": 255, - "name": "username", - "required": true, + "description": "the network domain", + "name": "networkdomain", "type": "string" - } - ], - "response": [ + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of virtual machines available for this domain to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total memory (in MB) owned by domain", + "name": "memorytotal", + "type": "long" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "details for the domain", + "name": "domaindetails", + "type": "map" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the domain", + "name": "name", "type": "string" }, - {} - ], - "since": "4.5.0" - }, - { - "description": "Logs out the user", - "isasync": false, - "name": "logout", - "params": [], - "related": "", - "response": [ { - "description": "Response description", - "name": "description", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by domain", + "name": "secondarystoragetotal", + "type": "float" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total number of virtual machines deployed by this domain", + "name": "vmtotal", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Imports a role based on provided map of rule permissions", - "isasync": false, - "name": "importRole", - "params": [ + "description": "the total number of projects available for administration by this domain", + "name": "projectavailable", + "type": "string" + }, { - "description": "Creates a role with this unique name", - "length": 255, - "name": "name", - "required": true, + "description": "the path of the domain", + "name": "path", "type": "string" }, { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" + "description": "the total number of vpcs available to be created for this domain", + "name": "vpcavailable", + "type": "string" }, { - "description": "Rules param list, rule and permission is must. Example: rules[0].rule=create*&rules[0].permission=allow&rules[0].description=create%20rule&rules[1].rule=list*&rules[1].permission=allow&rules[1].description=listing", - "length": 255, - "name": "rules", - "required": true, - "type": "map" + "description": "the domain name of the parent domain", + "name": "parentdomainname", + "type": "string" }, { - "description": "Force create a role with the same name. This overrides the role type, description and rule permissions for the existing role. Default is false.", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" + "description": "the total number of virtual machines that can be deployed by this domain", + "name": "vmlimit", + "type": "string" }, { - "description": "The description of the role", - "length": 255, - "name": "description", - "required": false, + "description": "the total number of public ip addresses this domain can acquire", + "name": "iplimit", "type": "string" }, { - "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User", - "length": 255, - "name": "type", - "required": false, + "description": "the total number of public ip addresses available for this domain to acquire", + "name": "ipavailable", "type": "string" - } - ], - "related": "createRole,listRoles,updateRole", - "response": [ + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of cpu cores owned by domain", + "name": "cputotal", + "type": "long" }, { - "description": "the name of the role", - "name": "name", + "description": "the total primary storage space (in GiB) the domain can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", - "type": "boolean" + "description": "the domain ID of the parent domain", + "name": "parentdomainid", + "type": "string" }, { - "description": "the type of the role", - "name": "type", - "type": "string" + "description": "the date when this domain was created", + "name": "created", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total volume available for this domain", + "name": "volumeavailable", "type": "string" }, { - "description": "the description of the role", - "name": "description", + "description": "the total number of templates which can be created by this domain", + "name": "templatelimit", "type": "string" }, { - "description": "the state of the role", - "name": "state", + "description": "the total memory (in MB) the domain can own", + "name": "memorylimit", "type": "string" }, { - "description": "the ID of the role", - "name": "id", + "description": "the total primary storage space (in GiB) available to be used for this domain", + "name": "primarystorageavailable", "type": "string" }, - {}, { - "description": "true if role is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the total secondary storage space (in GiB) the domain can own", + "name": "secondarystoragelimit", + "type": "string" }, - {} - ], - "since": "4.15.0" - }, - { - "description": "Restart a Shared FileSystem", - "isasync": true, - "name": "restartSharedFileSystem", - "params": [ { - "description": "is cleanup required", - "length": 255, - "name": "cleanup", - "required": false, + "description": "whether the domain has one or more sub-domains", + "name": "haschild", "type": "boolean" }, { - "description": "the ID of the shared filesystem", - "length": 255, - "name": "id", - "related": "listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the level of the domain", + "name": "level", + "type": "integer" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the state of the domain", + "name": "state", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "The tagged resource limit and count for the domain", + "name": "taggedresources", + "type": "list" + }, + { + "description": "the total number of templates available to be created by this domain", + "name": "templateavailable", "type": "string" }, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.20.0" - }, - { - "description": "Lists network serviceproviders for a given physical network.", - "isasync": false, - "name": "listNetworkServiceProviders", - "params": [ + "description": "the total number of networks available to be created for this domain", + "name": "networkavailable", + "type": "string" + }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, + {}, { - "description": "list providers by name", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "the total number of snapshots stored by this domain", + "name": "snapshottotal", + "type": "long" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" + "description": "the total number of vpcs owned by domain", + "name": "vpctotal", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the total memory (in MB) available to be created for this domain", + "name": "memoryavailable", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the total number of public ip addresses allocated for this domain", + "name": "iptotal", + "type": "long" }, { - "description": "list providers by state", - "length": 255, - "name": "state", - "required": false, - "type": "string" - } - ], - "related": "addNetworkServiceProvider,listTrafficTypes", - "response": [ + "description": "the total volume being used by this domain", + "name": "volumetotal", + "type": "long" + }, { - "description": "uuid of the network provider", - "name": "id", - "type": "string" + "description": "the total number of projects being administrated by this domain", + "name": "projecttotal", + "type": "long" }, { - "description": "the provider name", - "name": "name", + "description": "the total volume which can be used by this domain", + "name": "volumelimit", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the total number of snapshots which can be stored by this domain", + "name": "snapshotlimit", "type": "string" }, { - "description": "state of the network provider", - "name": "state", - "type": "string" + "description": "the total number of networks owned by domain", + "name": "networktotal", + "type": "long" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", + "description": "the total number of snapshots available for this domain", + "name": "snapshotavailable", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total secondary storage space (in GiB) available to be used for this domain", + "name": "secondarystorageavailable", "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" } - ], - "since": "3.0.0" + ] }, { - "description": "delete Tungsten-Fabric tag type", + "description": "Deleting resource tag(s)", "isasync": true, - "name": "deleteTungstenFabricTagType", + "name": "deleteTags", "params": [ { - "description": "the ID of Tungsten-Fabric tag type", + "description": "Delete tag by resource type", "length": 255, - "name": "tagtypeuuid", + "name": "resourcetype", "required": true, "type": "string" }, { - "description": "the ID of zone", + "description": "Delete tags matching key/value pairs", "length": 255, - "name": "zoneid", - "related": "createZone,listZones", + "name": "tags", + "required": false, + "type": "map" + }, + { + "description": "Delete tags for resource id(s)", + "length": 255, + "name": "resourceids", "required": true, - "type": "uuid" + "type": "list" } ], "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {}, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", @@ -60044,29 +52191,6 @@ "description": "true if operation is executed successfully", "name": "success", "type": "boolean" - } - ] - }, - { - "description": "Deletes an Object Storage Pool", - "isasync": false, - "name": "deleteObjectStoragePool", - "params": [ - { - "description": "The Object Storage ID.", - "length": 255, - "name": "id", - "related": "addObjectStoragePool,updateObjectStoragePool", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" }, {}, { @@ -60074,70 +52198,45 @@ "name": "displaytext", "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" - } + {} ], - "since": "4.19.0" + "since": "4.0.0" }, { - "description": "Delete Netscaler Control Center", - "isasync": false, - "name": "deleteNetscalerControlCenter", + "description": "Restarts the network; includes 1) restarting network elements - virtual routers, DHCP servers 2) reapplying all public IPs 3) reapplying loadBalancing/portForwarding rules", + "isasync": true, + "name": "restartNetwork", "params": [ { - "description": "Netscaler Control Center ID", + "description": "Turn the network into a network with redundant routers.", "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "string" - } - ], - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "name": "makeredundant", + "required": false, + "since": "4.11.1", + "type": "boolean" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "The ID of the network to restart.", + "length": 255, + "name": "id", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "Live patches the router software before restarting it. This parameter will only work when 'cleanup' is false.", + "length": 255, + "name": "livepatch", + "required": false, + "since": "4.17.0", "type": "boolean" }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Deletes a detached disk volume.", - "isasync": false, - "name": "deleteVolume", - "params": [ { - "description": "The ID of the disk volume", + "description": "If cleanup old network elements", "length": 255, - "name": "id", - "related": "createVolume,updateVolume,listVolumes,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" + "name": "cleanup", + "required": false, + "type": "boolean" } ], "response": [ @@ -60151,925 +52250,1003 @@ "name": "success", "type": "boolean" }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, {} ] }, { - "description": "Updates an existing secondary storage selector.", + "description": "Logs a user into the CloudStack. A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the \"logout\" command has been issued or the session has expired.", "isasync": false, - "name": "updateSecondaryStorageSelector", + "name": "login", "params": [ { - "description": "The heuristic rule, in JavaScript language. It is required that it returns the UUID of a secondary storage pool. An example of a rule is `if (snapshot.hypervisorType === 'KVM') { '7832f261-c602-4e8e-8580-2496ffbbc45d'; }` would allocate all snapshots with the KVM hypervisor to the specified secondary storage UUID.", - "length": 65535, - "name": "heuristicrule", + "description": "Username", + "length": 255, + "name": "username", "required": true, "type": "string" }, { - "description": "The unique identifier of the secondary storage selector.", + "description": "Path of the domain that the user belongs to. Example: domain=/com/cloud/internal. If no domain is passed in, the ROOT (/) domain is assumed.", "length": 255, - "name": "id", - "related": "listSecondaryStorageSelectors,updateSecondaryStorageSelector", - "required": true, - "type": "uuid" - } - ], - "related": "listSecondaryStorageSelectors", - "response": [ - { - "description": "The zone which the heuristic is valid upon.", - "name": "zoneid", + "name": "domain", + "required": false, "type": "string" }, { - "description": "When the heuristic was removed.", - "name": "removed", - "type": "date" + "description": "The id of the domain that the user belongs to. If both domain and domainId are passed in, \"domainId\" parameter takes precedence.", + "length": 255, + "name": "domainId", + "required": false, + "type": "long" }, + { + "description": "Hashed password (Default is MD5). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.", + "length": 255, + "name": "password", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "Name of the heuristic.", - "name": "name", + "description": "user time zoneoffset", + "name": "timezoneoffset", "type": "string" }, { - "description": "Description of the heuristic.", - "name": "description", + "description": "Session key that can be passed in subsequent Query command calls", + "name": "sessionkey", "type": "string" }, { - "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", - "name": "type", + "description": "Two factor authentication provider", + "name": "providerfor2fa", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "user time zone", + "name": "timezone", "type": "string" }, { - "description": "The heuristic rule, in JavaScript language, used to select a secondary storage to be directed.", - "name": "heuristicrule", + "description": "Is two factor authentication verified", + "name": "is2faverified", "type": "string" }, { - "description": "ID of the heuristic.", - "name": "id", + "description": "the account name the user belongs to", + "name": "account", "type": "string" }, - {}, - { - "description": "When the heuristic was created.", - "name": "created", - "type": "date" - }, - {} - ], - "since": "4.19.0" - }, - { - "description": "Enables a user account", - "isasync": false, - "name": "enableUser", - "params": [ - { - "description": "Enables user by user ID.", - "length": 255, - "name": "id", - "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser", - "required": true, - "type": "uuid" - } - ], - "related": "createUser,disableUser,getUser,listUsers,lockUser", - "response": [ { - "description": "the ID of the role", - "name": "roleid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "the account type (admin, domain-admin, read-only-admin, user)", + "name": "type", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "Is two factor authentication enabled", + "name": "is2faenabled", "type": "string" }, { - "description": "the user state", - "name": "state", + "description": "Username", + "name": "username", "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "User ID", + "name": "userid", "type": "string" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the user email address", - "name": "email", + "description": "first name of the user", + "name": "firstname", "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", + "description": "the time period before the session has expired", + "name": "timeout", "type": "integer" }, + {}, { - "description": "the domain ID of the user", - "name": "domainid", + "description": "last name of the user", + "name": "lastname", "type": "string" }, {}, { - "description": "the api key of the user", - "name": "apikey", + "description": "Domain ID that the user belongs to", + "name": "domainid", "type": "string" }, { - "description": "the user name", - "name": "username", + "description": "Is user registered", + "name": "registered", "type": "string" }, { - "description": "the domain name of the user", - "name": "domain", + "description": "Two factor authentication issuer", + "name": "issuerfor2fa", "type": "string" - }, + } + ] + }, + { + "description": "Lists all hypervisor capabilities.", + "isasync": false, + "name": "listHypervisorCapabilities", + "params": [ { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the user firstname", - "name": "firstname", + "description": "the hypervisor for which to restrict the search", + "length": 255, + "name": "hypervisor", + "required": false, "type": "string" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" + "description": "ID of the hypervisor capability", + "length": 255, + "name": "id", + "related": "listHypervisorCapabilities", + "required": false, + "type": "uuid" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ { - "description": "the user lastname", - "name": "lastname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the role", - "name": "rolename", - "type": "string" + "description": "true if VM snapshots are enabled for this hypervisor", + "name": "vmsnapshotenabled", + "type": "boolean" }, { - "description": "the timezone user was created in", - "name": "timezone", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the user ID", + "description": "true if security group is supported", + "name": "securitygroupenabled", + "type": "boolean" + }, + { + "description": "the ID of the hypervisor capabilities row", "name": "id", "type": "string" }, + {}, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" + "description": "the hypervisor version", + "name": "hypervisorversion", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the maximum number of guest vms recommended for this hypervisor", + "name": "maxguestslimit", + "type": "long" + }, + { + "description": "the hypervisor type", + "name": "hypervisor", "type": "string" }, {}, { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" + "description": "true if storage motion is supported", + "name": "storagemotionenabled", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the maximum number of Hosts per cluster for this hypervisor", + "name": "maxhostspercluster", "type": "integer" }, { - "description": "the account name of the user", - "name": "account", - "type": "string" + "description": "the maximum number of Data Volumes that can be attached for this hypervisor", + "name": "maxdatavolumeslimit", + "type": "integer" } - ] + ], + "since": "3.0.0" }, { - "description": "Suspends a project", - "isasync": true, - "name": "suspendProject", + "description": "Adds backup image store.", + "isasync": false, + "name": "addImageStore", "params": [ { - "description": "id of the project to be suspended", + "description": "the name for the image store", "length": 255, - "name": "id", - "related": "activateProject,createProject,suspendProject", - "required": true, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "the Zone ID for the image store", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, "type": "uuid" + }, + { + "description": "the image store provider name", + "length": 255, + "name": "provider", + "required": true, + "type": "string" + }, + { + "description": "the URL for the image store", + "length": 2048, + "name": "url", + "required": false, + "type": "string" + }, + { + "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss", + "length": 255, + "name": "details", + "required": false, + "type": "map" } ], - "related": "activateProject,createProject", + "related": "addSecondaryStorage,listSwifts,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", "response": [ { - "description": "the total number of vpcs owned by project", - "name": "vpctotal", - "type": "long" + "description": "the ID of the image store", + "name": "id", + "type": "string" }, { - "description": "the total number of virtual machines stopped for this project", - "name": "vmstopped", - "type": "integer" + "description": "the protocol of the image store", + "name": "protocol", + "type": "string" }, { - "description": "The tagged resource limit and count for the project", - "name": "taggedresources", - "type": "list" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total volume available for this project", - "name": "volumeavailable", - "type": "string" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, - {}, { - "description": "the state of the project", - "name": "state", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this project", - "name": "snapshotlimit", + "description": "the Zone ID of the image store", + "name": "zoneid", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this project", - "name": "secondarystorageavailable", + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" + }, + { + "description": "the provider name of the image store", + "name": "providername", "type": "string" }, { - "description": "the total number of virtual machines available for this project to acquire", - "name": "vmavailable", + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" + }, + {}, + { + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this project", - "name": "iptotal", + "description": "the total disk size of the host", + "name": "disksizetotal", "type": "long" }, { - "description": "the name of the project", + "description": "the Zone name of the image store", + "name": "zonename", + "type": "string" + }, + { + "description": "the name of the image store", "name": "name", "type": "string" }, {}, { - "description": "the total primary storage space (in GiB) available to be used for this project", - "name": "primarystorageavailable", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.2.0" + }, + { + "description": "Revoke a direct download certificate from hosts in a zone", + "isasync": false, + "name": "revokeTemplateDirectDownloadCertificate", + "params": [ + { + "description": "(optional) alias of the SSL certificate", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the total number of snapshots available for this project", - "name": "snapshotavailable", + "description": "(optional) hypervisor type", + "length": 255, + "name": "hypervisor", + "required": false, "type": "string" }, { - "description": "the total number of networks owned by project", - "name": "networktotal", - "type": "long" + "description": "(optional) the host ID to revoke certificate", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": false, + "type": "uuid" }, { - "description": "the total number of networks available to be created for this project", - "name": "networkavailable", + "description": "id of the certificate", + "length": 255, + "name": "id", + "related": "uploadTemplateDirectDownloadCertificate,listTemplateDirectDownloadCertificates", + "required": false, + "type": "uuid" + }, + { + "description": "(optional) zone to revoke certificate", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "related": "provisionTemplateDirectDownloadCertificate", + "response": [ + { + "description": "the name of the host", + "name": "hostname", "type": "string" }, + {}, { - "description": "the total number of snapshots stored by this project", - "name": "snapshottotal", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total secondary storage space (in GiB) the project can own", - "name": "secondarystoragelimit", + "description": "indicates the details in case of failure or host skipped", + "name": "details", "type": "string" }, + {}, { - "description": "the domain id the project belongs to", - "name": "domainid", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "the total number of public ip addresses this project can acquire", - "name": "iplimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "indicates if the certificate has been revoked from the host, failed or skipped", + "name": "status", + "type": "string" + } + ], + "since": "4.13" + }, + { + "description": "Syncs capabilities of storage pools", + "isasync": false, + "name": "updateStorageCapabilities", + "params": [ + { + "description": "Storage pool id", + "length": 255, + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "required": true, + "type": "uuid" + } + ], + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "response": [ + { + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" }, { - "description": "the displaytext of the project", - "name": "displaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the total number of cpu cores owned by project", - "name": "cputotal", + "description": "the total disk size of the storage pool", + "name": "disksizetotal", "type": "long" }, { - "description": "the total number of virtual machines deployed by this project", - "name": "vmtotal", + "description": "the host's currently used disk size", + "name": "disksizeused", "type": "long" }, { - "description": "the account name of the project's owners", - "name": "owner", - "type": "list" - }, - { - "description": "the total number of vpcs available to be created for this project", - "name": "vpcavailable", - "type": "string" + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" }, { - "description": "the total number of virtual machines that can be deployed by this project", - "name": "vmlimit", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" }, { - "description": "the total memory (in MB) the project can own", - "name": "memorylimit", + "description": "the Pod ID of the storage pool", + "name": "podid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the storage pool", + "name": "name", "type": "string" }, + {}, { - "description": "the total number of vpcs the project can own", - "name": "vpclimit", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this project", - "name": "memoryavailable", + "description": "Storage provider for this pool", + "name": "provider", "type": "string" }, { - "description": "the total memory (in MB) owned by project", - "name": "memorytotal", - "type": "long" - }, - { - "description": "the total number of virtual machines running for this project", - "name": "vmrunning", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the date this project was created", + "description": "the date and time the storage pool was created", "name": "created", "type": "date" }, { - "description": "the total primary storage space (in GiB) owned by project", - "name": "primarystoragetotal", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total number of networks the project can own", - "name": "networklimit", + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "the id of the project", - "name": "id", - "type": "string" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the total number of templates which have been created by this project", - "name": "templatetotal", - "type": "long" + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" }, { - "description": "the total volume being used by this project", - "name": "volumetotal", - "type": "long" + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" }, { - "description": "the total volume which can be used by this project", - "name": "volumelimit", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, { - "description": "the list of resource tags associated with vm", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the total primary storage space (in GiB) the project can own", - "name": "primarystoragelimit", + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "the total number of cpu cores available to be created for this project", - "name": "cpuavailable", + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "the domain name where the project belongs to", - "name": "domain", + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", "type": "string" }, { - "description": "the total number of public ip addresses available for this project to acquire", - "name": "ipavailable", + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, { - "description": "the total number of templates which can be created by this project", - "name": "templatelimit", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the total secondary storage space (in GiB) owned by project", - "name": "secondarystoragetotal", - "type": "float" - }, - { - "description": "the total number of cpu cores the project can own", - "name": "cpulimit", + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", "type": "string" }, { - "description": "the total number of templates available to be created by this project", - "name": "templateavailable", + "description": "the Zone ID of the storage pool", + "name": "zoneid", "type": "string" }, { - "description": "the project account name of the project", - "name": "projectaccountname", - "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Get API limit count for the caller", - "isasync": false, - "name": "getApiLimit", - "params": [], - "related": "", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" }, - {}, { - "description": "currently allowed number of apis", - "name": "apiAllowed", - "type": "int" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, { - "description": "the account uuid of the api remaining count", - "name": "accountid", + "description": "the storage pool path", + "name": "path", "type": "string" }, - {}, { - "description": "the account name of the api remaining count", - "name": "account", + "description": "the storage pool type", + "name": "type", "type": "string" }, { - "description": "seconds left to reset counters", - "name": "expireAfter", - "type": "long" + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", + "type": "boolean" }, { - "description": "number of api already issued", - "name": "apiIssued", - "type": "int" + "description": "the scope of the storage pool", + "name": "scope", + "type": "string" } - ] + ], + "since": "4.16.0" }, { - "description": "Deletes a storage network IP Range.", - "isasync": true, - "name": "deleteStorageNetworkIpRange", + "description": "Delete Project roles in CloudStack", + "isasync": false, + "name": "deleteProjectRole", "params": [ { - "description": "the uuid of the storage network ip range", + "description": "ID of the project role to be deleted", "length": 255, "name": "id", - "related": "createStorageNetworkIpRange,listStorageNetworkIpRange", + "related": "createProjectRole,listProjectRoles,updateProjectRole", + "required": true, + "type": "uuid" + }, + { + "description": "ID of the project from where the role is to be deleted", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "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", - "name": "jobid", + "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": "any text associated with the success or failure", - "name": "displaytext", + "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": "3.0.0" + "since": "4.15.0" }, { - "description": "Adds a VMware datacenter to specified zone", + "description": "Changes ownership of a Volume from one account to another.", "isasync": false, - "name": "addVmwareDc", + "name": "assignVolume", "params": [ { - "description": "The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", - "length": 255, - "name": "vcenter", - "required": true, - "type": "string" - }, - { - "description": "The password for specified username.", + "description": "The ID of the account to which the volume will be assigned. Mutually exclusive with parameter 'projectid'.", "length": 255, - "name": "password", + "name": "accountid", + "related": "createAccount,disableAccount,enableAccount,updateAccount,listAccounts,listAccounts", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "The Username required to connect to resource.", + "description": "The ID of the project to which the volume will be assigned. Mutually exclusive with 'accountid'.", "length": 255, - "name": "username", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "string" - }, - { - "description": "The Zone ID.", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": true, "type": "uuid" }, { - "description": "Name of VMware datacenter to be added to specified zone.", + "description": "The ID of the volume to be reassigned.", "length": 255, - "name": "name", + "name": "volumeid", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", "required": true, - "type": "string" + "type": "uuid" } ], - "related": "", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "response": [ { - "description": "The VMware Datacenter ID", - "name": "id", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "The VMware Datacenter name", - "name": "name", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, { - "description": "The VMware vCenter name/ip", - "name": "vcenter", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" }, { - "description": "the Zone ID associated with this VMware Datacenter", - "name": "zoneid", + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" + }, + { + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", + "type": "string" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", "type": "long" - } - ] - }, - { - "description": "Updates Ipv6 firewall rule with specified ID", - "isasync": true, - "name": "updateIpv6FirewallRule", - "params": [ + }, + {}, { - "description": "the starting port of Ipv6 firewall rule", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" }, { - "description": "an optional field, whether to the display the Ipv6 firewall rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", + "description": "size of the disk volume", + "name": "size", + "type": "long" + }, + { + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" + }, + { + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", "type": "boolean" }, { - "description": "the ending port of Ipv6 firewall rule", - "length": 255, - "name": "endport", - "required": false, - "type": "integer" + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "the traffic type for the Ipv6 firewall rule, can be Ingress or Egress, defaulted to Ingress if not specified", - "length": 255, - "name": "traffictype", - "required": false, + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the protocol for the Ipv6 firewall rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", - "length": 255, - "name": "protocol", - "required": false, + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "type of the ICMP message being sent", - "length": 255, - "name": "icmptype", - "required": false, - "type": "integer" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "the ID of the ipv6 firewall rule", - "length": 255, - "name": "id", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule,updateIpv6FirewallRule", - "required": true, - "type": "uuid" + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, { - "description": "the cidr list to allow traffic from/to. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "error code for this ICMP message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" - } - ], - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "response": [ + "description": "display name of the virtual machine", + "name": "vmdisplayname", + "type": "string" + }, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" + }, + { + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the ID of the port forwarding rule", - "name": "id", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", + "description": "the date the disk volume was created", + "name": "created", + "type": "date" + }, + { + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" + }, + { + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" + }, + { + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the state of the rule", + "description": "the project id of the vpn", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "the state of the disk volume", "name": "state", "type": "string" }, - {}, - {}, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, + { + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { - "description": "the list of resource tags associated with the rule", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the domain associated with the disk volume", + "name": "domain", + "type": "string" + }, + { + "description": "name of the availability zone", + "name": "zonename", + "type": "string" + }, + { + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -61078,23 +53255,23 @@ "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -61103,226 +53280,161 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", "type": "string" } ], - "type": "list" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Updates ISO permissions", - "isasync": false, - "name": "updateIsoPermissions", - "params": [ - { - "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.", - "length": 255, - "name": "projectids", - "related": "activateProject,createProject", - "required": false, - "type": "list" + "type": "set" }, { - "description": "true for public template/iso, false for private templates/isos", - "length": 255, - "name": "ispublic", - "required": false, + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "a comma delimited list of accounts within caller's domain. If specified, \"op\" parameter has to be passed in.", - "length": 255, - "name": "accounts", - "required": false, - "type": "list" - }, - { - "description": "true for featured template/iso, false otherwise", - "length": 255, - "name": "isfeatured", - "required": false, - "type": "boolean" + "description": "the path of the volume", + "name": "path", + "type": "string" }, + {}, { - "description": "the template ID", - "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin", - "length": 255, - "name": "isextractable", - "required": false, - "type": "boolean" + "description": "type of the virtual machine", + "name": "vmtype", + "type": "string" }, { - "description": "permission operator (add, remove, reset)", - "length": 255, - "name": "op", - "required": false, + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, - {}, - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ] - }, - { - "description": "Deletes VPC offering", - "isasync": true, - "name": "deleteVPCOffering", - "params": [ { - "description": "the ID of the VPC offering", - "length": 255, - "name": "id", - "related": "updateVPCOffering,listVPCOfferings", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the status of the volume", + "name": "status", + "type": "string" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, - {}, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the virtual machine", + "name": "vmname", "type": "string" - } - ] - }, - { - "description": "Deletes a network ACL", - "isasync": true, - "name": "deleteNetworkACL", - "params": [ + }, { - "description": "the ID of the network ACL", - "length": 255, - "name": "id", - "related": "createNetworkACL,updateNetworkACLItem,moveNetworkAclItem", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "state of the virtual machine", + "name": "vmstate", + "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" - }, - {} - ] + } + ], + "since": "4.18.0.0" }, { - "description": "List Autonomous Systems Number Ranges", + "description": "Deletes a userdata", "isasync": false, - "name": "listASNRanges", + "name": "deleteUserData", "params": [ { - "description": "List by keyword", + "description": "an optional project for the userdata", "length": 255, - "name": "keyword", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "an optional domainId for the userdata. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "pagesize", + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "", + "description": "the ID of the Userdata", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "id", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "the zone ID", + "description": "an optional account for the userdata. Must be used with domainId.", "length": 255, - "name": "zoneid", - "related": "createZone,listZones", + "name": "account", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "", "response": [ + {}, { - "description": "End AS Number", - "name": "endasn", - "type": "long" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "Zone ID", - "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", @@ -61330,614 +53442,293 @@ "type": "string" }, { - "description": "Created date", - "name": "created", - "type": "date" - }, - { - "description": "ID of the AS Number Range", - "name": "id", + "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": "Start AS Number", - "name": "startasn", - "type": "long" - }, - {}, - {} + } ], - "since": "4.20.0" + "since": "4.18" }, { - "description": "create Tungsten-Fabric tag", - "isasync": true, - "name": "createTungstenFabricTag", + "description": "Get SolidFire Account ID", + "isasync": false, + "name": "getSolidFireAccountId", "params": [ { - "description": "Tungsten-Fabric tag type", + "description": "CloudStack Account UUID", "length": 255, - "name": "tagtype", + "name": "accountid", "required": true, "type": "string" }, { - "description": "Tungsten-Fabric tag value", + "description": "Storage Pool UUID", "length": 255, - "name": "tagvalue", + "name": "storageid", "required": true, "type": "string" - }, - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "createZone,listZones", - "required": true, - "type": "uuid" } ], - "related": "listTungstenFabricTag,applyTungstenFabricTag", + "related": "", "response": [ - { - "description": "list Tungsten-Fabric policy", - "name": "policy", - "type": "list" - }, - { - "description": "list Tungsten-Fabric vm", - "name": "vm", - "type": "list" - }, - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", - "type": "string" - }, - { - "description": "list Tungsten-Fabric network", - "name": "network", - "type": "list" - }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "SolidFire Account ID", + "name": "solidFireAccountId", + "type": "long" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric tag name", - "name": "name", - "type": "string" - }, - {}, - { - "description": "list Tungsten-Fabric nic", - "name": "nic", - "type": "list" - } - ] - }, - { - "description": "Adds an OpenDyalight controler", - "isasync": true, - "name": "addOpenDaylightController", - "params": [ - { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "createPhysicalNetwork,listPhysicalNetworks,updatePhysicalNetwork", - "required": true, - "type": "uuid" - }, - { - "description": "Api URL of the OpenDaylight Controller.", - "length": 255, - "name": "url", - "required": true, - "type": "string" - }, - { - "description": "Credential to access the OpenDaylight API", - "length": 255, - "name": "password", - "required": true, - "type": "string" - }, - { - "description": "Username to access the OpenDaylight API", - "length": 255, - "name": "username", - "required": true, - "type": "string" - } - ], - "related": "deleteOpenDaylightController", - "response": [ - { - "description": "the physical network to which this controller belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "device id of the controller", - "name": "id", - "type": "string" - }, {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - }, - { - "description": "the username to authenticate to the controller", - "name": "username", - "type": "string" - }, - { - "description": "the name assigned to the controller", - "name": "name", - "type": "string" - }, - {}, - { - "description": "the url of the controller api", - "name": "url", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" } ] }, { - "description": "Creates a Zone.", + "description": "Lists role permissions", "isasync": false, - "name": "createZone", + "name": "listRolePermissions", "params": [ { - "description": "true if local storage offering enabled, false otherwise", - "length": 255, - "name": "localstorageenabled", - "required": false, - "type": "boolean" - }, - { - "description": "the first internal DNS for the Zone", - "length": 255, - "name": "internaldns1", - "required": true, - "type": "string" - }, - { - "description": "the second DNS for IPv6 network in the Zone", - "length": 255, - "name": "ip6dns2", - "required": false, - "type": "string" - }, - { - "description": "true if network is security group enabled, false otherwise", - "length": 255, - "name": "securitygroupenabled", - "required": false, - "type": "boolean" - }, - { - "description": "network type of the zone, can be Basic or Advanced", - "length": 255, - "name": "networktype", - "required": true, - "type": "string" - }, - { - "description": "Allocation state of this Zone for allocation of new resources", - "length": 255, - "name": "allocationstate", - "required": false, - "type": "string" - }, - { - "description": "true if the zone is an edge zone, false otherwise", - "length": 255, - "name": "isedge", - "required": false, - "since": "4.18.0", - "type": "boolean" - }, - { - "description": "the second internal DNS for the Zone", - "length": 255, - "name": "internaldns2", - "required": false, - "type": "string" - }, - { - "description": "the name of the Zone", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "the first DNS for the Zone", - "length": 255, - "name": "dns1", - "required": true, - "type": "string" - }, - { - "description": "the second DNS for the Zone", - "length": 255, - "name": "dns2", - "required": false, - "type": "string" - }, - { - "description": "the ID of the containing domain, null for public zones", + "description": "ID of the role", "length": 255, - "name": "domainid", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "roleid", + "related": "createRole,importRole,listRoles,updateRole", "required": false, "type": "uuid" - }, - { - "description": "the guest CIDR address for the Zone", - "length": 255, - "name": "guestcidraddress", - "required": false, - "type": "string" - }, - { - "description": "Network domain name for the networks in the zone", - "length": 255, - "name": "domain", - "required": false, - "type": "string" - }, - { - "description": "the first DNS for IPv6 network in the Zone", - "length": 255, - "name": "ip6dns1", - "required": false, - "type": "string" } ], - "related": "listZones", + "related": "", "response": [ { - "description": "the network type of the zone; can be Basic or Advanced", - "name": "networktype", - "type": "string" - }, - { - "description": "Zone name", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "The maximum value the MTU can have on the VR's private interfaces", - "name": "routerprivateinterfacemaxmtu", - "type": "integer" - }, - { - "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 dhcp Provider for the Zone", - "name": "dhcpprovider", + "description": "the name of the role to which the role permission belongs", + "name": "rolename", "type": "string" }, + {}, + {}, { - "description": "the type of the zone - core or edge", - "name": "type", + "description": "the api name or wildcard rule", + "name": "rule", "type": "string" }, { - "description": "the name of the containing domain, null for public zones", - "name": "domainname", + "description": "the ID of the role to which the role permission belongs", + "name": "roleid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the role permission", + "name": "id", "type": "string" }, - {}, - { - "description": "the list of resource tags associated with zone.", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, { - "description": "AS Number Range", - "name": "asnrange", + "description": "the permission type of the api name or wildcard rule, allow/deny", + "name": "permission", "type": "string" }, { - "description": "the second IPv6 DNS for the Zone", - "name": "ip6dns2", + "description": "the description of the role permission", + "name": "description", "type": "string" }, { - "description": "true if local storage offering enabled, false otherwise", - "name": "localstorageenabled", - "type": "boolean" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.9.0" + }, + { + "description": "Lists all network services provided by CloudStack or for the given Provider.", + "isasync": false, + "name": "listSupportedNetworkServices", + "params": [ { - "description": "true, if zone contains clusters and hosts from different CPU architectures", - "name": "ismultiarch", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "Zone id", - "name": "id", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "true, if zone is NSX enabled", - "name": "isnsxenabled", - "type": "boolean" + "description": "network service name to list providers and capabilities of", + "length": 255, + "name": "service", + "required": false, + "type": "string" }, { - "description": "the first IPv6 DNS for the Zone", - "name": "ip6dns1", + "description": "network service provider name", + "length": 255, + "name": "provider", + "required": false, "type": "string" }, { - "description": "the UUID of the containing domain, null for public zones", - "name": "domainid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" + } + ], + "related": "", + "response": [ + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the second internal DNS for the Zone", - "name": "internaldns2", + "description": "the service name", + "name": "name", "type": "string" }, { - "description": "the capacity of the Zone", - "name": "capacity", + "description": "the list of capabilities", + "name": "capability", "response": [ { - "description": "the Zone name", - "name": "zonename", + "description": "the capability name", + "name": "name", "type": "string" }, { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "the Zone ID", - "name": "zoneid", + "description": "the capability value", + "name": "value", "type": "string" }, { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ { - "description": "the Pod ID", - "name": "podid", - "type": "string" + "description": "services for this provider", + "name": "servicelist", + "type": "list" }, { - "description": "the Pod name", - "name": "podname", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the Cluster name", - "name": "clustername", + "description": "state of the network provider", + "name": "state", "type": "string" }, { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" }, { - "description": "the capacity name", + "description": "the provider name", "name": "name", "type": "string" }, { - "description": "The tag for the capacity type", - "name": "tag", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" + "description": "uuid of the network provider", + "name": "id", + "type": "string" } ], "type": "list" - }, - { - "description": "Allow end users to specify VR MTU", - "name": "allowuserspecifyvrmtu", - "type": "boolean" - }, - { - "description": "the display text of the zone", - "name": "displaytext", - "type": "string" - }, - { - "description": "Network domain name for the networks in the zone", - "name": "domain", - "type": "string" - }, - { - "description": "the guest CIDR address for the Zone", - "name": "guestcidraddress", - "type": "string" - }, - { - "description": "the first internal DNS for the Zone", - "name": "internaldns1", - "type": "string" - }, + } + ], + "since": "3.0.0" + }, + { + "description": "Deletes a particular ingress rule from this security group", + "isasync": true, + "name": "revokeSecurityGroupIngress", + "params": [ { - "description": "Zone description", - "name": "description", - "type": "string" - }, + "description": "The ID of the ingress rule", + "length": 255, + "name": "id", + "related": "authorizeSecurityGroupIngress", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "the second DNS for the Zone", - "name": "dns2", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Zone Token", - "name": "zonetoken", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "The maximum value the MTU can have on the VR's public interfaces", - "name": "routerpublicinterfacemaxmtu", - "type": "integer" - }, - { - "description": "the allocation state of the cluster", - "name": "allocationstate", - "type": "string" - }, - { - "description": "the first DNS for the Zone", - "name": "dns1", - "type": "string" - }, - {} + } ] }, { - "description": "Lists all children domains belonging to a specified domain", + "description": "Lists dedicated guest vlan ranges", "isasync": false, - "name": "listDomainChildren", + "name": "listDedicatedGuestVlanRanges", "params": [ { - "description": "flag to display the resource icon for domains", + "description": "project who will own the guest VLAN range", "length": 255, - "name": "showicon", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "boolean" + "type": "uuid" }, { "description": "", @@ -61947,40 +53738,49 @@ "type": "integer" }, { - "description": "list children domain by parent domain ID.", + "description": "", "length": 255, - "name": "id", - "related": "createDomain,listDomainChildren,listDomains,listDomains,moveDomain", + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "zone of the guest VLAN range", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false", + "description": "the dedicated guest vlan range", "length": 255, - "name": "listall", + "name": "guestvlanrange", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "to return the entire tree, use the value \"true\". To return the first level children, use the value \"false\".", + "description": "the account with which the guest VLAN range is associated. Must be used with the domainId parameter.", "length": 255, - "name": "isrecursive", + "name": "account", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "", + "description": "list dedicated guest vlan ranges by id", "length": 255, - "name": "page", + "name": "id", + "related": "listDedicatedGuestVlanRanges", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "list children domains by name", + "description": "the domain ID with which the guest VLAN range is associated. If used with the account parameter, returns all guest VLAN ranges for that account in the specified domain.", "length": 255, - "name": "name", + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { "description": "List by keyword", @@ -61988,1232 +53788,1116 @@ "name": "keyword", "required": false, "type": "string" + }, + { + "description": "physical network id of the guest VLAN range", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": false, + "type": "uuid" } ], - "related": "createDomain,listDomains,listDomains,moveDomain", + "related": "", "response": [ { - "description": "details for the domain", - "name": "domaindetails", - "type": "map" + "description": "the domain name of the guest VLAN range", + "name": "domain", + "type": "string" }, { - "description": "the total number of projects the domain can own", - "name": "projectlimit", - "type": "string" + "description": "the zone of the guest vlan range", + "name": "zoneid", + "type": "long" }, + {}, { - "description": "the date when this domain was created", - "name": "created", - "type": "date" + "description": "the domain ID of the guest VLAN range", + "name": "domainid", + "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by domain", - "name": "primarystoragetotal", + "description": "the physical network of the guest vlan range", + "name": "physicalnetworkid", "type": "long" }, { - "description": "the total number of snapshots available for this domain", - "name": "snapshotavailable", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the total number of templates available to be created by this domain", - "name": "templateavailable", + "description": "the project name of the guest vlan range", + "name": "project", "type": "string" }, { - "description": "the ID of the domain", - "name": "id", + "description": "path of the domain to which the guest VLAN range belongs", + "name": "domainpath", "type": "string" }, { - "description": "the total volume available for this domain", - "name": "volumeavailable", + "description": "the guest VLAN range", + "name": "guestvlanrange", "type": "string" }, { - "description": "the total number of public ip addresses this domain can acquire", - "name": "iplimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the state of the domain", - "name": "state", + "description": "the ID of the guest VLAN range", + "name": "id", "type": "string" }, { - "description": "the total number of cpu cores owned by domain", - "name": "cputotal", - "type": "long" + "description": "the account of the guest VLAN range", + "name": "account", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the guest vlan range", + "name": "projectid", "type": "string" - }, + } + ] + }, + { + "description": "Adds a network serviceProvider to a physical network", + "isasync": true, + "name": "addNetworkServiceProvider", + "params": [ { - "description": "the level of the domain", - "name": "level", - "type": "integer" + "description": "the destination Physical Network ID to bridge to", + "length": 255, + "name": "destinationphysicalnetworkid", + "related": "createPhysicalNetwork", + "required": false, + "type": "uuid" }, { - "description": "the total number of cpu cores the domain can own", - "name": "cpulimit", + "description": "the name for the physical network service provider", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by domain", - "name": "secondarystoragetotal", - "type": "float" + "description": "the list of services to be enabled for this physical network service provider", + "length": 255, + "name": "servicelist", + "required": false, + "type": "list" }, { - "description": "the domain ID of the parent domain", - "name": "parentdomainid", - "type": "string" - }, + "description": "the Physical Network ID to add the provider to", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": true, + "type": "uuid" + } + ], + "related": "listNetworkServiceProviders,listTrafficTypes", + "response": [ { - "description": "the total volume being used by this domain", - "name": "volumetotal", - "type": "long" + "description": "services for this provider", + "name": "servicelist", + "type": "list" }, { - "description": "the total number of vpcs the domain can own", - "name": "vpclimit", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "uuid of the network provider", + "name": "id", + "type": "string" }, { - "description": "the total memory (in MB) the domain can own", - "name": "memorylimit", + "description": "the provider name", + "name": "name", "type": "string" }, { - "description": "the total number of projects being administrated by this domain", - "name": "projecttotal", - "type": "long" + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "the total volume which can be used by this domain", - "name": "volumelimit", + "description": "state of the network provider", + "name": "state", "type": "string" }, + {}, { - "description": "the total number of templates which can be created by this domain", - "name": "templatelimit", - "type": "string" + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the total number of virtual machines that can be deployed by this domain", - "name": "vmlimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Lists all network ACL items", + "isasync": false, + "name": "listNetworkACLs", + "params": [ + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the total number of snapshots which can be stored by this domain", - "name": "snapshotlimit", - "type": "string" + "description": "list network ACL items by network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listNiciraNvpDeviceNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the total number of snapshots stored by this domain", - "name": "snapshottotal", - "type": "long" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "the total number of networks owned by domain", - "name": "networktotal", - "type": "long" + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the total primary storage space (in GiB) available to be used for this domain", - "name": "primarystorageavailable", + "description": "list network ACL items by action", + "length": 255, + "name": "action", + "required": false, "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the domain name of the parent domain", - "name": "parentdomainname", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "list network ACL items by traffic type - ingress or egress", + "length": 255, + "name": "traffictype", + "required": false, "type": "string" }, { - "description": "the total number of virtual machines deployed by this domain", - "name": "vmtotal", - "type": "long" + "description": "list network ACL items by protocol", + "length": 255, + "name": "protocol", + "required": false, + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Lists network ACL Item with the specified ID", + "length": 255, + "name": "id", + "related": "createNetworkACL,listNetworkACLs,updateNetworkACLItem,moveNetworkAclItem", + "required": false, + "type": "uuid" }, { - "description": "the total memory (in MB) owned by domain", - "name": "memorytotal", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the total number of cpu cores available to be created for this domain", - "name": "cpuavailable", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the total memory (in MB) available to be created for this domain", - "name": "memoryavailable", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the total number of public ip addresses available for this domain to acquire", - "name": "ipavailable", - "type": "string" + "description": "list network ACL items by ACL ID", + "length": 255, + "name": "aclid", + "related": "createNetworkACLList,listNetworkACLLists", + "required": false, + "type": "uuid" }, { - "description": "whether the domain has one or more sub-domains", - "name": "haschild", - "type": "boolean" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the total number of vpcs available to be created for this domain", - "name": "vpcavailable", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + } + ], + "related": "createNetworkACL,updateNetworkACLItem,moveNetworkAclItem", + "response": [ + { + "description": "the traffic type for the ACL", + "name": "traffictype", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this domain", - "name": "secondarystorageavailable", + "description": "the starting port of ACL's port range", + "name": "startport", "type": "string" }, { - "description": "the total number of templates which have been created by this domain", - "name": "templatetotal", - "type": "long" + "description": "the protocol of the ACL", + "name": "protocol", + "type": "string" }, { - "description": "the total number of virtual machines available for this domain to acquire", - "name": "vmavailable", + "description": "Action of ACL Item. Allow/Deny", + "name": "action", "type": "string" }, { - "description": "the total number of networks available to be created for this domain", - "name": "networkavailable", + "description": "an explanation on why this ACL rule is being applied", + "name": "reason", "type": "string" }, { - "description": "the path of the domain", - "name": "path", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the total number of networks the domain can own", - "name": "networklimit", + "description": "the ending port of ACL's port range", + "name": "endport", "type": "string" }, {}, { - "description": "the total number of vpcs owned by domain", - "name": "vpctotal", - "type": "long" + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" }, { - "description": "the name of the domain", - "name": "name", + "description": "the ID of the ACL this item belongs to", + "name": "aclid", "type": "string" }, { - "description": "the total primary storage space (in GiB) the domain can own", - "name": "primarystoragelimit", + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the ID of the ACL Item", + "name": "id", "type": "string" }, + {}, { - "description": "the total secondary storage space (in GiB) the domain can own", - "name": "secondarystoragelimit", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "The tagged resource limit and count for the domain", - "name": "taggedresources", - "type": "list" + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" }, { - "description": "the total number of projects available for administration by this domain", - "name": "projectavailable", + "description": "the name of the ACL this item belongs to", + "name": "aclname", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this domain", - "name": "iptotal", - "type": "long" + "description": "the list of resource tags associated with the network ACLs", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "list" }, - {} - ] - }, - { - "description": "Returns an encrypted password for the VM", - "isasync": false, - "name": "getVMPassword", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ { - "description": "The base64 encoded encrypted password of the VM", - "name": "encryptedpassword", - "type": "string" + "description": "Number of the ACL Item", + "name": "number", + "type": "integer" }, - {}, { "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": "Assign load balancer rule or list of load balancer rules to a global load balancer rules.", + "description": "Delete site to site vpn gateway", "isasync": true, - "name": "assignToGlobalLoadBalancerRule", + "name": "deleteVpnGateway", "params": [ { - "description": "Map of LB rule id's and corresponding weights (between 1-100) in the GSLB rule, if not specified weight of a LB rule is defaulted to 1. Specified as 'gslblbruleweightsmap[0].loadbalancerid=UUID&gslblbruleweightsmap[0].weight=10'", - "length": 255, - "name": "gslblbruleweightsmap", - "required": false, - "type": "map" - }, - { - "description": "the list load balancer rules that will be assigned to global load balancer rule", - "length": 255, - "name": "loadbalancerrulelist", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": true, - "type": "list" - }, - { - "description": "the ID of the global load balancer rule", + "description": "id of customer gateway", "length": 255, "name": "id", - "related": "listGlobalLoadBalancerRules,updateGlobalLoadBalancerRule", + "related": "createVpnGateway,listVpnGateways,updateVpnGateway", "required": true, "type": "uuid" } ], "response": [ { - "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" + }, {}, { "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": "Adds S3 Image Store", + "description": "Creates a service offering.", "isasync": false, - "name": "addImageStoreS3", + "name": "createServiceOffering", "params": [ { - "description": "S3 endpoint", + "description": "burst bytes read rate of the disk offering", "length": 255, - "name": "endpoint", - "required": true, - "type": "string" + "name": "bytesreadratemax", + "required": false, + "type": "long" }, { - "description": "S3 secret key", + "description": "The deployment planner heuristics used to deploy a VM of this offering. If null, value of global config vm.deployment.planner is used", "length": 255, - "name": "secretkey", - "required": true, + "name": "deploymentplanner", + "required": false, "type": "string" }, { - "description": "Use HTTPS instead of HTTP", + "description": "length (in seconds) of the burst", "length": 255, - "name": "usehttps", + "name": "byteswriteratemaxlength", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "Name of the storage bucket", + "description": "max iops of the compute offering", "length": 255, - "name": "bucket", - "required": true, - "type": "string" + "name": "maxiops", + "required": false, + "since": "4.4", + "type": "long" }, { - "description": "S3 access key", + "description": "the name of the service offering", "length": 255, - "name": "accesskey", + "name": "name", "required": true, "type": "string" }, { - "description": "Maximum number of times to retry on error", - "length": 255, - "name": "maxerrorretry", - "required": false, - "type": "integer" - }, - { - "description": "Whether TCP keep-alive is used", + "description": "io requests write rate of the disk offering", "length": 255, - "name": "usetcpkeepalive", + "name": "iopswriterate", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "Connection timeout (milliseconds)", + "description": "The maximum memory size of the custom service offering in MB", "length": 255, - "name": "connectiontimeout", + "name": "maxmemory", "required": false, + "since": "4.13", "type": "integer" }, { - "description": "Socket timeout (milliseconds)", + "description": "Name of the storage policy defined at vCenter, this is applicable only for VMware", "length": 255, - "name": "sockettimeout", + "name": "storagepolicy", "required": false, - "type": "integer" + "since": "4.15", + "type": "uuid" }, { - "description": "Connection TTL (milliseconds)", + "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", "length": 255, - "name": "connectionttl", + "name": "diskofferingstrictness", "required": false, - "type": "integer" + "since": "4.17", + "type": "boolean" }, { - "description": "Signer Algorithm to use, either S3SignerType or AWSS3V4SignerType", + "description": "the system VM type. Possible types are \"domainrouter\", \"consoleproxy\" and \"secondarystoragevm\".", "length": 255, - "name": "s3signer", + "name": "systemvmtype", "required": false, "type": "string" - } - ], - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore,listImageStores", - "response": [ - { - "description": "the Zone ID of the image store", - "name": "zoneid", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the protocol of the image store", - "name": "protocol", - "type": "string" }, { - "description": "the ID of the image store", - "name": "id", - "type": "string" + "description": "the Root disk size in GB.", + "length": 255, + "name": "rootdisksize", + "required": false, + "since": "4.15", + "type": "long" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the total memory of the service offering in MB", + "length": 255, + "name": "memory", + "required": false, + "type": "integer" }, { - "description": "the name of the image store", - "name": "name", + "description": "the storage type of the service offering. Values are local and shared.", + "length": 255, + "name": "storagetype", + "required": false, "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" - }, - {}, - { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the ID of the containing zone(s), null for public offerings", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "since": "4.13", + "type": "list" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the ID of the containing domain(s), null for public offerings", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "length": 255, + "name": "hypervisorsnapshotreserve", + "required": false, + "since": "4.4", "type": "integer" }, { - "description": "the url of the image store", - "name": "url", - "type": "string" - }, - { - "description": "the provider name of the image store", - "name": "providername", - "type": "string" + "description": "whether compute offering iops is custom or not", + "length": 255, + "name": "customizediops", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", + "description": "bytes read rate of the disk offering", + "length": 255, + "name": "bytesreadrate", + "required": false, "type": "long" }, { - "description": "the Zone name of the image store", - "name": "zonename", - "type": "string" - } - ], - "since": "4.7.0" - }, - { - "description": "Upload a certificate for HTTPS direct template download on KVM hosts", - "isasync": false, - "name": "uploadTemplateDirectDownloadCertificate", - "params": [ - { - "description": "Hypervisor type", + "description": "the HA for the service offering", "length": 255, - "name": "hypervisor", - "required": true, - "type": "string" + "name": "offerha", + "required": false, + "type": "boolean" }, { - "description": "SSL certificate", - "length": 65535, - "name": "certificate", - "required": true, - "type": "string" + "description": "the ID of the disk offering to which service offering should be mapped", + "length": 255, + "name": "diskofferingid", + "related": "createDiskOffering,listDiskOfferings", + "required": false, + "since": "4.17", + "type": "uuid" }, { - "description": "Name for the uploaded certificate", + "description": "the host tag for this service offering.", "length": 255, - "name": "name", - "required": true, + "name": "hosttags", + "required": false, "type": "string" }, { - "description": "(optional) the host ID to upload certificate", + "description": "min iops of the compute offering", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,listHosts,reconnectHost,addBaremetalHost", + "name": "miniops", "required": false, - "type": "uuid" + "since": "4.4", + "type": "long" }, { - "description": "Zone to upload certificate", + "description": "For VMware and Xen based hypervisors this is the CPU speed of the service offering in MHz.\nFor the KVM hypervisor, the values of the parameters cpuSpeed and cpuNumber will be used to calculate the `shares` value. This value is used by the KVM hypervisor to calculate how much time the VM will have access to the host's CPU. The `shares` value does not have a unit, and its purpose is being a weight value for the host to compare between its guest VMs. For more information, see https://libvirt.org/formatdomain.html#cpu-tuning.", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - } - ], - "related": "listTemplateDirectDownloadCertificates", - "response": [ - { - "description": "the direct download certificate version", - "name": "version", - "type": "string" - }, - { - "description": "the direct download certificate issuer", - "name": "issuer", - "type": "string" + "name": "cpuspeed", + "required": false, + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "length": 255, + "name": "provisioningtype", + "required": false, "type": "string" }, { - "description": "the hosts where the certificate is uploaded to", - "name": "hostsmap", - "type": "list" + "description": "The minimum number of CPUs to be set with Custom Computer Offering", + "length": 255, + "name": "mincpunumber", + "required": false, + "since": "4.13", + "type": "integer" }, { - "description": "the direct download certificate subject", - "name": "subject", - "type": "string" + "description": "io requests read rate of the disk offering", + "length": 255, + "name": "iopsreadrate", + "required": false, + "type": "long" }, { - "description": "the direct download certificate alias", - "name": "alias", - "type": "string" + "description": "length (in seconds) of the burst", + "length": 255, + "name": "iopswriteratemaxlength", + "required": false, + "type": "long" }, - {}, { - "description": "the direct download certificate issuer", - "name": "validity", - "type": "string" + "description": "is this a system vm offering", + "length": 255, + "name": "issystem", + "required": false, + "type": "boolean" }, { - "description": "the direct download certificate id", - "name": "id", - "type": "string" + "description": "The maximum number of CPUs to be set with Custom Computer Offering", + "length": 255, + "name": "maxcpunumber", + "required": false, + "since": "4.13", + "type": "integer" }, { - "description": "the hypervisor of the hosts where the certificate is uploaded", - "name": "hypervisor", - "type": "string" + "description": "the CPU number of the service offering", + "length": 255, + "name": "cpunumber", + "required": false, + "type": "integer" }, { - "description": "the zone name where the certificate is uploaded", - "name": "zonename", - "type": "string" + "description": "Whether service offering size is custom or not", + "length": 255, + "name": "customized", + "required": false, + "since": "4.13", + "type": "boolean" }, { - "description": "the zone id where the certificate is uploaded", - "name": "zoneid", - "type": "string" + "description": "length (in seconds) of the burst", + "length": 255, + "name": "bytesreadratemaxlength", + "required": false, + "type": "long" }, - {}, { - "description": "the direct download certificate serial num", - "name": "serialnum", - "type": "string" + "description": "burst io requests write rate of the disk offering", + "length": 255, + "name": "iopswriteratemax", + "required": false, + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.11.0" - }, - { - "description": "Import unmanaged virtual machine from a given cluster.", - "isasync": true, - "name": "importUnmanagedInstance", - "params": [ - { - "description": "the host name of the instance", + "description": "The display text of the service offering, defaults to 'name'.", "length": 255, - "name": "hostname", + "name": "displaytext", "required": false, "type": "string" }, { - "description": "datadisk template to disk-offering mapping using keys disk and diskOffering", + "description": "Whether to cleanup instance and its associated resource from database upon expunge of the instance", "length": 255, - "name": "datadiskofferinglist", + "name": "purgeresources", "required": false, - "type": "map" + "since": "4.20", + "type": "boolean" }, { - "description": "VM nic to ip address mapping using keys nic, ip4Address", + "description": "bytes write rate of the disk offering", "length": 255, - "name": "nicipaddresslist", + "name": "byteswriterate", "required": false, - "type": "map" + "type": "long" }, { - "description": "the ID of the template for the virtual machine", + "description": "details for planner, used to store specific parameters", "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "serviceofferingdetails", "required": false, - "type": "uuid" + "type": "map" }, { - "description": "the cluster ID", + "description": "burst requests read rate of the disk offering", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" + "name": "iopsreadratemax", + "required": false, + "type": "long" }, { - "description": "import instance for the project", + "description": "length (in seconds) of the burst", "length": 255, - "name": "projectid", - "related": "activateProject,createProject", + "name": "iopsreadratemaxlength", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "the display name of the instance", + "description": "the tags for this service offering.", "length": 255, - "name": "displayname", + "name": "tags", "required": false, "type": "string" }, { - "description": "the name of the instance as it is known to the hypervisor", + "description": "restrict the CPU usage to committed service offering", "length": 255, - "name": "name", - "required": true, - "type": "string" + "name": "limitcpuuse", + "required": false, + "type": "boolean" }, { - "description": "used to specify the custom parameters.", + "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", "length": 255, - "name": "details", + "name": "dynamicscalingenabled", "required": false, - "type": "map" + "since": "4.16", + "type": "boolean" }, { - "description": "VM nic to network id mapping using keys nic and network", + "description": "burst bytes write rate of the disk offering", "length": 255, - "name": "nicnetworklist", + "name": "byteswriteratemax", "required": false, - "type": "map" + "type": "long" }, { - "description": "vm and its volumes are allowed to migrate to different host/pool when offerings passed are incompatible with current host/pool", + "description": "data transfer rate in megabits per second allowed. Supported only for non-System offering and system offerings having \"domainrouter\" systemvmtype", "length": 255, - "name": "migrateallowed", + "name": "networkrate", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "import instance to the domain specified", + "description": "The minimum memory size of the custom service offering in MB", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", + "name": "minmemory", "required": false, - "type": "uuid" + "since": "4.13", + "type": "integer" }, { - "description": "an optional account for the virtual machine. Must be used with domainId.", + "description": "true if the virtual machine needs to be volatile so that on every reboot of VM, original root disk is dettached then destroyed and a fresh root disk is created and attached to VM", "length": 255, - "name": "account", + "name": "isvolatile", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the service offering for the virtual machine", + "description": "VMs using this offering require root volume encryption", "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" + "name": "encryptroot", + "required": false, + "since": "4.18", + "type": "boolean" }, { - "description": "VM is imported despite some of its NIC's MAC addresses are already present, in case the MAC address exists then a new MAC address is generated", + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", "length": 255, - "name": "forced", + "name": "cachemode", "required": false, - "type": "boolean" + "since": "4.14", + "type": "string" } ], - "related": "assignVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "related": "updateServiceOffering,listServiceOfferings", "response": [ { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "is this a default system vm offering", + "name": "defaultuse", + "type": "boolean" + }, + { + "description": "burst bytes read rate of the disk offering", + "name": "diskBytesReadRateMax", "type": "long" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", + "name": "diskofferingstrictness", + "type": "boolean" + }, + { + "description": "additional key/value details tied with this service offering", + "name": "serviceofferingdetails", + "type": "map" + }, + { + "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk", + "name": "isvolatile", + "type": "boolean" + }, + { + "description": "the ID of the disk offering to which service offering is linked", + "name": "diskofferingid", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "burst bytes write rate of the disk offering", + "name": "diskBytesWriteRateMax", "type": "long" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "name": "provisioningtype", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zoneid", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "the date this service offering was created", + "name": "created", + "type": "date" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "true if virtual machine root disk will be encrypted on storage", + "name": "encryptroot", + "type": "boolean" + }, + { + "description": "burst io requests write rate of the disk offering", + "name": "diskIopsWriteRateMax", + "type": "long" + }, + {}, + { + "description": "the tags for the service offering", + "name": "storagetags", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "restrict the CPU usage to committed service offering", + "name": "limitcpuuse", "type": "boolean" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - } - ], - "type": "set" + "description": "the id of the service offering", + "name": "id", + "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "description": "length (in seconds) of the burst", + "name": "diskBytesWriteRateMaxLength", + "type": "long" + }, + { + "description": "io requests read rate of the service offering", + "name": "diskIopsReadRate", + "type": "long" + }, + { + "description": "length (in seconds) of the burst", + "name": "diskBytesReadRateMaxLength", + "type": "long" + }, + { + "description": "length (in second) of the burst", + "name": "diskIopsReadRateMaxLength", + "type": "long" + }, + { + "description": "the clock rate CPU speed in Mhz", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "name of the disk offering", "name": "diskofferingname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "burst io requests read rate of the disk offering", + "name": "diskIopsReadRateMax", "type": "long" }, - {}, { - "description": "the name of the virtual machine", + "description": "deployment strategy used to deploy VM.", + "name": "deploymentplanner", + "type": "string" + }, + { + "description": "length (in seconds) of the burst", + "name": "diskIopsWriteRateMaxLength", + "type": "long" + }, + { + "description": "io requests write rate of the service offering", + "name": "diskIopsWriteRate", + "type": "long" + }, + { + "description": "the name of the service offering", "name": "name", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "the memory in MB", + "name": "memory", + "type": "integer" + }, + { + "description": "state of the service offering", + "name": "state", + "type": "string" + }, + { + "description": "true if disk offering uses custom iops, false otherwise", + "name": "iscustomizediops", "type": "boolean" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the storage type for this service offering", + "name": "storagetype", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "is true if the offering is customized", + "name": "iscustomized", + "type": "boolean" + }, + { + "description": "the vsphere storage policy tagged to the service offering in case of VMware", + "name": "vspherestoragepolicy", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "bytes read rate of the service offering", + "name": "diskBytesReadRate", + "type": "long" + }, + { + "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", + "name": "dynamicscalingenabled", + "type": "boolean" + }, + { + "description": "data transfer rate in megabits per second allowed.", + "name": "networkrate", + "type": "integer" + }, + { + "description": "the host tag for the service offering", + "name": "hosttags", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "name": "cacheMode", + "type": "string" + }, + { + "description": "Whether to cleanup VM and its associated resource upon expunge", + "name": "purgeresources", + "type": "boolean" + }, + { + "description": "the max iops of the disk offering", + "name": "maxiops", "type": "long" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "is this a the systemvm type for system vm offering", + "name": "systemvmtype", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "name": "hypervisorsnapshotreserve", "type": "integer" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" + "description": "the number of CPU", + "name": "cpunumber", + "type": "integer" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the ha support in the service offering", + "name": "offerha", + "type": "boolean" + }, + { + "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 ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "bytes write rate of the service offering", + "name": "diskBytesWriteRate", + "type": "long" + }, + { + "description": "Root disk size in GB", + "name": "rootdisksize", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "is this a system vm offering", + "name": "issystem", + "type": "boolean" + }, + { + "description": "an alternate display text of the service offering.", + "name": "displaytext", "type": "string" }, { @@ -63222,423 +54906,492 @@ "type": "boolean" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" + "description": "the min iops of the disk offering", + "name": "miniops", + "type": "long" + } + ] + }, + { + "description": "Copies a template from one zone to another.", + "isasync": true, + "name": "copyTemplate", + "params": [ + { + "description": "ID of the zone the template is being copied to.", + "length": 255, + "name": "destzoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" + "description": "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.", + "length": 255, + "name": "sourcezoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "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": "destzoneids", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "list" + }, + { + "description": "Template ID.", + "length": 255, + "name": "id", + "related": "listIsos,registerIso,copyTemplate,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" + } + ], + "related": "listIsos,registerIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ + { + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "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 incoming network traffic on the VM in KiB", - "name": "networkkbsread", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" + }, + { + "description": "the physical size of the template", + "name": "physicalsize", "type": "long" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" }, - {}, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - } - ], - "type": "set" + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", + "type": "string" + }, + { + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", + "type": "string" + }, + { + "description": "the name of userdata linked to this template", + "name": "userdataname", + "type": "string" + }, + { + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" + }, + { + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" + }, + { + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" + }, + { + "description": "the name of the secondary storage host for the template", + "name": "hostname", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the date this template was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the project id of the template", + "name": "projectid", + "type": "string" + }, + { + "description": "CPU Arch of the template", + "name": "arch", + "type": "string" + }, + { + "description": "the id of userdata linked to this template", + "name": "userdataid", + "type": "string" + }, + { + "description": "the size of the template", + "name": "size", "type": "long" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the URL which the template/iso is registered from", + "name": "url", + "type": "string" + }, + { + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" + }, + { + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the name of the affinity group", - "name": "name", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "tag value", + "name": "value", + "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], "type": "set" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the processor bit size", + "name": "bits", + "type": "int" + }, + { + "description": "the template ID", + "name": "id", "type": "string" }, - {}, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" + }, + { + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" + }, + { + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the ID of the zone for this template", + "name": "zoneid", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the date this template was created", + "name": "created", + "type": "date" + }, + { + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the name of the domain to which the template belongs", + "name": "domain", + "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" + }, + {}, + { + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "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": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", + "type": "string" + }, + {}, + { + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "the list of resource tags associated", + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" + }, + { + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" + }, + { + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + } + ] + }, + { + "description": "lists network that are using a nicira nvp device", + "isasync": false, + "name": "listNiciraNvpDeviceNetworks", + "params": [ + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "nicira nvp device ID", + "length": 255, + "name": "nvpdeviceid", + "related": "addNiciraNvpDevice,listNiciraNvpDevices", + "required": true, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + } + ], + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "response": [ + { + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" + }, + { + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the list of resource tags associated with network", "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -63647,880 +55400,816 @@ "type": "string" } ], - "type": "set" - }, - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "type": "list" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the second IPv4 DNS for the network", + "name": "dns2", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the network's netmask", + "name": "netmask", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the domain id of the network owner", + "name": "domainid", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the project id of the vm", - "name": "projectid", + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", "type": "string" }, { - "description": "Vm details in key/value pairs.", + "description": "the details of the network", "name": "details", "type": "map" }, + {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "The IPv4 routing type of network", + "name": "ip4routing", "type": "string" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", + "type": "integer" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the id of the network", + "name": "id", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", + "type": "boolean" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the type of the network", + "name": "type", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", + "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "The internet protocol of network offering", + "name": "internetprotocol", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - } - ], - "since": "4.14.0" - }, - { - "description": "Creates a physical network", - "isasync": true, - "name": "createPhysicalNetwork", - "params": [ - { - "description": "the broadcast domain range for the physical network[Pod or Zone]. In Acton release it can be Zone only in Advance zone, and Pod in Basic", - "length": 255, - "name": "broadcastdomainrange", - "required": false, + "description": "ACL Id associated with the VPC network", + "name": "aclid", "type": "string" }, { - "description": "the Zone ID for the physical network", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "the network's gateway", + "name": "gateway", + "type": "string" }, { - "description": "the name of the physical network", - "length": 255, - "name": "name", - "required": true, + "description": "state of the network", + "name": "state", "type": "string" }, { - "description": "the VLAN for the physical network", - "length": 255, - "name": "vlan", - "required": false, + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "Tag the physical network", - "length": 255, - "name": "tags", - "required": false, + "description": "the list of services", + "name": "service", + "response": [ + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + } + ], "type": "list" }, { - "description": "the speed for the physical network[1G/10G]", - "length": 255, - "name": "networkspeed", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "domain ID of the account owning a physical network", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the isolation method for the physical network[VLAN/L3/GRE]", - "length": 255, - "name": "isolationmethods", - "required": false, - "type": "list" - } - ], - "related": "listPhysicalNetworks,updatePhysicalNetwork", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "zone id of the network", + "name": "zoneid", "type": "string" }, { - "description": "zone name of the physical network", - "name": "zonename", + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", "type": "string" }, { - "description": "comma separated tag", - "name": "tags", - "type": "string" + "description": "list networks available for vm deployment", + "name": "canusefordeploy", + "type": "boolean" }, { - "description": "Broadcast domain range of the physical network", - "name": "broadcastdomainrange", - "type": "string" + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" }, { - "description": "the domain id of the physical network owner", - "name": "domainid", - "type": "string" + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" }, { - "description": "the speed of the physical network", - "name": "networkspeed", + "description": "ACL name associated with the VPC network", + "name": "aclname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the network", + "name": "name", + "type": "string" }, { - "description": "the vlan of the physical network", - "name": "vlan", + "description": "the owner of the network", + "name": "account", "type": "string" }, { - "description": "zone id of the physical network", - "name": "zoneid", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, - {}, - {}, { - "description": "the uuid of the physical network", - "name": "id", + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "name of the physical network", - "name": "name", - "type": "string" + "description": "the date this network was created", + "name": "created", + "type": "date" }, { - "description": "state of the physical network", - "name": "state", + "description": "The external id of the network", + "name": "externalid", "type": "string" }, { - "description": "isolation methods", - "name": "isolationmethods", + "description": "the first IPv4 DNS for the network", + "name": "dns1", "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Lists autoscale vm groups.", - "isasync": false, - "name": "listAutoScaleVmGroups", - "params": [ + }, { - "description": "the ID of the profile", - "length": 255, - "name": "vmprofileid", - "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile", - "required": false, - "type": "uuid" + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the traffic type of the network", + "name": "traffictype", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "acl type - access type to the network", + "name": "acltype", "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", "type": "boolean" }, { - "description": "the name of the autoscale vmgroup", - "length": 255, - "name": "name", - "required": false, - "since": "4.18.0", + "description": "VPC the network belongs to", + "name": "vpcid", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "activateProject,createProject", - "required": false, - "type": "uuid" + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the displaytext of the network", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", + "type": "string" }, { - "description": "the availability zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "path of the Domain the network belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the ID of the policy", - "length": 255, - "name": "policyid", - "related": "listAutoScalePolicies", - "required": false, - "type": "uuid" + "description": "the name of the Network associated with this network", + "name": "associatednetwork", + "type": "string" }, { - "description": "the ID of the loadbalancer", - "length": 255, - "name": "lbruleid", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": false, - "type": "uuid" + "description": "the physical network id", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", + "type": "string" }, { - "description": "the ID of the autoscale vm group", - "length": 255, - "name": "id", - "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups", - "required": false, - "type": "uuid" - } - ], - "related": "enableAutoScaleVmGroup", - "response": [ - { - "description": "the id of the guest network the lb rule belongs to", - "name": "associatednetworkid", + "description": "network offering id the network is created from", + "name": "networkofferingid", "type": "string" }, { - "description": "the date when this vm group was created", - "name": "created", - "type": "date" + "description": "name of the network offering the network is created from", + "name": "networkofferingname", + "type": "string" }, { - "description": "the private port", - "name": "privateport", - "type": "string" + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" }, { - "description": "the autoscale profile that contains information about the vms in the vm group.", - "name": "vmprofileid", - "type": "string" + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" }, { - "description": "the domain name of the vm group", - "name": "domain", + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", "type": "string" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", - "name": "minmembers", - "type": "int" + "description": "related to what other network configuration", + "name": "related", + "type": "string" }, { - "description": "the public ip address id", - "name": "publicipid", - "type": "string" + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true network requires restart", + "name": "restartrequired", "type": "boolean" }, { - "description": "list of scaleup autoscale policies", - "name": "scaleuppolicies", - "type": "list" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "description": "the load balancer rule ID", - "name": "lbruleid", + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", "type": "string" }, - {}, { - "description": "the autoscale vm group ID", - "name": "id", - "type": "string" + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" }, { - "description": "the public ip address", - "name": "publicip", + "description": "the domain name of the network owner", + "name": "domain", "type": "string" }, { - "description": "the domain ID of the vm group", - "name": "domainid", - "type": "string" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "name": "maxmembers", - "type": "int" + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" + } + ] + }, + { + "description": "Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.", + "isasync": false, + "name": "assignVirtualMachine", + "params": [ + { + "description": "an optional project for the new VM owner.", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, - {}, { - "description": "the name of the guest network the lb rule belongs to", - "name": "associatednetworkname", - "type": "string" + "description": "domain id of the new VM owner.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the project name of the vm group", - "name": "project", - "type": "string" + "description": "list of security group ids to be applied on the virtual machine. In case no security groups are provided the VM is part of the default security group.", + "length": 255, + "name": "securitygroupids", + "related": "createSecurityGroup", + "required": false, + "type": "list" }, { - "description": "is group for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "list of new network ids in which the moved VM will participate. In case no network ids are provided the VM will be part of the default network for that zone. In case there is no network yet created for the new account the default network will be created.", + "length": 255, + "name": "networkids", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "list" }, { - "description": "the name of the autoscale vm group ", - "name": "name", - "type": "string" + "description": "id of the VM to be moved", + "length": 255, + "name": "virtualmachineid", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the project id of the vm group", - "name": "projectid", + "description": "account name of the new VM owner.", + "length": 255, + "name": "account", + "required": false, "type": "string" - }, + } + ], + "related": "migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ { - "description": "the current state of the AutoScale Vm Group", - "name": "state", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the frequency at which the conditions have to be evaluated", - "name": "interval", - "type": "int" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the lb provider of the guest network the lb rule belongs to", - "name": "lbprovider", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the public port", - "name": "publicport", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", - "name": "availablevirtualmachinecount", - "type": "int" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "list of scaledown autoscale policies", - "name": "scaledownpolicies", - "type": "list" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, { - "description": "path of the domain to which the vm group belongs", - "name": "domainpath", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the account owning the vm group", - "name": "account", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" - } - ] - }, - { - "description": "Updates a Pod.", - "isasync": false, - "name": "updatePod", - "params": [ + }, { - "description": "the ending IP address for the Pod", - "length": 255, - "name": "endip", - "required": false, + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the netmask of the Pod", - "length": 255, - "name": "netmask", - "required": false, + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "the name of the Pod", - "length": 255, - "name": "name", - "required": false, + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the gateway for the Pod", - "length": 255, - "name": "gateway", - "required": false, + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "Allocation state of this cluster for allocation of new resources", - "length": 255, - "name": "allocationstate", - "required": false, + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the starting IP address for the Pod", - "length": 255, - "name": "startip", - "required": false, + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the ID of the Pod", - "length": 255, - "name": "id", - "related": "createPod,listPods,updatePod,createManagementNetworkIpRange", - "required": true, - "type": "uuid" - } - ], - "related": "createPod,listPods,createManagementNetworkIpRange", - "response": [ + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, { - "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", - "name": "endip", - "type": "list" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the Zone name of the Pod", - "name": "zonename", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the capacity of the Pod", - "name": "capacity", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "the Zone name", - "name": "zonename", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "the Pod ID", - "name": "podid", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the Cluster ID", - "name": "clusterid", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "the percentage of capacity currently in use", - "name": "percentused", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "The tag for the capacity type", - "name": "tag", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "the Cluster name", - "name": "clustername", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the Zone ID", - "name": "zoneid", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" + "description": "the description of the affinity group", + "name": "description", + "type": "string" }, { - "description": "the capacity name", - "name": "name", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { - "description": "the Pod name", - "name": "podname", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "the capacity type", - "name": "type", - "type": "short" + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" }, { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the netmask of the Pod", - "name": "netmask", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", - "name": "vlanid", - "type": "list" - }, - { - "description": "the allocation state of the Pod", - "name": "allocationstate", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the starting IP for the Pod. This parameter is deprecated, please use 'startip' from ipranges parameter.", - "name": "startip", - "type": "list" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, - {}, - {}, { - "description": "the gateway of the Pod", - "name": "gateway", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the Zone ID of the Pod", - "name": "zoneid", + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, + { + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "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": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the name of the Pod", - "name": "name", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the IP ranges for the Pod", - "name": "ipranges", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the starting IP for the range", - "name": "startip", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the CIDR for the range", - "name": "cidr", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "indicates Vlan ID for the range", - "name": "vlanid", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "indicates if range is dedicated for CPVM and SSVM", - "name": "forsystemvms", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the gateway for the range", - "name": "gateway", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the ending IP for the range", - "name": "endip", + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the ID of the Pod", - "name": "id", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "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": "Attaches an ISO to a virtual machine.", - "isasync": true, - "name": "attachIso", - "params": [ - { - "description": "the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - }, - { - "description": "the ID of the ISO file", - "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" - }, - { - "description": "If true, ejects existing ISO before attaching on VMware. Default: false", - "length": 255, - "name": "forced", - "required": false, - "since": "4.15.1", - "type": "boolean" - } - ], - "related": "assignVirtualMachine,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { "description": "Base64 string containing the user data", @@ -64528,49 +56217,24 @@ "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" - }, - { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" - }, - { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" - }, - { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" - }, - { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", @@ -64578,174 +56242,324 @@ "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "the project name where tag belongs to", - "name": "project", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", "type": "string" } ], "type": "set" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" + }, + { + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" + }, + { + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, {}, + { + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", + "type": "string" + }, + { + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" + }, + { + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" + }, + { + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" + }, + { + "description": "State of the Service from LB rule", + "name": "servicestate", + "type": "string" + }, + { + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" + }, + { + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" + }, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, { "description": "the description of the security group", "name": "description", "type": "string" }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, { "description": "the number of virtualmachines associated with this securitygroup", "name": "virtualmachinecount", "type": "integer" }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -64754,46 +56568,46 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "the list of egress rules associated with the security group", + "name": "egressrule", "response": [ { "description": "the protocol of the security group rule", @@ -64806,23 +56620,18 @@ "type": "string" }, { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" }, { - "description": "account owning the security group rule", - "name": "account", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { @@ -64830,6 +56639,11 @@ "name": "cidr", "type": "string" }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, { "description": "the starting IP of the security group rule", "name": "startport", @@ -64839,29 +56653,39 @@ "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, { "description": "tag key name", "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -64875,261 +56699,184 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { "description": "the project id the tag belongs to", "name": "projectid", "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" } ], "type": "set" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" + "description": "account owning the security group rule", + "name": "account", + "type": "string" } ], "type": "set" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", "response": [ { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", + "description": "the starting IP of the security group rule", + "name": "startport", "type": "integer" }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], "type": "set" }, { - "description": "the starting IP of the security group rule", - "name": "startport", + "description": "the type of the ICMP message response", + "name": "icmptype", "type": "integer" }, { - "description": "the protocol of the security group rule", - "name": "protocol", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, { "description": "security group name", "name": "securitygroupname", "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" } ], "type": "set" }, { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "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": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" - }, - { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", + "description": "the account owning the security group", + "name": "account", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the project name of the group", + "name": "project", "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" } ], "type": "set" @@ -65140,185 +56887,116 @@ "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" - }, - { - "description": "the name of the virtual machine", - "name": "name", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" - }, - { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" - }, - { - "description": "User VM type", - "name": "vmtype", - "type": "string" - }, - { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" - }, - { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "device ID of the root volume", + "name": "rootdeviceid", "type": "long" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", "type": "long" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, + {}, { "description": "the user's name who deployed the virtual machine", "name": "username", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, + {}, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, - {}, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { "description": "the name of the domain in which the virtual machine exists", @@ -65326,82 +57004,106 @@ "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" + } + ], + "since": "3.0.0" + }, + { + "description": "Lists virtual machines on a unmanaged host", + "isasync": false, + "name": "listVmsForImport", + "params": [ + { + "description": "the host name or IP address", + "length": 255, + "name": "host", + "required": true, "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the username for the host", + "length": 255, + "name": "username", + "required": false, "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the password for the host", + "length": 255, + "name": "password", + "required": false, "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the zone ID", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "hypervisor type of the host", + "length": 255, + "name": "hypervisor", + "required": true, + "type": "string" + } + ], + "related": "listUnmanagedInstances", + "response": [ + { + "description": "the ID of the cluster to which virtual machine belongs", + "name": "clusterid", "type": "string" }, + {}, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the operating system of the virtual machine", + "name": "osdisplayname", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the name of the host to which virtual machine belongs", + "name": "hostname", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the power state of the virtual machine", + "name": "powerstate", "type": "string" }, { - "description": "the list of nics associated with vm", + "description": "the list of nics associated with the virtual machine", "name": "nic", "response": [ { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { @@ -65410,13 +57112,13 @@ "type": "integer" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", + "description": "MTU configured on the NIC", + "name": "mtu", "type": "integer" }, { @@ -65425,43 +57127,48 @@ "type": "list" }, { - "description": "the type of the nic", - "name": "type", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { @@ -65470,28 +57177,28 @@ "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", "type": "list" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "name": "macaddress", + "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { @@ -65499,14 +57206,24 @@ "name": "ip6address", "type": "string" }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, { "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { @@ -65515,13 +57232,13 @@ "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { @@ -65530,725 +57247,1301 @@ "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the name of the cluster to which virtual machine belongs", + "name": "clustername", + "type": "string" + }, + { + "description": "the CPU speed of the virtual machine", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "the operating system ID of the virtual machine", + "name": "osid", + "type": "string" + }, + { + "description": "the CPU cores per socket for the virtual machine. VMware specific", + "name": "cpucorepersocket", + "type": "integer" + }, + { + "description": "the CPU cores of the virtual machine", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the list of disks associated with the virtual machine", + "name": "disk", + "response": [ + { + "description": "the controller unit of the disk", + "name": "controllerunit", "type": "integer" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the controller of the disk", + "name": "datastoretype", + "type": "string" + }, + { + "description": "the capacity of the disk in bytes", + "name": "capacity", + "type": "long" + }, + { + "description": "the position of the disk", + "name": "position", + "type": "integer" + }, + { + "description": "the ID of the disk", + "name": "id", + "type": "string" + }, + { + "description": "the label of the disk", + "name": "label", + "type": "string" + }, + { + "description": "the file path of the disk image", + "name": "imagepath", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "controller", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "datastorehost", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "datastorename", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "datastorepath", "type": "string" } ], "type": "set" }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the name of the virtual machine", + "name": "name", + "type": "string" + }, {}, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the ID of the host to which virtual machine belongs", + "name": "hostid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the memory of the virtual machine in MB", + "name": "memory", + "type": "integer" + } + ], + "since": "4.19.0" + }, + { + "description": " delete a BigSwitch BCF Controller device", + "isasync": true, + "name": "deleteBigSwitchBcfDevice", + "params": [ + { + "description": "BigSwitch device ID", + "length": 255, + "name": "bcfdeviceid", + "related": "listBigSwitchBcfDevices", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "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": "NICs of the VNF appliance", - "name": "vnfnics", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.6.0" + }, + { + "description": "configures a netscaler load balancer device", + "isasync": true, + "name": "configureNetscalerLoadBalancer", + "params": [ + { + "description": "capacity of the device, Capacity will be interpreted as number of networks device can handle", + "length": 255, + "name": "lbdevicecapacity", + "required": false, + "type": "long" + }, + { + "description": "true if netscaler load balancer is intended to be used in in-line with firewall, false if netscaler load balancer will side-by-side with firewall", + "length": 255, + "name": "inline", + "required": false, + "type": "boolean" + }, + { + "description": "true if this netscaler device to dedicated for a account, false if the netscaler device will be shared by multiple accounts", + "length": 255, + "name": "lbdevicededicated", + "required": false, + "type": "boolean" + }, + { + "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "length": 255, + "name": "podids", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, "type": "list" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", + "description": "Netscaler load balancer device ID", + "length": 255, + "name": "lbdeviceid", + "related": "addNetscalerLoadBalancer,configureNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter,deployNetscalerVpx", + "required": true, + "type": "uuid" + } + ], + "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter,deployNetscalerVpx", + "response": [ + { + "description": "device capacity", + "name": "lbdevicecapacity", "type": "long" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the physical network to which this netscaler device belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", + "description": "the management IP address of the external load balancer", + "name": "ipaddress", + "type": "string" + }, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "true if device is dedicated for an account", + "name": "lbdevicededicated", + "type": "boolean" + }, + { + "description": "the private interface of the load balancer", + "name": "privateinterface", + "type": "string" + }, + { + "description": "true if NetScaler device is provisioned to be a GSLB service provider", + "name": "gslbprovider", + "type": "boolean" + }, + { + "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", + "name": "isexclusivegslbprovider", + "type": "boolean" + }, + { + "description": "public IP of the NetScaler representing GSLB site", + "name": "gslbproviderpublicip", + "type": "string" + }, + { + "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "name": "podids", + "type": "list" + }, + {}, + { + "description": "device id of the netscaler load balancer", + "name": "lbdeviceid", + "type": "string" + }, + { + "description": "device name", + "name": "lbdevicename", + "type": "string" + }, + { + "description": "private IP of the NetScaler representing GSLB site", + "name": "gslbproviderprivateip", + "type": "string" + }, + { + "description": "name of the provider", + "name": "provider", + "type": "string" + }, + { + "description": "device state", + "name": "lbdevicestate", + "type": "string" + }, + { + "description": "the public interface of the load balancer", + "name": "publicinterface", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Lists all available ovs elements.", + "isasync": false, + "name": "listOvsElements", + "params": [ + { + "description": "list ovs elements by network service provider id", + "length": 255, + "name": "nspid", + "related": "listNetworkServiceProviders,listTrafficTypes", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "list network offerings by enabled state", + "length": 255, + "name": "enabled", + "required": false, + "type": "boolean" + }, + { + "description": "list ovs elements by id", + "length": 255, + "name": "id", + "related": "listOvsElements,configureOvsElement", + "required": false, + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + } + ], + "related": "configureOvsElement", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the domain associated with the provider", + "name": "domain", + "type": "string" + }, + { + "description": "the id of the ovs", + "name": "id", + "type": "string" + }, + { + "description": "the account associated with the provider", + "name": "account", + "type": "string" + }, + { + "description": "path of the domain to which the provider belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "Enabled/Disabled the service provider", + "name": "enabled", + "type": "boolean" + }, + { + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" + }, + { + "description": "the physical network service provider id of the provider", + "name": "nspid", + "type": "string" + }, + { + "description": "the domain ID associated with the provider", "name": "domainid", "type": "string" }, + {}, + {}, + { + "description": "the project name of the address", + "name": "project", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "associate a profile to a blade", + "isasync": true, + "name": "associateUcsProfileToBlade", + "params": [ + { + "description": "ucs manager id", + "length": 255, + "name": "ucsmanagerid", + "related": "listUcsManagers,addUcsManager", + "required": true, + "type": "uuid" + }, + { + "description": "blade id", + "length": 255, + "name": "bladeid", + "related": "associateUcsProfileToBlade", + "required": true, + "type": "uuid" + }, + { + "description": "profile dn", + "length": 255, + "name": "profiledn", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "ucs blade dn", + "name": "bladedn", + "type": "string" + }, + { + "description": "ucs manager id", + "name": "ucsmanagerid", + "type": "string" + }, + { + "description": "ucs blade id", + "name": "id", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "cloudstack host id this blade associates to", + "name": "hostid", + "type": "string" + }, + { + "description": "associated ucs profile dn", + "name": "profiledn", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {} + ] + }, + { + "description": "Adds a object storage pool", + "isasync": false, + "name": "addObjectStoragePool", + "params": [ + { + "description": "the URL for the object store", + "length": 2048, + "name": "url", + "required": true, + "type": "string" + }, + { + "description": "the details for the object store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss", + "length": 255, + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "the tags for the storage pool", + "length": 255, + "name": "tags", + "required": false, + "type": "string" + }, + { + "description": "the object store provider name", + "length": 255, + "name": "provider", + "required": true, + "type": "string" + }, + { + "description": "the name for the object store", + "length": 255, + "name": "name", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the name of the object store", + "name": "name", + "type": "string" + }, + {}, + { + "description": "the ID of the object store", + "name": "id", + "type": "string" + }, + { + "description": "the provider name of the object store", + "name": "providername", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the url of the object store", + "name": "url", + "type": "string" + }, + { + "description": "the object store currently used size", + "name": "storageused", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "the total size of the object store", + "name": "storagetotal", + "type": "long" + } + ], + "since": "4.19.0" + }, + { + "description": "Deletes user from the project", + "isasync": true, + "name": "deleteUserFromProject", + "params": [ + { + "description": "Id of the user to be removed from the project", + "length": 255, + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": true, + "type": "uuid" + }, + { + "description": "ID of the project to remove the user from", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "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" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + } + ], + "since": "4.15.0" + }, + { + "description": "Checks the 2FA code for the user.", + "isasync": false, + "name": "validateUserTwoFactorAuthenticationCode", + "params": [ + { + "description": "two factor authentication code", + "length": 255, + "name": "codefor2fa", + "required": true, + "type": "string" + } + ], + "response": [ + { + "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": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + {}, + {} + ], + "since": "4.18.0" + }, + { + "description": "Starts a router.", + "isasync": false, + "name": "getRouterHealthCheckResults", + "params": [ { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" + "description": "the ID of the router", + "length": 255, + "name": "routerid", + "related": "destroyRouter,listRouters,changeServiceForRouter,listInternalLoadBalancerVMs", + "required": true, + "type": "uuid" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "if true is passed for this parameter, health checks are performed on the fly. Else last performed checks data is fetched", + "length": 255, + "name": "performfreshchecks", + "required": false, + "type": "boolean" + } + ], + "related": "", + "response": [ + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the id of the router", + "name": "routerid", + "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the id of the router", + "name": "healthchecks", + "type": "list" }, + {}, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } - ] + ], + "since": "4.14.0" }, { - "description": "(Deprecated , use deleteLdapConfiguration) Remove the LDAP context for this site.", + "description": "list control center", "isasync": false, - "name": "ldapRemove", - "params": [], - "related": "", - "response": [ + "name": "listNetscalerControlCenter", + "params": [ { - "description": "Hostname or ip address of the ldap server eg: my.ldap.com", - "name": "hostname", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "Specify the distinguished name of a user with the search permission on the directory", - "name": "binddn", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "You specify a query filter here, which narrows down the users, who can be part of this domain", - "name": "queryfilter", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "Specify the LDAP port if required, default is 389", - "name": "port", + "description": "uuid", + "name": "uuid", "type": "string" }, { - "description": "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com", - "name": "searchbase", + "description": "id", + "name": "id", "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", - "name": "jobid", + "description": "username", + "name": "username", "type": "string" }, { - "description": "DN password", - "name": "bindpass", + "description": "num_retries", + "name": "numretries", "type": "string" }, {}, { - "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL", - "name": "ssl", + "description": "ncc_ip", + "name": "ipaddress", "type": "string" } - ], - "since": "3.0.1" + ] }, { - "description": "Creates a user for an account that already exists", - "isasync": false, - "name": "createUser", + "description": "Resizes a volume", + "isasync": true, + "name": "resizeVolume", "params": [ { - "description": "lastname", - "length": 255, - "name": "lastname", - "required": true, - "type": "string" - }, - { - "description": "Creates the user under the specified domain. Has to be accompanied with the account parameter", + "description": "New maximum number of IOPS", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", + "name": "maxiops", "required": false, - "type": "uuid" - }, - { - "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.", - "length": 255, - "name": "account", - "required": true, - "type": "string" + "type": "long" }, { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "description": "New volume size in GB", "length": 255, - "name": "timezone", + "name": "size", "required": false, - "type": "string" + "type": "long" }, { - "description": "email", + "description": "New minimum number of IOPS", "length": 255, - "name": "email", - "required": true, - "type": "string" + "name": "miniops", + "required": false, + "type": "long" }, { - "description": "firstname", + "description": "new disk offering id", "length": 255, - "name": "firstname", - "required": true, - "type": "string" + "name": "diskofferingid", + "related": "createDiskOffering,listDiskOfferings", + "required": false, + "type": "uuid" }, { - "description": "Unique username.", + "description": "the ID of the disk volume", "length": 255, - "name": "username", + "name": "id", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,resizeVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "User UUID, required for adding account from external provisioning system", + "description": "Verify OK to Shrink", "length": 255, - "name": "userid", + "name": "shrinkok", "required": false, - "type": "string" - }, - { - "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.", - "length": 255, - "name": "password", - "required": true, - "type": "string" + "type": "boolean" } ], - "related": "disableUser,getUser,listUsers,lockUser", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "response": [ { - "description": "the timezone user was created in", - "name": "timezone", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the user firstname", - "name": "firstname", + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "the user ID", - "name": "id", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", + "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "the user name", - "name": "username", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the account name of the user", - "name": "account", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", "type": "boolean" }, + { + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" + }, {}, { - "description": "the domain name of the user", - "name": "domain", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { - "description": "the user lastname", - "name": "lastname", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the user email address", - "name": "email", - "type": "string" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the domain ID of the user", - "name": "domainid", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "the status of the volume", + "name": "status", "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", - "type": "string" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "the user state", - "name": "state", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the api key of the user", - "name": "apikey", - "type": "string" + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" }, { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, { - "description": "the date and time the user account was created", + "description": "the date the disk volume 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 path of the volume", + "name": "path", + "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "display name of the virtual machine", + "name": "vmdisplayname", + "type": "string" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" + "description": "the chain info of the volume", + "name": "chaininfo", + "type": "string" }, - {} - ] - }, - { - "description": "Creates site to site vpn local gateway", - "isasync": true, - "name": "createVpnGateway", - "params": [ { - "description": "an optional field, whether to the display the vpn to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "public ip address id of the vpn gateway", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": true, - "type": "uuid" - } - ], - "related": "updateVpnGateway", - "response": [ + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, { - "description": "the domain id of the owner", - "name": "domainid", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "the vpc name of this gateway", - "name": "vpcname", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the public IP address", - "name": "publicip", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, + {}, { - "description": "the vpn gateway ID", - "name": "id", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the project id", - "name": "projectid", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "is vpn gateway for display to the regular user", - "name": "fordisplay", + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the project name", - "name": "project", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the domain name of the owner", + "description": "the domain associated with the disk volume", "name": "domain", "type": "string" }, { - "description": "the owner", - "name": "account", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, - {}, { - "description": "the vpc id of this gateway", - "name": "vpcid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, - {}, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" - } - ] - }, - { - "description": "Adds detail for the Resource.", - "isasync": true, - "name": "addResourceDetail", - "params": [ - { - "description": "Map of (key/value pairs)", - "length": 255, - "name": "details", - "required": true, - "type": "map" }, { - "description": "type of the resource", - "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "resource id to create the details for", - "length": 255, - "name": "resourceid", - "required": true, - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" }, { - "description": "pass false if you want this detail to be disabled for the regular user. True by default", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - } - ], - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "name of the availability zone", + "name": "zonename", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, - {}, - {} - ] - }, - { - "description": "Lists vpn users", - "isasync": false, - "name": "listVpnUsers", - "params": [ { - "description": "the username of the vpn user.", - "length": 255, - "name": "username", - "required": false, + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "cluster id of the volume", + "name": "clusterid", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", "type": "boolean" }, { - "description": "The uuid of the Vpn user", - "length": 255, - "name": "id", - "related": "addVpnUser,listVpnUsers", - "required": false, - "type": "uuid" + "description": "type of the virtual machine", + "name": "vmtype", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "activateProject,createProject", - "required": false, - "type": "uuid" - } - ], - "related": "addVpnUser", - "response": [ - { - "description": "the project name of the vpn", - "name": "project", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the vpn userID", - "name": "id", - "type": "string" + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "the username of the vpn user", - "name": "username", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, - {}, { - "description": "the account of the remote access vpn", - "name": "account", - "type": "string" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "the state of the Vpn User, can be 'Add', 'Revoke' or 'Active'.", - "name": "state", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "the domain id of the account of the remote access vpn", - "name": "domainid", + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, { - "description": "path of the domain to which the remote access vpn belongs", - "name": "domainpath", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, { - "description": "the domain name of the account of the remote access vpn", - "name": "domain", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, - {} - ] - }, - { - "description": "Deletes an IP forwarding rule", - "isasync": true, - "name": "deleteIpForwardingRule", - "params": [ - { - "description": "the ID of the forwarding rule", - "length": 255, - "name": "id", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": true, - "type": "uuid" - } - ], - "response": [ { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", + "type": "string" } ] }, { - "description": "Register a new userdata.", - "isasync": false, - "name": "registerUserData", + "description": "Deletes affinity group", + "isasync": true, + "name": "deleteAffinityGroup", "params": [ { - "description": "Base64 encoded userdata content. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", - "required": true, + "description": "The name of the affinity group. Mutually exclusive with ID parameter", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "an optional domainId for the userdata. If the account parameter is used, domainId must also be used.", + "description": "the domain ID of account owning the affinity group", "length": 255, "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", + "related": "listDomainChildren,listDomains,listDomains", "required": false, "type": "uuid" }, { - "description": "an optional project for the userdata", + "description": "the project of the affinity group", "length": 255, "name": "projectid", - "related": "activateProject,createProject", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "Name of the userdata", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "comma separated list of variables declared in userdata content", + "description": "The ID of the affinity group. Mutually exclusive with name parameter", "length": 255, - "name": "params", + "name": "id", + "related": "", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "an optional account for the userdata. Must be used with domainId.", + "description": "the account of the affinity group. Must be specified with domain ID", "length": 255, "name": "account", "required": false, @@ -66266,277 +58559,360 @@ "name": "displaytext", "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": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, {} - ], - "since": "4.18" + ] }, { - "description": "Adds a Region", + "description": "Deletes a network offering.", "isasync": false, - "name": "addRegion", + "name": "deleteNetworkOffering", "params": [ { - "description": "Name of the region", + "description": "the ID of the network offering", "length": 255, - "name": "name", + "name": "id", + "related": "listNetworkOfferings", "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "Region service endpoint", - "length": 255, - "name": "endpoint", - "required": true, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "Id of the Region", + "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" + } + ], + "since": "3.0.0" + }, + { + "description": "Deletes a Network Service Provider.", + "isasync": true, + "name": "deleteNetworkServiceProvider", + "params": [ + { + "description": "the ID of the network service provider", "length": 255, "name": "id", + "related": "listNetworkServiceProviders,listTrafficTypes", "required": true, - "type": "integer" + "type": "uuid" } ], - "related": "updateRegion", "response": [ { - "description": "the name of the region", - "name": "name", - "type": "string" - }, - {}, - { - "description": "the ID of the region", - "name": "id", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, + {}, { - "description": "the end point of the region", - "name": "endpoint", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, - { - "description": "true if GSLB service is enabled in the region, false otherwise", - "name": "gslbserviceenabled", - "type": "boolean" - }, - { - "description": "true if security groups support is enabled, false otherwise", - "name": "portableipserviceenabled", - "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": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {} + ], + "since": "3.0.0" }, { - "description": "Generates usage records. This will generate records only if there any records to be generated, i.e if the scheduled usage job was not run or failed", + "description": "List network devices", "isasync": false, - "name": "generateUsageRecords", + "name": "listNetworkDevice", "params": [ { - "description": "Start date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-01.", + "description": "parameters for network device", "length": 255, - "name": "startdate", + "name": "networkdeviceparameterlist", "required": false, - "type": "date" + "type": "map" }, { - "description": "List events for the specified domain.", + "description": "List by keyword", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "End date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-03.", + "description": "", "length": 255, - "name": "enddate", + "name": "pagesize", "required": false, - "type": "date" - } - ], - "response": [ - {}, - {}, + "type": "integer" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall", + "length": 255, + "name": "networkdevicetype", + "required": false, "type": "string" }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "addNetworkDevice", + "response": [ { "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" + }, + { + "description": "the ID of the network device", + "name": "id", + "type": "string" } ] }, { - "description": "Updates a role permission order", - "isasync": false, - "name": "updateRolePermission", + "description": "Update a Storage network IP range, only allowed when no IPs in this range have been allocated.", + "isasync": true, + "name": "updateStorageNetworkIpRange", "params": [ { - "description": "The parent role permission uuid, use 0 to move this rule at the top of the list", + "description": "Optional. the vlan the ip range sits on", "length": 255, - "name": "ruleorder", - "related": "", + "name": "vlan", "required": false, - "type": "list" + "type": "integer" }, { - "description": "Role permission rule id", + "description": "the beginning IP address", "length": 255, - "name": "ruleid", - "related": "", + "name": "startip", "required": false, - "since": "4.11", - "type": "uuid" + "type": "string" }, { - "description": "ID of the role", + "description": "the netmask for storage network", "length": 255, - "name": "roleid", - "related": "createRole,listRoles,updateRole", - "required": true, - "type": "uuid" + "name": "netmask", + "required": false, + "type": "string" }, { - "description": "Rule permission, can be: allow or deny", + "description": "the ending IP address", "length": 255, - "name": "permission", + "name": "endip", "required": false, - "since": "4.11", "type": "string" + }, + { + "description": "UUID of storage network ip range", + "length": 255, + "name": "id", + "related": "createStorageNetworkIpRange,listStorageNetworkIpRange,updateStorageNetworkIpRange", + "required": true, + "type": "uuid" } ], + "related": "createStorageNetworkIpRange,listStorageNetworkIpRange", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the Zone uuid of the storage network IP range", + "name": "zoneid", + "type": "string" }, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the ID or VID of the VLAN.", + "name": "vlan", "type": "integer" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the netmask of the storage network IP range", + "name": "netmask", + "type": "string" + }, + { + "description": "the end ip of the storage network IP range", + "name": "endip", + "type": "string" + }, + { + "description": "the Pod uuid for the storage network IP range", + "name": "podid", + "type": "string" + }, + { + "description": "the uuid of storage network IP range.", + "name": "id", "type": "string" }, {}, + { + "description": "the network uuid of storage network IP range", + "name": "networkid", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" + }, + { + "description": "the start ip of the storage network IP range", + "name": "startip", + "type": "string" + }, + { + "description": "the gateway of the storage network IP range", + "name": "gateway", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } ], - "since": "4.9.0" + "since": "3.0.0" }, { - "description": "Lists accounts and provides detailed account information for listed accounts", - "isasync": false, - "name": "listAccounts", + "description": "Dedicates a Pod.", + "isasync": true, + "name": "dedicatePod", "params": [ { - "description": "list account by account name", + "description": "the ID of the Pod", "length": 255, - "name": "name", - "required": false, - "type": "string" + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": true, + "type": "uuid" }, { - "description": "comma separated list of account details requested, value can be a list of [ all, resource, min]", + "description": "the ID of the containing domain", "length": 255, - "name": "details", - "required": false, - "type": "list" + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": true, + "type": "uuid" }, { - "description": "list accounts by account type. Valid account types are 1 (admin), 2 (domain-admin), and 0 (user).", + "description": "the name of the account which needs dedication. Must be used with domainId.", "length": 255, - "name": "accounttype", + "name": "account", "required": false, + "type": "string" + } + ], + "related": "listDedicatedPods", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "list account by account ID", - "length": 255, + "description": "the ID of the dedicated resource", "name": "id", - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts,listAccounts", - "required": false, - "type": "uuid" + "type": "string" }, + {}, { - "description": "Tag for resource type to return usage", - "length": 255, - "name": "tag", - "required": false, - "since": "4.20.0", + "description": "the domain ID to which the Pod is dedicated", + "name": "domainid", "type": "string" }, { - "description": "flag to display the resource icon for accounts", - "length": 255, - "name": "showicon", - "required": false, - "type": "boolean" + "description": "the Dedication Affinity Group ID of the pod", + "name": "affinitygroupid", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the ID of the Pod", + "name": "podid", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the Name of the Pod", + "name": "podname", + "type": "string" + }, + {}, + { + "description": "the Account Id to which the Pod is dedicated", + "name": "accountid", + "type": "string" + } + ] + }, + { + "description": "Lists Project roles in CloudStack", + "isasync": false, + "name": "listProjectRoles", + "params": [ + { + "description": "List project role by project role ID.", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", + "name": "projectroleid", + "related": "createProjectRole,listProjectRoles,updateProjectRole", "required": false, "type": "uuid" }, { - "description": "list accounts by cleanuprequired attribute (values are true or false)", + "description": "List project role by project role name.", "length": 255, - "name": "iscleanuprequired", + "name": "name", "required": false, - "type": "boolean" + "type": "string" }, { "description": "", @@ -66545,13 +58921,6 @@ "required": false, "type": "integer" }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, { "description": "List by keyword", "length": 255, @@ -66560,90 +58929,92 @@ "type": "string" }, { - "description": "", + "description": "List project role by project ID.", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": true, + "type": "uuid" }, { - "description": "list accounts by state. Valid states are enabled, disabled, and locked.", + "description": "", "length": 255, - "name": "state", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" } ], - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts", + "related": "createProjectRole,updateProjectRole", "response": [ + {}, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", + "description": "the name of the role", + "name": "name", "type": "string" }, { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" - }, - { - "description": "the state of the account", - "name": "state", + "description": "the id of the project", + "name": "projectid", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the ID of the role", + "name": "id", "type": "string" }, { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", - "type": "integer" + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", + "type": "boolean" }, { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", + "description": "the description of the role", + "name": "description", "type": "string" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, + {} + ], + "since": "4.15.0" + }, + { + "description": "Removes an OpenDyalight controler", + "isasync": true, + "name": "deleteOpenDaylightController", + "params": [ { - "description": "the total number of projects the account can own", - "name": "projectlimit", - "type": "string" - }, + "description": "OpenDaylight Controller ID", + "length": 255, + "name": "id", + "related": "addOpenDaylightController,deleteOpenDaylightController", + "required": true, + "type": "uuid" + } + ], + "related": "addOpenDaylightController", + "response": [ { - "description": "the total volume available for this account", - "name": "volumeavailable", + "description": "the physical network to which this controller belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "the username to authenticate to the controller", + "name": "username", "type": "string" }, { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" - }, - { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" - }, - { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", + "description": "the name assigned to the controller", + "name": "name", "type": "string" }, { @@ -66652,2116 +59023,1609 @@ "type": "string" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the id of the account", + "description": "device id of the controller", "name": "id", "type": "string" }, { - "description": "the date when this account was created", - "name": "created", - "type": "date" - }, - { - "description": "the name of the account", - "name": "name", + "description": "the url of the controller api", + "name": "url", "type": "string" }, + {}, + {} + ] + }, + { + "description": "Updates attributes of a template.", + "isasync": false, + "name": "updateTemplate", + "params": [ { - "description": "the ID of the role", - "name": "roleid", + "description": "the tag for this template.", + "length": 255, + "name": "templatetag", + "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "the list of users associated with account", - "name": "user", - "response": [ - { - "description": "the user lastname", - "name": "lastname", - "type": "string" - }, - { - "description": "the timezone user was created in", - "name": "timezone", - "type": "string" - }, - { - "description": "the api key of the user", - "name": "apikey", - "type": "string" - }, - { - "description": "the user email address", - "name": "email", - "type": "string" - }, - { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - { - "description": "the account name of the user", - "name": "account", - "type": "string" - }, - { - "description": "the type of the role", - "name": "roletype", - "type": "string" - }, - { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, - { - "description": "the user firstname", - "name": "firstname", - "type": "string" - }, - { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the domain ID of the user", - "name": "domainid", - "type": "string" - }, - { - "description": "the name of the role", - "name": "rolename", - "type": "string" - }, - { - "description": "the user ID", - "name": "id", - "type": "string" - }, - { - "description": "the ID of the role", - "name": "roleid", - "type": "string" - }, - { - "description": "the domain name of the user", - "name": "domain", - "type": "string" - }, - { - "description": "the user name", - "name": "username", - "type": "string" - }, - { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "sort key of the template, integer", + "length": 255, + "name": "sortkey", + "required": false, + "type": "integer" }, { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" + "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "length": 255, + "name": "isdynamicallyscalable", + "required": false, + "type": "boolean" }, { - "description": "id of the Domain the account belongs to", - "name": "domainid", + "description": "the format for the image", + "length": 255, + "name": "format", + "required": false, "type": "string" }, { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", - "type": "long" - }, - { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" + "description": "true if the template supports the sshkey upload feature; default is false", + "length": 255, + "name": "sshkeyenabled", + "required": false, + "type": "boolean" }, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "the name of the image file", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the default zone of the account", - "name": "defaultzoneid", + "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", + "length": 255, + "name": "templatetype", + "required": false, "type": "string" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", + "description": "the display text of the image", + "length": 4096, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "path of the Domain the account belongs to", - "name": "domainpath", - "type": "string" + "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "length": 255, + "name": "cleanupdetails", + "required": false, + "type": "boolean" }, { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", - "type": "string" + "description": "the ID of the OS type that best represents the OS of this image.", + "length": 255, + "name": "ostypeid", + "related": "listOsTypes,addGuestOs", + "required": false, + "type": "uuid" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", - "type": "string" + "description": "true if the template type is routing i.e., if template is used to deploy router", + "length": 255, + "name": "isrouting", + "required": false, + "type": "boolean" }, { - "description": "details for the account", - "name": "accountdetails", - "type": "map" + "description": "the CPU arch of the template/ISO. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", + "type": "string" }, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", - "type": "string" + "description": "true if image is bootable, false otherwise; available only for updateIso API", + "length": 255, + "name": "bootable", + "required": false, + "type": "boolean" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", - "type": "integer" + "description": "the ID of the image file", + "length": 255, + "name": "id", + "related": "listIsos,registerIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", + "description": "true if the image supports the password reset feature; default is false", + "length": 255, + "name": "passwordenabled", + "required": false, "type": "boolean" }, - {}, { - "description": "true if account is default, false otherwise", - "name": "isdefault", + "description": "true if the template requires HVM, false otherwise; available only for updateTemplate API", + "length": 255, + "name": "requireshvm", + "required": false, "type": "boolean" - }, + } + ], + "related": "listIsos,registerIso,createTemplate,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", - "type": "string" + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" }, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, + {}, { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" - }, - { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "the name of the role", - "name": "rolename", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "name of the Domain the account belongs to", + "description": "the name of the domain to which the template belongs", "name": "domain", "type": "string" }, { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", + "description": "the ID of the secondary storage host for the template", + "name": "hostid", "type": "string" }, { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" + "description": "the date this template was created", + "name": "created", + "type": "date" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", - "type": "string" + "description": "the size of the template", + "name": "size", + "type": "long" }, { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "the total number of networks the account can own", - "name": "networklimit", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the list of acl groups that account belongs to", - "name": "groups", - "type": "list" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", - "type": "long" + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" }, { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", - "type": "long" + "description": "the account name to which the template belongs", + "name": "account", + "type": "string" }, - {}, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "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 total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" - } - ] - }, - { - "description": "Destroys a router.", - "isasync": true, - "name": "destroyRouter", - "params": [ - { - "description": "the ID of the router", - "length": 255, - "name": "id", - "related": "destroyRouter,listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "required": true, - "type": "uuid" - } - ], - "related": "listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "response": [ - { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" }, { - "description": "the Pod ID for the router", - "name": "podid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "path of the Domain the template belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the second DNS for the router", - "name": "dns2", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "the name of the router", - "name": "name", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "the id of the router", - "name": "id", + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", - "type": "string" + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", - "type": "string" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "the domain ID associated with the router", - "name": "domainid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the host ID for the router", - "name": "hostid", - "type": "string" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, + {}, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - }, - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - }, - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - } - ], - "type": "list" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "the state of the router", - "name": "state", - "type": "state" + "description": "the status of the template", + "name": "status", + "type": "string" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the Zone name for the router", - "name": "zonename", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" + }, + { + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "the list of nics associated with the router", - "name": "nic", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" } ], "type": "set" }, { - "description": "the Pod name for the router", - "name": "podname", - "type": "string" - }, - { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", "type": "boolean" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", - "type": "string" - }, - { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", - "type": "string" - }, - { - "description": "the link local IP address for the router", - "name": "linklocalip", - "type": "string" - }, - { - "description": "the project name of the address", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", - "type": "string" - }, - { - "description": "the version of template", - "name": "version", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, { - "description": "the template name for the router", - "name": "templatename", - "type": "string" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "the domain associated with the router", - "name": "domain", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", - "type": "string" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "path of the Domain the router belongs to", - "name": "domainpath", - "type": "string" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "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": "the date and time the router was created", - "name": "created", + "description": "the date this template was removed", + "name": "removed", "type": "date" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "role of the domain router", - "name": "role", - "type": "string" - }, - {}, - { - "description": "the network domain for the router", - "name": "networkdomain", - "type": "string" - }, - { - "description": "the public IP address for the router", - "name": "publicip", - "type": "string" - }, - { - "description": "the public netmask for the router", - "name": "publicnetmask", - "type": "string" - }, - { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", - "type": "string" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" - }, + } + ] + }, + { + "description": "Creates a VLAN IP range.", + "isasync": false, + "name": "createVlanIpRange", + "params": [ { - "description": "the hostname for the router", - "name": "hostname", + "description": "the gateway of the IPv6 network. Required for Shared networks and Isolated networks when it belongs to VPC", + "length": 255, + "name": "ip6gateway", + "required": false, "type": "string" }, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "the gateway of the VLAN IP range", + "length": 255, + "name": "gateway", + "required": false, "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" - }, - { - "description": "the name of VPC the router belongs to", - "name": "vpcname", - "type": "string" + "description": "the Zone ID of the VLAN IP range", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "account who will own the VLAN. If VLAN is Zone wide, this parameter should be omitted", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "the ending IP address in the VLAN IP range", + "length": 255, + "name": "endip", + "required": false, "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", + "description": "the ending IPv6 address in the IPv6 network range", + "length": 255, + "name": "endipv6", + "required": false, "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "domain ID of the account owning a VLAN", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" }, - {}, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", - "type": "string" + "description": "true if VLAN is of Virtual type, false if Direct", + "length": 255, + "name": "forvirtualnetwork", + "required": false, + "type": "boolean" }, { - "description": "the first DNS for the router", - "name": "dns1", + "description": "the beginning IPv6 address in the IPv6 network range", + "length": 255, + "name": "startipv6", + "required": false, "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the CIDR of IPv6 network, must be at least /64", + "length": 255, + "name": "ip6cidr", + "required": false, "type": "string" - } - ] - }, - { - "description": "Lists image stores.", - "isasync": false, - "name": "listImageStores", - "params": [ + }, { - "description": "the ID of the storage pool", + "description": "the physical network id", "length": 255, - "name": "id", - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore,listImageStores", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": false, "type": "uuid" }, { - "description": "the image store provider", + "description": "the network id", "length": 255, - "name": "provider", + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listPaloAltoFirewallNetworks,listBrocadeVcsDeviceNetworks", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "true if the IP range is used for NSX resource", "length": 255, - "name": "page", + "name": "fornsx", "required": false, - "type": "integer" + "since": "4.20.0", + "type": "boolean" }, { - "description": "the name of the image store", + "description": "the beginning IP address in the VLAN IP range", "length": 255, - "name": "name", + "name": "startip", "required": false, "type": "string" }, { - "description": "List by keyword", + "description": "optional parameter. Have to be specified for Direct Untagged vlan only.", "length": 255, - "name": "keyword", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the Zone ID for the image store", + "description": "true if IP range is set to system vms, false if not", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "forsystemvms", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "read-only status of the image store", + "description": "project who will own the VLAN. If VLAN is Zone wide, this parameter should be omitted", "length": 255, - "name": "readonly", - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore,listImageStores", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "since": "4.15.0", - "type": "boolean" + "type": "uuid" }, { - "description": "the image store protocol", + "description": "the netmask of the VLAN IP range", "length": 255, - "name": "protocol", + "name": "netmask", "required": false, "type": "string" }, { - "description": "", + "description": "the ID or VID of the VLAN. If not specified, will be defaulted to the vlan of the network or if vlan of the network is null - to Untagged", "length": 255, - "name": "pagesize", + "name": "vlan", "required": false, - "type": "integer" + "type": "string" } ], - "related": "addSecondaryStorage,addSwift,listSwifts,addImageStore", + "related": "updateVlanIpRange,listVlanIpRanges,dedicatePublicIpRange", "response": [ { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "the network id of vlan range", + "name": "networkid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the gateway of the VLAN IP range", + "name": "gateway", "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" + "description": "the account of the VLAN IP range", + "name": "account", + "type": "string" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the description of the VLAN IP range", + "name": "description", + "type": "string" }, { - "description": "the protocol of the image store", - "name": "protocol", + "description": "the domain ID of the VLAN IP range", + "name": "domainid", "type": "string" }, { - "description": "the Zone ID of the image store", - "name": "zoneid", + "description": "the start ipv6 of the VLAN IP range", + "name": "startipv6", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "indicates whether IP range is dedicated to NSX resources or not", + "name": "fornsx", "type": "boolean" }, { - "description": "the name of the image store", - "name": "name", + "description": "the netmask of the VLAN IP range", + "name": "netmask", "type": "string" }, - {}, - { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - }, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "path of the domain to which the VLAN IP range belongs", + "name": "domainpath", "type": "string" }, - {}, { - "description": "the ID of the image store", - "name": "id", + "description": "the end ipv6 of the VLAN IP range", + "name": "endipv6", "type": "string" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "the start ip of the VLAN IP range", + "name": "startip", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the virtual network for the VLAN IP range", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the url of the image store", - "name": "url", + "description": "the cidr of the VLAN IP range", + "name": "cidr", "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Deletes a account, and all users associated with this account", - "isasync": true, - "name": "deleteAccount", - "params": [ - { - "description": "Account id", - "length": 255, - "name": "id", - "related": "disableAccount,enableAccount,lockAccount,updateAccount,markDefaultZoneForAccount,listAccounts", - "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", + "description": "the project name of the vlan range", + "name": "project", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the domain name of the VLAN IP range", + "name": "domain", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ] - }, - { - "description": "Disables out-of-band management for a cluster", - "isasync": true, - "name": "disableOutOfBandManagementForCluster", - "params": [ - { - "description": "the ID of the cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - } - ], - "related": "enableOutOfBandManagementForHost,configureOutOfBandManagement,changeOutOfBandManagementPassword", - "response": [ + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, { - "description": "the operation result", - "name": "status", + "description": "indicates whether VLAN IP range is dedicated to system vms or not", + "name": "forsystemvms", "type": "boolean" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the project id of the vlan range", + "name": "projectid", "type": "string" }, { - "description": "the operation result description", - "name": "description", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "the end ip of the VLAN IP range", + "name": "endip", + "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" + "description": "the ID or VID of the VLAN.", + "name": "vlan", + "type": "string" }, + {}, + {}, { - "description": "the out-of-band management driver for the host", - "name": "driver", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the Pod ID for the VLAN IP range", + "name": "podid", "type": "string" }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the Pod name for the VLAN IP range", + "name": "podname", "type": "string" }, - {}, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the Zone ID of the VLAN IP range", + "name": "zoneid", "type": "string" }, { - "description": "the out-of-band management interface password", - "name": "password", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the VLAN IP range", + "name": "id", "type": "string" }, { - "description": "the out-of-band management interface address", - "name": "address", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } - ], - "since": "4.9.0" + ] }, { - "description": "Activates a project", + "description": "Updates site to site vpn connection", "isasync": true, - "name": "activateProject", + "name": "updateVpnConnection", "params": [ { - "description": "id of the project to be modified", + "description": "an optional field, whether to the display the vpn to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", + "type": "string" + }, + { + "description": "id of vpn connection", "length": 255, "name": "id", - "related": "activateProject,createProject", + "related": "createVpnConnection,listVpnConnections,updateVpnConnection", "required": true, "type": "uuid" } ], - "related": "createProject", + "related": "createVpnConnection,listVpnConnections", "response": [ { - "description": "the total number of public ip addresses allocated for this project", - "name": "iptotal", - "type": "long" - }, - { - "description": "the total volume which can be used by this project", - "name": "volumelimit", + "description": "the customer gateway ID", + "name": "s2scustomergatewayid", "type": "string" }, { - "description": "the total number of virtual machines deployed by this project", - "name": "vmtotal", - "type": "long" - }, - { - "description": "the domain name where the project belongs to", - "name": "domain", + "description": "the connection ID", + "name": "id", "type": "string" }, { - "description": "the account name of the project's owners", - "name": "owner", - "type": "list" - }, - { - "description": "the total number of vpcs the project can own", - "name": "vpclimit", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the total number of snapshots available for this project", - "name": "snapshotavailable", - "type": "string" + "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", + "name": "splitconnections", + "type": "boolean" }, { - "description": "the total primary storage space (in GiB) the project can own", - "name": "primarystoragelimit", + "description": "the public IP address", + "name": "publicip", "type": "string" }, - {}, - {}, { - "description": "the total number of vpcs available to be created for this project", - "name": "vpcavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of vpcs owned by project", - "name": "vpctotal", - "type": "long" - }, - { - "description": "the date this project was created", + "description": "the date and time the host was created", "name": "created", "type": "date" }, { - "description": "the displaytext of the project", - "name": "displaytext", - "type": "string" - }, - { - "description": "the state of the project", - "name": "state", - "type": "string" + "description": "is connection for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the id of the project", - "name": "id", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { - "description": "the total number of cpu cores the project can own", - "name": "cpulimit", - "type": "string" + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", + "type": "long" }, + {}, + {}, { - "description": "the total number of templates available to be created by this project", - "name": "templateavailable", + "description": "ESP policy of the customer gateway", + "name": "esppolicy", "type": "string" }, { - "description": "the total volume available for this project", - "name": "volumeavailable", - "type": "string" + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" }, { - "description": "the total secondary storage space (in GiB) owned by project", - "name": "secondarystoragetotal", - "type": "float" + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", + "type": "boolean" }, { - "description": "the total number of public ip addresses available for this project to acquire", - "name": "ipavailable", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", "type": "string" }, { - "description": "the total number of networks owned by project", - "name": "networktotal", - "type": "long" + "description": "the vpn gateway ID", + "name": "s2svpngatewayid", + "type": "string" }, { - "description": "the project account name of the project", - "name": "projectaccountname", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the total number of cpu cores owned by project", - "name": "cputotal", + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", "type": "long" }, { - "description": "the total number of templates which can be created by this project", - "name": "templatelimit", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "IKE policy of the customer gateway", + "name": "ikepolicy", + "type": "string" }, { - "description": "the total number of networks available to be created for this project", - "name": "networkavailable", + "description": "public ip address id of the customer gateway", + "name": "gateway", "type": "string" }, { - "description": "the total number of virtual machines stopped for this project", - "name": "vmstopped", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the total secondary storage space (in GiB) the project can own", - "name": "secondarystoragelimit", + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this project", - "name": "snapshotlimit", + "description": "IPsec Preshared-Key of the customer gateway", + "name": "ipsecpsk", "type": "string" }, { - "description": "the total memory (in MB) owned by project", - "name": "memorytotal", - "type": "long" + "description": "State of vpn connection", + "name": "passive", + "type": "boolean" }, { - "description": "the total secondary storage space (in GiB) available to be used for this project", - "name": "secondarystorageavailable", + "description": "the project id", + "name": "projectid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "State of vpn connection", + "name": "state", "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by project", - "name": "primarystoragetotal", - "type": "long" - }, - { - "description": "the total number of networks the project can own", - "name": "networklimit", + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "the total number of public ip addresses this project can acquire", - "name": "iplimit", + "description": "the domain id of the owner", + "name": "domainid", "type": "string" - }, + } + ], + "since": "4.4" + }, + { + "description": "lists network that are using Palo Alto firewall device", + "isasync": false, + "name": "listPaloAltoFirewallNetworks", + "params": [ { - "description": "the total number of cpu cores available to be created for this project", - "name": "cpuavailable", - "type": "string" + "description": "palo alto balancer device ID", + "length": 255, + "name": "lbdeviceid", + "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls", + "required": true, + "type": "uuid" }, { - "description": "the domain id the project belongs to", - "name": "domainid", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the total memory (in MB) available to be created for this project", - "name": "memoryavailable", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this project", - "name": "primarystorageavailable", + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "response": [ + { + "description": "network offering id the network is created from", + "name": "networkofferingid", "type": "string" }, { - "description": "the total volume being used by this project", - "name": "volumetotal", - "type": "long" + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", + "type": "string" }, { - "description": "The tagged resource limit and count for the project", - "name": "taggedresources", - "type": "list" + "description": "the second IPv4 DNS for the network", + "name": "dns2", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", + "type": "string" }, { - "description": "the list of resource tags associated with vm", + "description": "the list of resource tags associated with network", "name": "tags", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "list" }, { - "description": "the total number of virtual machines available for this project to acquire", - "name": "vmavailable", - "type": "string" - }, - { - "description": "the total memory (in MB) the project can own", - "name": "memorylimit", + "description": "the type of the network", + "name": "type", "type": "string" }, { - "description": "the total number of snapshots stored by this project", - "name": "snapshottotal", - "type": "long" - }, - { - "description": "the total number of virtual machines that can be deployed by this project", - "name": "vmlimit", + "description": "path of the Domain the network belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the total number of virtual machines running for this project", - "name": "vmrunning", - "type": "integer" + "description": "list networks available for vm deployment", + "name": "canusefordeploy", + "type": "boolean" }, { - "description": "the name of the project", - "name": "name", + "description": "The external id of the network", + "name": "externalid", "type": "string" }, { - "description": "the total number of templates which have been created by this project", - "name": "templatetotal", - "type": "long" - } - ], - "since": "3.0.0" - }, - { - "description": "Delete a certificate to CloudStack", - "isasync": false, - "name": "deleteSslCert", - "params": [ - { - "description": "Id of SSL certificate", - "length": 255, - "name": "id", - "related": "uploadSslCert", - "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", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the domain name of the network owner", + "name": "domain", "type": "string" - } - ] - }, - { - "description": "Delete one or more alerts.", - "isasync": false, - "name": "deleteAlerts", - "params": [ - { - "description": "end date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" - }, - { - "description": "start date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, - "type": "date" }, { - "description": "the IDs of the alerts", - "length": 255, - "name": "ids", - "related": "listAlerts,listAlertTypes", - "required": false, + "description": "the list of services", + "name": "service", + "response": [ + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + } + ], + "type": "list" + } + ], "type": "list" }, { - "description": "delete by alert type", - "length": 255, - "name": "type", - "required": false, - "type": "string" - } - ], - "response": [ - { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true network requires restart", + "name": "restartrequired", "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", + "description": "the name of the Network associated with this network", + "name": "associatednetwork", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, - {} - ] - }, - { - "description": "Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.", - "isasync": true, - "name": "createAutoScaleVmProfile", - "params": [ - { - "description": "the ID of the Userdata", - "length": 255, - "name": "userdataid", - "related": "", - "required": false, - "since": "4.18.1", - "type": "uuid" - }, - { - "description": "an optional field, whether to the display the profile to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, { - "description": "the service offering of the auto deployed virtual machine", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" - }, - { - "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", - "required": false, - "since": "4.18.0", + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", "type": "string" }, { - "description": "the template of the auto deployed virtual machine", - "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the ID of the user used to launch and destroy the VMs", - "length": 255, - "name": "autoscaleuserid", - "related": "disableUser,getUser,listUsers,lockUser", - "required": false, - "type": "uuid" + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", + "type": "integer" }, { - "description": "used to specify the parameters values for the variables in userdata.", - "length": 255, - "name": "userdatadetails", - "required": false, - "since": "4.18.1", - "type": "map" + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", + "type": "string" }, { - "description": "domain ID of the account owning a autoscale VM profile", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", + "type": "boolean" }, { - "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161", - "length": 255, - "name": "counterparam", - "required": false, - "type": "map" + "description": "related to what other network configuration", + "name": "related", + "type": "string" }, { - "description": "availability zone for the auto deployed virtual machine", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", + "type": "string" }, { - "description": "the time allowed for existing connections to get closed before a vm is expunged", - "length": 255, - "name": "expungevmgraceperiod", - "required": false, + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", "type": "integer" }, { - "description": "account that will own the autoscale VM profile", - "length": 255, - "name": "account", - "required": false, + "description": "ACL name associated with the VPC network", + "name": "aclname", "type": "string" }, { - "description": "parameters other than zoneId/serviceOfferringId/templateId of the auto deployed virtual machine.\nExample: otherdeployparams[0].name=serviceofferingid&otherdeployparams[0].value=a7fb50f6-01d9-11ed-8bc1-77f8f0228926&otherdeployparams[1].name=rootdisksize&otherdeployparams[1].value=10 .\nPossible parameters are \"rootdisksize\", \"diskofferingid\",\"size\", \"securitygroupids\", \"overridediskofferingid\", \"keypairs\", \"affinitygroupids'\" and \"networkids\".", - "length": 255, - "name": "otherdeployparams", - "required": false, - "type": "map" + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" }, { - "description": "an optional project for the autoscale VM profile", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" - } - ], - "related": "listAutoScaleVmProfiles,updateAutoScaleVmProfile", - "response": [ - { - "description": "Base64 encoded VM user data", - "name": "userdata", + "description": "ACL Id associated with the VPC network", + "name": "aclid", "type": "string" }, {}, { - "description": "the ID of the user used to launch and destroy the VMs", - "name": "autoscaleuserid", + "description": "the name of the network", + "name": "name", "type": "string" }, { - "description": "the time allowed for existing connections to get closed before a vm is destroyed", - "name": "expungevmgraceperiod", - "type": "integer" - }, - { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "name of the network offering the network is created from", + "name": "networkofferingname", "type": "string" }, { - "description": "the autoscale vm profile ID", - "name": "id", + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", "type": "string" }, { - "description": "the project name of the vm profile", - "name": "project", + "description": "the network's netmask", + "name": "netmask", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the domain name of the vm profile", - "name": "domain", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the domain ID of the vm profile", - "name": "domainid", + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", "type": "string" }, - {}, { - "description": "the project id vm profile", - "name": "projectid", + "description": "The IPv4 routing type of network", + "name": "ip4routing", "type": "string" }, { - "description": "is profile for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "The internet protocol of network offering", + "name": "internetprotocol", + "type": "string" }, { - "description": "the availability zone to be used while deploying a virtual machine", + "description": "zone id of the network", "name": "zoneid", "type": "string" }, - {}, - { - "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine", - "name": "otherdeployparams", - "type": "map" - }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the template to be used while deploying a virtual machine", - "name": "templateid", - "type": "string" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, {}, { - "description": "the service offering to be used while deploying a virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" }, { - "description": "path of the domain to which the vm profile belongs", - "name": "domainpath", + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "the account owning the instance group", - "name": "account", + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - } - ] - }, - { - "description": "Register the OAuth2 provider in CloudStack", - "isasync": false, - "name": "registerOauthProvider", - "params": [ - { - "description": "Name of the provider from the list of OAuth providers supported in CloudStack", - "length": 255, - "name": "provider", - "required": true, + "description": "the domain id of the network owner", + "name": "domainid", "type": "string" }, { - "description": "Description of the OAuth Provider", - "length": 255, - "name": "description", - "required": true, + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "description": "Secret Key pre-registered in the specific OAuth provider", - "length": 255, - "name": "secretkey", - "required": true, - "type": "string" + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" }, { - "description": "Redirect URI pre-registered in the specific OAuth provider", - "length": 255, - "name": "redirecturi", - "required": true, - "type": "string" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "description": "Any OAuth provider details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].clientsecret=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", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "acl type - access type to the network", + "name": "acltype", + "type": "string" }, { - "description": "Client ID pre-registered in the specific OAuth provider", - "length": 255, - "name": "clientid", - "required": true, + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" - } - ], - "response": [ + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the first IPv4 DNS for the network", + "name": "dns1", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name of the address", + "name": "project", + "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if network is system, false otherwise", + "name": "issystem", "type": "boolean" }, - {} - ], - "since": "4.19.0" - }, - { - "description": "Lists load balancer stickiness policies.", - "isasync": false, - "name": "listLBStickinessPolicies", - "params": [ { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "lbruleid", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": false, - "type": "uuid" + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", + "type": "string" }, { - "description": "the ID of the load balancer stickiness policy", - "length": 255, - "name": "id", - "related": "createLBStickinessPolicy,listLBStickinessPolicies,updateLBStickinessPolicy", - "required": false, - "type": "uuid" + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the id of the network", + "name": "id", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the displaytext of the network", + "name": "displaytext", "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", "type": "boolean" - } - ], - "related": "createLBStickinessPolicy,updateLBStickinessPolicy", - "response": [ + }, { - "description": "the description of the Stickiness policy", - "name": "description", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "the domain of the Stickiness policy", - "name": "domain", + "description": "the traffic type of the network", + "name": "traffictype", "type": "string" }, { - "description": "the account of the Stickiness policy", + "description": "the owner of the network", "name": "account", "type": "string" }, { - "description": "the domain ID of the Stickiness policy", - "name": "domainid", - "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", - "name": "jobid", + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "state of the network", + "name": "state", + "type": "string" }, { - "description": "the id of the zone the Stickiness policy belongs to", - "name": "zoneid", + "description": "VPC the network belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the list of stickinesspolicies", - "name": "stickinesspolicy", - "response": [ - { - "description": "the LB Stickiness policy ID", - "name": "id", - "type": "string" - }, - { - "description": "the method name of the Stickiness policy", - "name": "methodname", - "type": "string" - }, - { - "description": "the name of the Stickiness policy", - "name": "name", - "type": "string" - }, - { - "description": "is policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the state of the policy", - "name": "state", - "type": "string" - }, - { - "description": "the params of the policy", - "name": "params", - "type": "map" - }, - { - "description": "the description of the Stickiness policy", - "name": "description", - "type": "string" - } - ], - "type": "list" + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" }, - {}, { - "description": "the state of the policy", - "name": "state", + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" + }, + { + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", "type": "string" }, { - "description": "the name of the Stickiness policy", - "name": "name", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "the network domain", + "name": "networkdomain", "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Adds a Ucs manager", - "isasync": false, - "name": "addUcsManager", - "params": [ + }, { - "description": "the Zone id for the ucs manager", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" }, { - "description": "the password of UCS", - "length": 255, - "name": "password", - "required": true, - "type": "string" + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" }, { - "description": "the name of UCS url", - "length": 255, - "name": "url", - "required": true, + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" + }, + { + "description": "the network's gateway", + "name": "gateway", "type": "string" }, { - "description": "the name of UCS manager", - "length": 255, - "name": "name", - "required": false, + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "the username of UCS", + "description": "the details of the network", + "name": "details", + "type": "map" + }, + { + "description": "the date this network was created", + "name": "created", + "type": "date" + } + ] + }, + { + "description": "Get the path associated with the provided volume UUID", + "isasync": false, + "name": "getPathForVolume", + "params": [ + { + "description": "CloudStack Volume UUID", "length": 255, - "name": "username", + "name": "volumeid", "required": true, "type": "string" } ], - "related": "listUcsManagers", + "related": "", "response": [ {}, - { - "description": "the ID of the ucs manager", - "name": "id", - "type": "string" - }, - { - "description": "the name of ucs manager", - "name": "name", - "type": "string" - }, { "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": "the url of ucs manager", - "name": "url", - "type": "string" - }, - {}, - { - "description": "the zone ID of ucs manager", - "name": "zoneid", + "description": "The path field for the volume", + "name": "path", "type": "string" } ] }, { - "description": "Deletes a VNF template from the system. All virtual machines using the deleted template will not be affected.", + "description": "Purge expunged resources", "isasync": true, - "name": "deleteVnfTemplate", + "name": "purgeExpungedResources", "params": [ { - "description": "Force delete a template.", + "description": "The start date range of the expunged resources used for purging (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\")", "length": 255, - "name": "forced", + "name": "startdate", "required": false, - "since": "4.9+", - "type": "boolean" + "type": "date" }, { - "description": "Necessary if the template's type is system.", + "description": "The size of batch used during purging", "length": 255, - "name": "issystem", + "name": "batchsize", "required": false, - "since": "4.20.0", - "type": "boolean" + "type": "long" }, { - "description": "the ID of zone of the template", + "description": "The end date range of the expunged resources used for purging (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\")", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "enddate", "required": false, - "type": "uuid" + "type": "date" }, { - "description": "the ID of the template", + "description": "The type of the resource which need to be purged. Supported types: VirtualMachine", "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "name": "resourcetype", + "required": false, + "type": "string" } ], "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {}, { "description": "any text associated with the success or failure", "name": "displaytext", @@ -68772,212 +60636,185 @@ "name": "jobid", "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" - }, {} ], - "since": "4.19.0" + "since": "4.20" }, { - "description": "lists netscaler load balancer devices", + "description": "Lists management servers.", "isasync": false, - "name": "listNetscalerLoadBalancers", + "name": "listManagementServers", "params": [ { - "description": "List by keyword", + "description": "the name of the management server", "length": 255, - "name": "keyword", + "name": "name", "required": false, "type": "string" }, { - "description": "the Physical Network ID", + "description": "the id of the management server", "length": 255, - "name": "physicalnetworkid", - "related": "listPhysicalNetworks,updatePhysicalNetwork", + "name": "id", + "related": "listManagementServers", "required": false, "type": "uuid" }, { - "description": "netscaler load balancer device ID", + "description": "", "length": 255, - "name": "lbdeviceid", - "related": "addNetscalerLoadBalancer,configureNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter,deployNetscalerVpx", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "", + "description": "List by keyword", "length": 255, - "name": "pagesize", + "name": "keyword", "required": false, - "type": "integer" + "type": "string" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" } ], - "related": "addNetscalerLoadBalancer,configureNetscalerLoadBalancer,registerNetscalerControlCenter,deployNetscalerVpx", + "related": "", "response": [ - { - "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", - "name": "podids", - "type": "list" - }, - { - "description": "device capacity", - "name": "lbdevicecapacity", - "type": "long" - }, - { - "description": "true if device is dedicated for an account", - "name": "lbdevicededicated", - "type": "boolean" - }, {}, { - "description": "the management IP address of the external load balancer", - "name": "ipaddress", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", - "name": "isexclusivegslbprovider", - "type": "boolean" + "description": "the state of the management server", + "name": "state", + "type": "state" }, { - "description": "name of the provider", - "name": "provider", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "private IP of the NetScaler representing GSLB site", - "name": "gslbproviderprivateip", + "description": "the name of the OS distribution running on the management server", + "name": "osdistribution", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the running OS kernel version for this Management Server", + "name": "kernelversion", + "type": "string" }, { - "description": "device state", - "name": "lbdevicestate", + "description": "the version of the management server", + "name": "version", "type": "string" }, { - "description": "device name", - "name": "lbdevicename", + "description": "the java distribution name running the management server process", + "name": "javadistribution", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the version of the java distribution running the management server process", + "name": "javaversion", "type": "string" }, { - "description": "the physical network to which this netscaler device belongs to", - "name": "physicalnetworkid", + "description": "the IP Address for this Management Server", + "name": "serviceip", "type": "string" }, - {}, { - "description": "true if NetScaler device is provisioned to be a GSLB service provider", - "name": "gslbprovider", - "type": "boolean" + "description": "the last time this Management Server was started", + "name": "lastserverstart", + "type": "date" }, { - "description": "device id of the netscaler load balancer", - "name": "lbdeviceid", + "description": "the name of the management server", + "name": "name", "type": "string" }, + {}, { - "description": "public IP of the NetScaler representing GSLB site", - "name": "gslbproviderpublicip", + "description": "the ID of the management server", + "name": "id", "type": "string" }, { - "description": "the public interface of the load balancer", - "name": "publicinterface", - "type": "string" + "description": "the last time this Management Server was stopped", + "name": "lastserverstop", + "type": "date" }, { - "description": "the private interface of the load balancer", - "name": "privateinterface", - "type": "string" + "description": "the last time the host on which this Management Server runs was booted", + "name": "lastboottime", + "type": "date" } ] }, { - "description": "Creates a vm group", + "description": "Updates a vm group", "isasync": false, - "name": "createInstanceGroup", + "name": "updateInstanceGroup", "params": [ { - "description": "the account of the instance group. The account parameter must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "The project of the instance group", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" - }, - { - "description": "the domain ID of account owning the instance group", + "description": "Instance group ID", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, + "name": "id", + "related": "createInstanceGroup,updateInstanceGroup", + "required": true, "type": "uuid" }, { - "description": "the name of the instance group", + "description": "new instance group name", "length": 255, "name": "name", - "required": true, + "required": false, "type": "string" } ], - "related": "updateInstanceGroup", + "related": "createInstanceGroup", "response": [ + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + {}, { "description": "the name of the instance group", "name": "name", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the instance group", + "name": "id", + "type": "string" }, { - "description": "the domain name of the instance group", - "name": "domain", + "description": "the project name of the instance group", + "name": "project", "type": "string" }, { - "description": "the ID of the instance group", - "name": "id", + "description": "the project ID of the instance group", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain the instance group belongs to", + "name": "domainpath", "type": "string" }, { @@ -68986,8 +60823,8 @@ "type": "date" }, { - "description": "the project name of the instance group", - "name": "project", + "description": "the account owning the instance group", + "name": "account", "type": "string" }, { @@ -68996,619 +60833,439 @@ "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the project ID of the instance group", - "name": "projectid", + "description": "the domain name of the instance group", + "name": "domain", "type": "string" }, {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the account owning the instance group", - "name": "account", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "path of the Domain the instance group belongs to", - "name": "domainpath", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } ] }, { - "description": "Creates an internal load balancer", + "description": "Change disk offering of the volume and also an option to auto migrate if required to apply the new disk offering", "isasync": true, - "name": "createLoadBalancer", + "name": "changeOfferingForVolume", "params": [ { - "description": "the source IP address the network traffic will be load balanced from", - "length": 255, - "name": "sourceipaddress", - "required": false, - "type": "string" - }, - { - "description": "the TCP port of the virtual machine where the network traffic will be load balanced to", - "length": 255, - "name": "instanceport", - "required": true, - "type": "integer" - }, - { - "description": "name of the load balancer", + "description": "the ID of the volume", "length": 255, - "name": "name", + "name": "id", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,recoverVolume,changeOfferingForVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "the load balancer scheme. Supported value in this release is Internal", + "description": "New minimum number of IOPS for the custom disk offering", "length": 255, - "name": "scheme", - "required": true, - "type": "string" - }, - { - "description": "the description of the load balancer", - "length": 4096, - "name": "description", + "name": "miniops", "required": false, - "type": "string" + "type": "long" }, { - "description": "load balancer algorithm (source, roundrobin, leastconn)", + "description": "new disk offering id", "length": 255, - "name": "algorithm", + "name": "diskofferingid", + "related": "createDiskOffering,listDiskOfferings", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "The guest network the load balancer will be created for", + "description": "Verify OK to Shrink", "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": true, - "type": "uuid" + "name": "shrinkok", + "required": false, + "type": "boolean" }, { - "description": "the network id of the source ip address", + "description": "New maximum number of IOPS for the custom disk offering", "length": 255, - "name": "sourceipaddressnetworkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": true, - "type": "uuid" + "name": "maxiops", + "required": false, + "type": "long" }, { - "description": "the source port the network traffic will be load balanced from", + "description": "Flag for automatic migration of the volume with new disk offering whenever migration is required to apply the offering", "length": 255, - "name": "sourceport", - "required": true, - "type": "integer" + "name": "automigrate", + "required": false, + "type": "boolean" }, { - "description": "an optional field, whether to the display the rule to the end user or not", + "description": "New volume size in GB for the custom disk offering", "length": 255, - "name": "fordisplay", + "name": "size", "required": false, - "since": "4.4", - "type": "boolean" + "type": "long" } ], - "related": "", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "response": [ { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", - "type": "string" - }, - { - "description": "Load Balancer source ip", - "name": "sourceipaddress", - "type": "string" - }, - { - "description": "Load Balancer source ip network id", - "name": "sourceipaddressnetworkid", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the project name of the Load Balancer", - "name": "project", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "the list of instances associated with the Load Balancer", - "name": "loadbalancerinstance", - "response": [ - { - "description": "the instance ID", - "name": "id", - "type": "string" - }, - { - "description": "the ip address of the instance", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the state of the instance", - "name": "state", - "type": "string" - }, - { - "description": "the name of the instance", - "name": "name", - "type": "string" - } - ], - "type": "list" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the description of the Load Balancer", - "name": "description", - "type": "string" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "Load Balancer network id", - "name": "networkid", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the Load Balancer ID", - "name": "id", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the list of rules associated with the Load Balancer", - "name": "loadbalancerrule", - "response": [ - { - "description": "instance port of the load balancer rule", - "name": "instanceport", - "type": "integer" - }, - { - "description": "the state of the load balancer rule", - "name": "state", - "type": "string" - }, - { - "description": "source port of the load balancer rule", - "name": "sourceport", - "type": "integer" - } - ], - "type": "list" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "the domain of the Load Balancer", - "name": "domain", - "type": "string" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "the name of the Load Balancer", - "name": "name", - "type": "string" + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" }, - {}, { - "description": "the domain ID of the Load Balancer", - "name": "domainid", - "type": "string" + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "path of the domain to which the Load Balancer belongs", - "name": "domainpath", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "ID of the disk volume", + "name": "id", + "type": "string" }, { - "description": "the project id of the Load Balancer", - "name": "projectid", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "the list of resource tags associated with the Load Balancer", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "list" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the account of the Load Balancer", - "name": "account", - "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Adds a Palo Alto firewall device", - "isasync": true, - "name": "addPaloAltoFirewall", - "params": [ - { - "description": "Credentials to reach Palo Alto firewall device", - "length": 255, - "name": "password", - "required": true, + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "supports only PaloAltoFirewall", - "length": 255, - "name": "networkdevicetype", - "required": true, + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "Credentials to reach Palo Alto firewall device", - "length": 255, - "name": "username", - "required": true, + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "URL of the Palo Alto appliance.", - "length": 255, - "name": "url", - "required": true, + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, - { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "listPhysicalNetworks,updatePhysicalNetwork", - "required": true, - "type": "uuid" - } - ], - "related": "configurePaloAltoFirewall,listPaloAltoFirewalls", - "response": [ {}, { - "description": "the management IP address of the external firewall", - "name": "ipaddress", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "device capacity", - "name": "fwdevicecapacity", - "type": "long" - }, - { - "description": "the public interface of the external firewall", - "name": "publicinterface", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "the usage interface of the external firewall", - "name": "usageinterface", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the number of times to retry requests to the external firewall", - "name": "numretries", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, - {}, { - "description": "the private interface of the external firewall", - "name": "privateinterface", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the username that's used to log in to the external firewall", - "name": "username", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "device id of the Palo Alto firewall", - "name": "fwdeviceid", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the zone ID of the external firewall", - "name": "zoneid", + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, { - "description": "device state", - "name": "fwdevicestate", - "type": "string" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "the public security zone of the external firewall", - "name": "publiczone", - "type": "string" + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" }, { - "description": "the private security zone of the external firewall", - "name": "privatezone", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the physical network to which this Palo Alto firewall belongs to", - "name": "physicalnetworkid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "name of the provider", - "name": "provider", + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, { - "description": "the timeout (in seconds) for requests to the external firewall", - "name": "timeout", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "device name", - "name": "fwdevicename", - "type": "string" - } - ] - }, - { - "description": "Creates a private gateway", - "isasync": true, - "name": "createPrivateGateway", - "params": [ - { - "description": "source NAT supported value. Default value false. If 'true' source NAT is enabled on the private gateway 'false': sourcenat is not supported", - "length": 255, - "name": "sourcenatsupported", - "required": false, + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", "type": "boolean" }, { - "description": "the IP address of the Private gateaway", - "length": 255, - "name": "ipaddress", - "required": true, - "type": "string" - }, - { - "description": "the VPC network belongs to", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": true, - "type": "uuid" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, { - "description": "the ID of the network ACL", - "length": 255, - "name": "aclid", - "related": "createNetworkACLList,listNetworkACLLists", - "required": false, - "type": "uuid" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "the uuid of the network offering to use for the private gateways network connection", - "length": 255, - "name": "networkofferingid", - "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", - "required": false, - "type": "uuid" + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "when true bypasses VLAN id/range overlap check during private gateway creation", - "length": 255, - "name": "bypassvlanoverlapcheck", - "required": false, - "type": "boolean" + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "the network implementation uri for the private gateway", - "length": 255, - "name": "vlan", - "required": false, + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "the netmask of the Private gateway", - "length": 255, - "name": "netmask", - "required": true, + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "The isolated network this private gateway is associated to.", - "length": 255, - "name": "associatednetworkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "since": "4.17.0", - "type": "uuid" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { - "description": "the Physical Network ID the network belongs to", - "length": 255, - "name": "physicalnetworkid", - "related": "listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" }, { - "description": "the gateway of the Private gateway", - "length": 255, - "name": "gateway", - "required": true, - "type": "string" - } - ], - "related": "createPrivateGateway,listPrivateGateways", - "response": [ - { - "description": "the physical network id", - "name": "physicalnetworkid", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the name of the zone the private gateway belongs to", - "name": "zonename", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the gateway", - "name": "gateway", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "the network implementation uri for the private gateway", - "name": "vlan", - "type": "string" + "description": "the date the disk volume was created", + "name": "created", + "type": "date" }, + {}, { - "description": "the private gateway's ip address", - "name": "ipaddress", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the account associated with the private gateway", - "name": "account", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" }, { - "description": "the id of the private gateway", - "name": "id", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "VPC id the private gateway belongs to", - "name": "vpcid", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, { - "description": "State of the gateway, can be Creating, Ready, Deleting", - "name": "state", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the status of the volume", + "name": "status", + "type": "string" }, { - "description": "the project name of the private gateway", - "name": "project", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, - {}, { - "description": "path of the domain to which the private gateway belongs", - "name": "domainpath", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { - "description": "ACL Id set for private gateway", - "name": "aclid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { @@ -69617,558 +61274,645 @@ "type": "integer" }, { - "description": "the ID of the domain associated with the private gateway", - "name": "domainid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the project id of the private gateway", - "name": "projectid", - "type": "string" + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" }, { - "description": "ACL name set for private gateway", - "name": "aclname", - "type": "string" + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, { - "description": "Source Nat enable status", - "name": "sourcenatsupported", - "type": "boolean" + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" }, { - "description": "VPC name the private gateway belongs to", - "name": "vpcname", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "zone id of the private gateway", - "name": "zoneid", - "type": "string" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "the private gateway's netmask", - "name": "netmask", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "the domain associated with the private gateway", - "name": "domain", + "description": "the project name of the vpn", + "name": "project", "type": "string" - } - ], - "since": "4.17.0" - }, - { - "description": "Deletes a firewall rule", - "isasync": true, - "name": "deleteFirewallRule", - "params": [ - { - "description": "the ID of the firewall rule", - "length": 255, - "name": "id", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "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": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" + }, + { + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" } - ] + ], + "since": "4.17" }, { - "description": "Upload a certificate to CloudStack", + "description": "List the uploaded certificates for direct download templates", "isasync": false, - "name": "uploadSslCert", + "name": "listTemplateDirectDownloadCertificates", "params": [ { - "description": "Private key", - "length": 16384, - "name": "privatekey", - "required": true, - "type": "string" - }, - { - "description": "account that will own the SSL certificate", + "description": "the zone where certificates are uploaded", "length": 255, - "name": "account", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Enables revocation checking for certificates", + "description": "List by keyword", "length": 255, - "name": "enabledrevocationcheck", - "required": false, - "since": "4.15", - "type": "boolean" - }, - { - "description": "Certificate chain of trust", - "length": 2097152, - "name": "certchain", + "name": "keyword", "required": false, "type": "string" }, { - "description": "Password for the private key", + "description": "", "length": 255, - "name": "password", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "an optional project for the SSL certificate", + "description": "list direct download certificate by ID", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "id", + "related": "uploadTemplateDirectDownloadCertificate,listTemplateDirectDownloadCertificates", "required": false, "type": "uuid" }, { - "description": "Name for the uploaded certificate", + "description": "if set to true: include the hosts where the certificate is uploaded to", "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "SSL certificate", - "length": 16384, - "name": "certificate", - "required": true, - "type": "string" + "name": "listhosts", + "required": false, + "type": "boolean" }, { - "description": "domain ID of the account owning the SSL certificate", + "description": "", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" } ], - "related": "", + "related": "uploadTemplateDirectDownloadCertificate", "response": [ { - "description": "certificate chain", - "name": "certchain", - "type": "string" + "description": "the hosts where the certificate is uploaded to", + "name": "hostsmap", + "type": "list" }, - {}, { - "description": "SSL certificate ID", - "name": "id", + "description": "the direct download certificate issuer", + "name": "validity", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the direct download certificate version", + "name": "version", + "type": "string" }, { - "description": "name", - "name": "name", + "description": "the direct download certificate serial num", + "name": "serialnum", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the zone name where the certificate is uploaded", + "name": "zonename", "type": "string" }, { - "description": "the project name of the certificate", - "name": "project", + "description": "the hypervisor of the hosts where the certificate is uploaded", + "name": "hypervisor", "type": "string" }, { - "description": "the project id of the certificate", - "name": "projectid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "List of loabalancers this certificate is bound to", - "name": "loadbalancerrulelist", - "type": "list" + "description": "the direct download certificate issuer", + "name": "issuer", + "type": "string" }, { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "the direct download certificate alias", + "name": "alias", "type": "string" }, { - "description": "certificate fingerprint", - "name": "fingerprint", + "description": "the direct download certificate subject", + "name": "subject", "type": "string" }, { - "description": "account for the certificate", - "name": "account", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, {}, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "the direct download certificate id", + "name": "id", "type": "string" }, { - "description": "certificate", - "name": "certificate", + "description": "the zone id where the certificate is uploaded", + "name": "zoneid", "type": "string" } - ] + ], + "since": "4.17.0" }, { - "description": "Updates the registered OAuth provider details", + "description": "List ucs manager", "isasync": false, - "name": "updateOauthProvider", + "name": "listUcsManagers", "params": [ { - "description": "Description of the OAuth Provider", + "description": "", "length": 255, - "name": "description", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Client ID pre-registered in the specific OAuth provider", + "description": "the ID of the ucs manager", "length": 255, - "name": "clientid", + "name": "id", + "related": "listUcsManagers,addUcsManager", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Redirect URI pre-registered in the specific OAuth provider", + "description": "List by keyword", "length": 255, - "name": "redirecturi", + "name": "keyword", "required": false, "type": "string" }, { - "description": "id of the OAuth provider to be updated", - "length": 255, - "name": "id", - "related": "updateOauthProvider", - "required": true, - "type": "uuid" - }, - { - "description": "Secret Key pre-registered in the specific OAuth provider", + "description": "", "length": 255, - "name": "secretkey", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "OAuth provider will be enabled or disabled based on this value", + "description": "the zone id", "length": 255, - "name": "enabled", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "boolean" + "type": "uuid" } ], - "related": "", + "related": "addUcsManager", "response": [ { - "description": "Description of the provider registered", - "name": "description", - "type": "string" - }, - { - "description": "Secret key registered in the OAuth provider", - "name": "secretkey", + "description": "the zone ID of ucs manager", + "name": "zoneid", "type": "string" }, - {}, { - "description": "Name of the provider", + "description": "the name of ucs manager", "name": "name", "type": "string" }, { - "description": "ID of the provider", + "description": "the ID of the ucs manager", "name": "id", "type": "string" }, - { - "description": "Redirect URI registered in the OAuth provider", - "name": "redirecturi", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, {}, { - "description": "Client ID registered in the OAuth provider", - "name": "clientid", - "type": "string" - }, - { - "description": "Whether the OAuth provider is enabled or not", - "name": "enabled", - "type": "boolean" - }, - { - "description": "Name of the provider", - "name": "provider", + "description": "the url of ucs manager", + "name": "url", "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", + "name": "jobid", + "type": "string" } - ], - "since": "4.19.0" + ] }, { - "description": "Creates site to site vpn customer gateway", - "isasync": true, - "name": "createVpnCustomerGateway", + "description": "Upgrades domain router to a new service offering", + "isasync": false, + "name": "changeServiceForRouter", "params": [ { - "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.", + "description": "The ID of the router", "length": 255, - "name": "ipsecpsk", + "name": "id", + "related": "destroyRouter,listRouters,changeServiceForRouter,listInternalLoadBalancerVMs", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "Force Encapsulation for NAT traversal", + "description": "the service offering ID to apply to the domain router", "length": 255, - "name": "forceencap", - "required": false, - "type": "boolean" + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" + } + ], + "related": "destroyRouter,listRouters,listInternalLoadBalancerVMs", + "response": [ + { + "description": "the Zone ID for the router", + "name": "zoneid", + "type": "string" }, { - "description": "create site-to-site VPN customer gateway for the project", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "since": "4.6", - "type": "uuid" + "description": "the guest netmask for the router", + "name": "guestnetmask", + "type": "string" }, { - "description": "guest cidr list of the customer gateway. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": true, + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, { - "description": "IKE policy of the customer gateway", - "length": 255, - "name": "ikepolicy", - "required": true, + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, { - "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" }, { - "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds", - "length": 255, - "name": "ikelifetime", - "required": false, - "type": "long" + "description": "VPC the router belongs to", + "name": "vpcid", + "type": "string" }, { - "description": "If DPD is enabled for VPN connection", - "length": 255, - "name": "dpd", - "required": false, - "type": "boolean" + "description": "the public MAC address for the router", + "name": "publicmacaddress", + "type": "string" }, { - "description": "ESP policy of the customer gateway", - "length": 255, - "name": "esppolicy", - "required": true, + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, { - "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds", - "length": 255, - "name": "esplifetime", - "required": false, - "type": "long" + "description": "the guest IP address for the router", + "name": "guestipaddress", + "type": "string" }, { - "description": "name of this customer gateway", - "length": 255, - "name": "name", - "required": false, + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "public ip address id of the customer gateway", - "length": 255, - "name": "gateway", - "required": true, + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Connections marked with 'ike' will use 'ikev2' when initiating, but accept any protocol version when responding. Defaults to ike", - "length": 255, - "name": "ikeversion", - "required": false, - "since": "4.15.1", + "description": "the list of nics associated with the router", + "name": "nic", + "response": [ + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the second DNS for the router", + "name": "dns2", "type": "string" }, { - "description": "the account associated with the gateway. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the guest MAC address for the router", + "name": "guestmacaddress", "type": "string" }, { - "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", - "length": 255, - "name": "splitconnections", - "required": false, - "since": "4.15.1", - "type": "boolean" - } - ], - "related": "updateVpnCustomerGateway", - "response": [ + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, { - "description": "the vpn gateway ID", - "name": "id", + "description": "the state of redundant virtual router", + "name": "redundantstate", "type": "string" }, { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" + "description": "the Zone name for the router", + "name": "zonename", + "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "role of the domain router", + "name": "role", "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "the domain associated with the router", + "name": "domain", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "public ip address id of the customer gateway", - "name": "gateway", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", + "description": "the link local IP address for the router", + "name": "linklocalip", "type": "string" }, + {}, { - "description": "the domain id of the owner", - "name": "domainid", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "IPsec policy of customer gateway", - "name": "esppolicy", + "description": "the version of template", + "name": "version", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the router", + "name": "state", + "type": "state" + }, + { + "description": "the date and time the router was created", + "name": "created", + "type": "date" + }, + { + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" + }, + { + "description": "the public netmask for the router", + "name": "publicnetmask", "type": "string" }, { - "description": "IKE policy of customer gateway", - "name": "ikepolicy", + "description": "the account associated with the router", + "name": "account", "type": "string" }, + {}, { - "description": "IPsec preshared-key of customer gateway", - "name": "ipsecpsk", + "description": "path of the Domain the router belongs to", + "name": "domainpath", "type": "string" }, { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", - "type": "long" + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" }, { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the project id", - "name": "projectid", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "name of the customer gateway", - "name": "name", + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", "type": "string" }, { - "description": "the owner", - "name": "account", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", "type": "string" }, - {}, { - "description": "if DPD is enabled for customer gateway", - "name": "dpd", - "type": "boolean" + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", + "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name", - "name": "project", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { @@ -70177,606 +61921,741 @@ "type": "integer" }, { - "description": "guest ip of the customer gateway", - "name": "ipaddress", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", - "name": "splitconnections", - "type": "boolean" + "description": "the name of the router", + "name": "name", + "type": "string" }, - {} - ] - }, - { - "description": "remove an annotation.", - "isasync": false, - "name": "removeAnnotation", - "params": [ { - "description": "the id of the annotation", - "length": 255, - "name": "id", - "required": true, + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" - } - ], - "related": "addAnnotation,listAnnotations", - "response": [ + }, { - "description": "the (uu)id of the annotation", - "name": "id", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "the type of the annotated entity", - "name": "entitytype", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, - {}, { - "description": "the (uu)id of the entity to which this annotation pertains", - "name": "entityid", + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "the removal timestamp for this annotation", - "name": "removed", - "type": "date" + "description": "the version of the code / software in the router", + "name": "softwareversion", + "type": "string" }, { - "description": "The username of the user that entered the annotation", - "name": "username", + "description": "the public IP address for the router", + "name": "publicip", "type": "string" }, { - "description": "the creation timestamp for this annotation", - "name": "created", - "type": "date" + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the name of the entity to which this annotation pertains", - "name": "entityname", + "description": "the link local netmask for the router", + "name": "linklocalnetmask", "type": "string" }, { - "description": "the contents of the annotation", - "name": "annotation", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, { - "description": "True if the annotation is available for admins only", - "name": "adminsonly", - "type": "boolean" + "description": "the template ID for the router", + "name": "templateid", + "type": "string" }, { - "description": "The (uu)id of the user that entered the annotation", - "name": "userid", + "description": "the domain ID associated with the router", + "name": "domainid", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the hostname for the router", + "name": "hostname", + "type": "string" + }, + { + "description": "Last executed health check result for the router", + "name": "healthcheckresults", + "response": [ + { + "description": "the name of the health check on the router", + "name": "checkname", + "type": "string" + }, + { + "description": "detailed response generated on running health check", + "name": "details", + "type": "string" + }, + { + "description": "the type of the health check - basic or advanced", + "name": "checktype", + "type": "string" + }, + { + "description": "result of the health check", + "name": "success", + "type": "boolean" + }, + { + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" + } + ], + "type": "list" } - ], - "since": "4.11" + ] }, { - "description": "add a baremetal host", + "description": "Remove an Ldap Configuration", "isasync": false, - "name": "addBaremetalHost", + "name": "deleteLdapConfiguration", "params": [ { - "description": "ip address intentionally allocated to this host after provisioning", + "description": "port", "length": 255, - "name": "ipaddress", + "name": "port", + "required": false, + "type": "integer" + }, + { + "description": "Hostname", + "length": 255, + "name": "hostname", + "required": true, + "type": "string" + }, + { + "description": "linked domain", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", "required": false, + "type": "uuid" + } + ], + "related": "addLdapConfiguration", + "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": "name of the host running the ldap server", + "name": "hostname", "type": "string" }, { - "description": "list of tags to be added to the host", + "description": "port the ldap server is running on", + "name": "port", + "type": "int" + }, + { + "description": "linked domain", + "name": "domainid", + "type": "string" + } + ], + "since": "4.2.0" + }, + { + "description": "Updates the volume.", + "isasync": true, + "name": "updateVolume", + "params": [ + { + "description": "The path of the volume", "length": 255, - "name": "hosttags", + "name": "path", "required": false, - "type": "list" + "type": "string" }, { - "description": "the cluster ID for the host", + "description": "Destination storage pool UUID for the volume", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", "required": false, + "since": "4.3", "type": "uuid" }, { - "description": "the username for the host; required to be passed for hypervisors other than VMWare", + "description": "The chain info of the volume", "length": 255, - "name": "username", + "name": "chaininfo", "required": false, + "since": "4.4", "type": "string" }, { - "description": "the cluster name for the host", + "description": "the ID of the disk volume", "length": 255, - "name": "clustername", + "name": "id", + "related": "attachVolume,createVolume,updateVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the host URL", + "description": "new name of the volume", "length": 255, - "name": "url", - "required": true, + "name": "name", + "required": false, + "since": "4.16", "type": "string" }, { - "description": "the Zone ID for the host", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - }, - { - "description": "hypervisor type of the host", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "hypervisor", - "required": true, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "the Pod ID for the host", + "description": "Set delete protection for the volume. If true, The volume will be protected from deletion. Note: If the volume is managed by another service like autoscaling groups or CKS, delete protection will be ignored.", "length": 255, - "name": "podid", - "related": "createPod,listPods,createManagementNetworkIpRange", - "required": true, - "type": "uuid" + "name": "deleteprotection", + "required": false, + "since": "4.20.0", + "type": "boolean" }, { - "description": "the password for the host; required to be passed for hypervisors other than VMWare", + "description": "The state of the volume", "length": 255, - "name": "password", + "name": "state", "required": false, + "since": "4.3", "type": "string" }, { - "description": "Allocation state of this Host for allocation of new resources", + "description": "an optional field, whether to the display the volume to the end user or not.", "length": 255, - "name": "allocationstate", + "name": "displayvolume", "required": false, - "type": "string" + "type": "boolean" } ], - "related": "declareHostAsDegraded,listHosts,reconnectHost", + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", "response": [ { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", - "type": "string" + "description": "the date the disk volume was created", + "name": "created", + "type": "date" }, { - "description": "the cluster ID of the host", - "name": "clusterid", - "type": "string" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "the Zone name of the host", - "name": "zonename", - "type": "string" + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, + {}, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "the project id of the vpn", + "name": "projectid", + "type": "string" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "the chain info of the volume", + "name": "chaininfo", + "type": "string" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "events available for the host", - "name": "events", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "name of the virtual machine", + "name": "vmname", + "type": "string" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "ID of the availability zone", + "name": "zoneid", + "type": "string" }, { - "description": "the ID of the host", - "name": "id", - "type": "string" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "the name of the host", + "description": "name of the disk volume", "name": "name", "type": "string" }, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", + "type": "string" }, { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "description": "the status of the volume", + "name": "status", + "type": "string" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" + "description": "shared or local storage", + "name": "storagetype", + "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", "type": "long" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", "type": "boolean" }, { - "description": "the management server ID of the host", - "name": "managementserverid", - "type": "string" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", - "type": "string" + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" }, { - "description": "capabilities of the host", - "name": "capabilities", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the cluster name of the host", - "name": "clustername", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, + {}, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "pod name of the volume", + "name": "podname", + "type": "string" }, { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", "type": "boolean" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", "type": "long" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" - }, - { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, - {}, { - "description": "GPU cards present in the host", - "name": "gpugroup", - "response": [ - { - "description": "GPU cards present in the host", - "name": "gpugroupname", - "type": "string" - }, - { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", + "type": "string" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", "type": "boolean" }, { - "description": "the Pod name of the host", - "name": "podname", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", + "description": "min iops of the disk volume", + "name": "miniops", "type": "long" }, { - "description": "the host version", - "name": "version", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", "type": "long" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "cluster name where the volume is allocated", + "name": "clustername", + "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", + "type": "string" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", + "description": "state of the virtual machine", + "name": "vmstate", + "type": "string" + }, + { + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", + "type": "string" + }, + { + "description": "the state of the disk volume", + "name": "state", + "type": "string" + }, + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", "type": "boolean" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "the project name of the vpn", + "name": "project", + "type": "string" }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "CPU Arch of the host", - "name": "arch", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, - {} + { + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" + } ] }, { - "description": "Disables a role", + "description": "Lists traffic types of a given physical network.", "isasync": false, - "name": "disableRole", + "name": "listTrafficTypes", "params": [ { - "description": "ID of the role", + "description": "", "length": 255, - "name": "id", - "related": "createRole,listRoles,updateRole", + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": true, "type": "uuid" } ], + "related": "listNetworkServiceProviders", "response": [ - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the provider name", + "name": "name", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", "type": "boolean" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", @@ -70786,707 +62665,851 @@ "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + {}, + {} ], - "since": "4.20.0" + "since": "3.0.0" }, { - "description": "Deletes a role permission", + "description": "Creates a Project role", "isasync": false, - "name": "deleteRolePermission", + "name": "createProjectRole", "params": [ { - "description": "ID of the role permission", + "description": "creates a project role with this unique name", "length": 255, - "name": "id", - "related": "", + "name": "name", + "required": true, + "type": "string" + }, + { + "description": "ID of project where role is being created", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": true, "type": "uuid" + }, + { + "description": "The description of the Project role", + "length": 255, + "name": "description", + "required": false, + "type": "string" } ], + "related": "updateProjectRole", "response": [ { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the role", + "name": "name", + "type": "string" + }, + { + "description": "the description of the role", + "name": "description", "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", + "name": "jobid", + "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the id of the project", + "name": "projectid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the role", + "name": "id", "type": "string" - } + }, + { + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {} ], - "since": "4.9.0" + "since": "4.15.0" }, { - "description": "Update VM Schedule.", - "isasync": false, - "name": "updateVMSchedule", + "description": "Creates an Ipv6 firewall rule in the given network (the network must not belong to VPC)", + "isasync": true, + "name": "createIpv6FirewallRule", "params": [ { - "description": "start date from which the schedule becomes activeUse format \"yyyy-MM-dd hh:mm:ss\")", + "description": "an optional field, whether to the display the rule to the end user or not", "length": 255, - "name": "startdate", + "name": "fordisplay", "required": false, - "type": "date" + "type": "boolean" }, { - "description": "Name of the schedule", + "description": "the starting port of Ipv6 firewall rule", "length": 255, - "name": "description", + "name": "startport", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see TimeZone Format.", + "description": "the ending port of Ipv6 firewall rule", "length": 255, - "name": "timezone", + "name": "endport", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Enable VM schedule", + "description": "error code for this ICMP message", "length": 255, - "name": "enabled", + "name": "icmpcode", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "Schedule for action on VM in cron format. e.g. '0 15 10 * *' for 'at 15:00 on 10th day of every month'", + "description": "type of the ICMP message being sent", "length": 255, - "name": "schedule", + "name": "icmptype", "required": false, - "type": "string" - }, - { - "description": "ID of VM schedule", - "length": 255, - "name": "id", - "related": "updateVMSchedule", - "required": true, - "type": "uuid" + "type": "integer" }, { - "description": "end date after which the schedule becomes inactiveUse format \"yyyy-MM-dd hh:mm:ss\")", + "description": "the traffic type for the Ipv6 firewall rule, can be ingress or egress, defaulted to ingress if not specified", "length": 255, - "name": "enddate", + "name": "traffictype", "required": false, - "type": "date" - } - ], - "related": "", - "response": [ - {}, - { - "description": "Timezone of the schedule", - "name": "timezone", "type": "string" }, { - "description": "Date after which the schedule becomes inactive", - "name": "enddate", - "type": "date" - }, - { - "description": "VM schedule is enabled", - "name": "enabled", - "type": "boolean" - }, - {}, - { - "description": "Description of VM schedule", - "name": "description", + "description": "the protocol for the Ipv6 firewall rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", + "length": 255, + "name": "protocol", + "required": true, "type": "string" }, { - "description": "Date when the schedule was created", - "name": "created", - "type": "date" + "description": "the source CIDR list to allow traffic from. Multiple entries must be separated by a single comma character (,).", + "length": 255, + "name": "cidrlist", + "required": false, + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the destination CIDR list to allow traffic to. Multiple entries must be separated by a single comma character (,).", + "length": 255, + "name": "destcidrlist", + "required": false, + "type": "list" }, { - "description": "ID of virtual machine", - "name": "virtualmachineid", - "type": "string" - }, + "description": "The network of the VM the Ipv6 firewall rule will be created for", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" + } + ], + "related": "createRoutingFirewallRule,updateIpv6FirewallRule,listPortForwardingRules,updatePortForwardingRule", + "response": [ { - "description": "the ID of VM schedule", + "description": "the ID of the port forwarding rule", "name": "id", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" }, { - "description": "Action", - "name": "action", - "type": "action" - }, - { - "description": "Cron formatted VM schedule", - "name": "schedule", + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", "type": "string" }, { - "description": "Date from which the schedule is active", - "name": "startdate", - "type": "date" - } - ], - "since": "4.19.0" - }, - { - "description": "Lists all configuration groups (primarily used for UI).", - "isasync": false, - "name": "listConfigurationGroups", - "params": [ - { - "description": "lists configuration group by group name", - "length": 255, - "name": "group", - "required": false, + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, {}, + {}, { - "description": "the precedence of the configuration group", - "name": "precedence", - "type": "long" + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", + "type": "string" }, { - "description": "the name of the configuration group", - "name": "name", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "the description of the configuration group", - "name": "description", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, - {}, { - "description": "the subgroups of the configuration group", - "name": "subgroup", + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "the precedence of the configuration subgroup", - "name": "precedence", - "type": "long" + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "the name of the configuration subgroup", - "name": "name", + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.18.0" - }, - { - "description": "Releases a Pod IP back to the Pod", - "isasync": false, - "name": "releasePodIpAddress", - "params": [ + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", + "type": "string" + }, { - "description": "UUID of the Pod IP", - "length": 255, - "name": "id", - "required": true, - "type": "long" - } - ], - "response": [ + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", + "type": "string" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the rule", + "name": "state", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the protocol of the port forwarding rule", + "name": "protocol", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", + "type": "string" + }, + { + "description": "is firewall for display to the regular user", + "name": "fordisplay", "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" } ] }, { - "description": "Updates remote access vpn", - "isasync": true, - "name": "updateRemoteAccessVpn", + "description": "Updates account information for the authenticated user", + "isasync": false, + "name": "updateAccount", "params": [ { - "description": "id of the remote access vpn", + "description": "The UUID of the dynamic role to set for the account", "length": 255, - "name": "id", - "related": "createRemoteAccessVpn,listRemoteAccessVpns,updateRemoteAccessVpn", - "required": true, + "name": "roleid", + "related": "createRole,importRole,listRoles,updateRole", + "required": false, "type": "uuid" }, { - "description": "an optional field, whether to the display the vpn to the end user or not", + "description": "Details for the account used to store specific parameters", "length": 255, - "name": "fordisplay", + "name": "accountdetails", "required": false, - "since": "4.4", - "type": "boolean" + "type": "map" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "Network domain for the account's networks; empty string will update domainName with NULL value", "length": 255, - "name": "customid", + "name": "networkdomain", "required": false, - "since": "4.4", "type": "string" - } - ], - "related": "createRemoteAccessVpn,listRemoteAccessVpns", - "response": [ - {}, + }, { - "description": "the domain name of the account of the remote access vpn", - "name": "domain", - "type": "string" + "description": "The UUID of the domain where the account exists", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the account of the remote access vpn", + "description": "Current account name", + "length": 255, "name": "account", + "required": false, "type": "string" }, { - "description": "the public ip address of the vpn server", - "name": "publicipid", + "description": "New name for the account", + "length": 255, + "name": "newname", + "required": false, "type": "string" }, { - "description": "is vpn for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "Account UUID", + "length": 255, + "name": "id", + "related": "createAccount,disableAccount,enableAccount,updateAccount,listAccounts,listAccounts", + "required": false, + "type": "uuid" + } + ], + "related": "createAccount,disableAccount,enableAccount,listAccounts,listAccounts", + "response": [ + { + "description": "the date when this account was created", + "name": "created", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", "type": "string" }, { - "description": "path of the domain to which the remote access vpn belongs", - "name": "domainpath", + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", "type": "string" }, { - "description": "the id of the remote access vpn", - "name": "id", + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", "type": "string" }, { - "description": "the range of ips to allocate to the clients", - "name": "iprange", + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", "type": "string" }, { - "description": "the ipsec preshared key", - "name": "presharedkey", + "description": "the total number of networks the account can own", + "name": "networklimit", "type": "string" }, - {}, { - "description": "the project id of the vpn", - "name": "projectid", - "type": "string" + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" }, + {}, { - "description": "the domain id of the account of the remote access vpn", - "name": "domainid", + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" }, { - "description": "the public ip address of the vpn server", - "name": "publicip", + "description": "name of the Domain the account belongs to", + "name": "domain", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the total number of projects the account can own", + "name": "projectlimit", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "the name of the account", + "name": "name", "type": "string" - } - ], - "since": "4.4" - }, - { - "description": "Destroys a virtual machine. Once destroyed, only the administrator can recover it.", - "isasync": true, - "name": "destroyVirtualMachine", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" }, { - "description": "Comma separated list of UUIDs for volumes that will be deleted", - "length": 255, - "name": "volumeids", - "related": "createVolume,updateVolume,listVolumes,uploadVolume,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": false, - "since": "4.12.0", - "type": "list" + "description": "the default zone of the account", + "name": "defaultzoneid", + "type": "string" }, { - "description": "If true is passed, the vm is expunged immediately. False by default.", - "length": 255, - "name": "expunge", - "required": false, - "since": "4.2.1", - "type": "boolean" - } - ], - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the total volume available for this account", + "name": "volumeavailable", + "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the total number of vpcs the account can own", + "name": "vpclimit", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the list of users associated with account", + "name": "user", "response": [ { - "description": "the ID of the affinity group", - "name": "id", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the domain ID of the affinity group", + "description": "the domain ID of the user", "name": "domainid", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "the api key of the user", + "name": "apikey", + "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" + }, + { + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the user state", + "name": "state", + "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, + { + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the domain name of the affinity group", + "description": "the domain name of the user", "name": "domain", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "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 user ID", + "name": "id", + "type": "string" + }, + { + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" + }, + { + "description": "the ID of the role", + "name": "roleid", + "type": "string" + }, + { + "description": "the user name", + "name": "username", + "type": "string" + }, + { + "description": "the account ID of the user", + "name": "accountid", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the user firstname", + "name": "firstname", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" + "description": "the total number of networks owned by account", + "name": "networktotal", + "type": "long" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the state of the account", + "name": "state", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the total volume which can be used by this account", + "name": "volumelimit", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", "type": "string" }, - {}, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" }, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", "type": "string" }, + {}, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "path of the Domain the account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" + }, + { + "description": "id of the Domain the account belongs to", + "name": "domainid", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", + "type": "long" + }, + { + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", "type": "string" }, - {}, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", + "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", "type": "long" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", "type": "integer" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the id of the account", + "name": "id", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", + "type": "boolean" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" + }, + { + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" + }, + { + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "true if account is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "details for the account", + "name": "accountdetails", + "type": "map" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the total number of vpcs owned by account", + "name": "vpctotal", + "type": "long" + }, + { + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" + }, + { + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", + "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", + "type": "long" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Adds secondary storage.", + "isasync": false, + "name": "addSecondaryStorage", + "params": [ + { + "description": "the Zone ID for the secondary storage", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the URL for the secondary storage", + "length": 255, + "name": "url", + "required": true, + "type": "string" + } + ], + "related": "listSwifts,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "response": [ + {}, + { + "description": "the ID of the image store", + "name": "id", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -71494,162 +63517,353 @@ "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the provider name of the image store", + "name": "providername", + "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the name of the image store", + "name": "name", + "type": "string" + }, + { + "description": "the Zone name of the image store", + "name": "zonename", + "type": "string" + }, + { + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" + }, + { + "description": "the total disk size of the host", + "name": "disksizetotal", "type": "long" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the host's currently used disk size", + "name": "disksizeused", "type": "long" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the Zone ID of the image store", + "name": "zoneid", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, + {} + ] + }, + { + "description": "Updates properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call.", + "isasync": false, + "name": "updateVirtualMachine", + "params": [ { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", + "required": false, + "since": "4.16.0", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "true if VM contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory. This can be updated only when dynamic scaling is enabled on template, service offering and the corresponding global setting", + "length": 255, + "name": "isdynamicallyscalable", + "required": false, + "type": "boolean" + }, + { + "description": "new host name of the vm. The VM has to be stopped/started for this update to take affect", + "length": 255, + "name": "name", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "an optional URL encoded string that can be passed to the virtual machine upon successful deployment", + "length": 5120, + "name": "extraconfig", + "required": false, + "since": "4.12", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "instance name of the user vm", + "length": 255, + "name": "instancename", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", + "description": "list of security group ids to be applied on the virtual machine.", + "length": 255, + "name": "securitygroupids", + "related": "createSecurityGroup", + "required": false, + "type": "list" + }, + { + "description": "used to specify the parameters values for the variables in userdata.", + "length": 255, "name": "userdatadetails", - "type": "string" + "required": false, + "since": "4.18", + "type": "map" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "true if high-availability is enabled for the virtual machine, false otherwise", + "length": 255, + "name": "haenable", + "required": false, + "type": "boolean" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com", + "length": 255, + "name": "dhcpoptionsnetworklist", + "required": false, + "type": "map" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "group of the virtual machine", + "length": 255, + "name": "group", + "required": false, "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" + "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", + "length": 255, + "name": "securitygroupnames", + "related": "createSecurityGroup", + "required": false, + "type": "list" }, { - "description": "the project name of the vm", - "name": "project", - "type": "string" + "description": "an optional field, whether to the display the vm to the end user or not.", + "length": 255, + "name": "displayvm", + "required": false, + "type": "boolean" }, { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "Details in key/value pairs. 'extraconfig' is not allowed to be passed in details.", + "length": 255, + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "Set delete protection for the virtual machine. If true, the instance will be protected from deletion. Note: If the instance is managed by another service like autoscaling groups or CKS, delete protection will be ignored.", + "length": 255, + "name": "deleteprotection", + "required": false, + "since": "4.20.0", + "type": "boolean" + }, + { + "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "length": 255, + "name": "cleanupdetails", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the userdata", + "length": 255, + "name": "userdataid", + "related": "", + "required": false, + "since": "4.18", + "type": "uuid" + }, + { + "description": "the ID of the OS type that best represents this VM.", + "length": 255, + "name": "ostypeid", + "related": "listOsTypes,addGuestOs", + "required": false, + "type": "uuid" + }, + { + "description": "user generated name", + "length": 255, + "name": "displayname", + "required": false, + "type": "string" + } + ], + "related": "migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + } + ], + "type": "set" + }, + { + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" + }, + { + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", "type": "integer" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", "type": "list" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { @@ -71663,28 +63877,38 @@ "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { @@ -71693,8 +63917,13 @@ "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { @@ -71703,67 +63932,229 @@ "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { "description": "the netmask of the nic", "name": "netmask", "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" } ], "type": "set" }, + { + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" + }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", + "type": "string" + }, + { + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" + }, + { + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" + }, + { + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "State of the Service from LB rule", + "name": "servicestate", + "type": "string" + }, + {}, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" + }, + { + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" + }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + { + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, + { + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" + }, + { + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" + }, + { + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" + }, + { + "description": "the name of the virtual machine", + "name": "name", + "type": "string" + }, + { + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" + }, + { + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the project name of the vm", + "name": "project", + "type": "string" + }, + {}, + { + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, { "description": "the password (if exists) of the virtual machine", "name": "password", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { "description": "the memory used by the VM in KiB", @@ -71771,54 +64162,48 @@ "type": "long" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, - {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", "type": "long" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { @@ -71826,96 +64211,96 @@ "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "id of the resource", + "name": "resourceid", "type": "string" } ], "type": "set" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { @@ -71924,38 +64309,39 @@ "type": "integer" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, + {}, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { "description": "the name of the security group", @@ -71963,15 +64349,35 @@ "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", "type": "string" }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, { "description": "the list of resource tags associated with the rule", "name": "tags", @@ -71981,16 +64387,6 @@ "name": "value", "type": "string" }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, { "description": "id of the resource", "name": "resourceid", @@ -72001,249 +64397,105 @@ "name": "domain", "type": "string" }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, { "description": "the project id the tag belongs to", "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "security group name", - "name": "securitygroupname", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the protocol of the security group rule", - "name": "protocol", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" } ], "type": "set" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", "response": [ { "description": "the code for the ICMP message response", "name": "icmpcode", "type": "integer" }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, { "description": "the id of the security group rule", "name": "ruleid", "type": "string" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" }, { - "description": "account owning the security group rule", - "name": "account", + "description": "security group name", + "name": "securitygroupname", "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", + "description": "the starting IP of the security group rule", + "name": "startport", "type": "integer" }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, { "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -72252,18 +64504,23 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", "type": "string" }, { @@ -72274,337 +64531,40 @@ ], "type": "set" }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, { "description": "the CIDR notation for the base IP address of the security group rule", "name": "cidr", "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", + "description": "the type of the ICMP message response", + "name": "icmptype", "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" } ], "type": "set" }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - } - ] - }, - { - "description": "Starts a virtual machine.", - "isasync": true, - "name": "startVirtualMachine", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - }, - { - "description": "Deployment planner to use for vm allocation. Available to ROOT admin only", - "length": 255, - "name": "deploymentplanner", - "required": false, - "since": "4.4", - "type": "string" - }, - { - "description": "destination Host ID to deploy the VM to - parameter available for root admin only", - "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,listHosts,reconnectHost", - "required": false, - "since": "3.0.1", - "type": "uuid" - }, - { - "description": "Boot into hardware setup menu or not", - "length": 255, - "name": "bootintosetup", - "required": false, - "since": "4.15.0.0", - "type": "boolean" - }, - { - "description": "destination Cluster ID to deploy the VM to - parameter available for root admin only", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" - }, - { - "description": "destination Pod ID to deploy the VM to - parameter available for root admin only", - "length": 255, - "name": "podid", - "related": "createPod,listPods,createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, - { - "description": "True by default, CloudStack will firstly try to start the VM on the last host where it run on before stopping, if destination host is not specified. If false, CloudStack will not consider the last host and start the VM by normal process.", - "length": 255, - "name": "considerlasthost", - "required": false, - "since": "4.18.0", - "type": "boolean" - } - ], - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" - }, - { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" - }, - { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" - }, - {}, - { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" - }, - { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" - }, - { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "User VM type", - "name": "vmtype", - "type": "string" - }, - { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" - }, - { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, { "description": "the list of egress rules associated with the security group", "name": "egressrule", "response": [ - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -72613,13 +64573,13 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -72628,23 +64588,23 @@ "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -72653,31 +64613,21 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], "type": "set" }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, { "description": "the protocol of the security group rule", "name": "protocol", "type": "string" }, { - "description": "account owning the security group rule", - "name": "account", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { @@ -72686,240 +64636,79 @@ "type": "string" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the starting IP of the security group rule", + "name": "startport", "type": "integer" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", + "description": "the type of the ICMP message response", + "name": "icmptype", "type": "integer" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" }, { - "description": "the account associated with the tag", + "description": "account owning the security group rule", "name": "account", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" } ], "type": "set" }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, { "description": "the domain name of the security group", "name": "domain", "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - } - ], - "type": "set" + "description": "the account owning the security group", + "name": "account", + "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "the project id of the group", + "name": "projectid", + "type": "string" } ], "type": "set" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" + }, + { + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" + }, + { + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { @@ -72928,267 +64717,394 @@ "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, - {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, - {}, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" + } + ] + }, + { + "description": "Triggers an automatic safe shutdown of CloudStack by not accepting new jobs and shutting down when all pending jobbs have been completed. Triggers an immediate shutdown if forced", + "isasync": false, + "name": "triggerShutdown", + "params": [ + { + "description": "the uuid of the management server", + "length": 255, + "name": "managementserverid", + "related": "", + "required": true, + "type": "uuid" + } + ], + "related": "prepareForShutdown", + "response": [ + { + "description": "Indicates whether a shutdown has been triggered", + "name": "shutdowntriggered", + "type": "boolean" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "Indicates whether CloudStack is ready to shutdown", + "name": "readyforshutdown", "type": "boolean" }, + {}, + {}, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "The number of jobs in progress", + "name": "pendingjobscount", + "type": "long" + }, + { + "description": "The id of the management server", + "name": "managementserverid", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.19.0" + }, + { + "description": "Disables an account", + "isasync": true, + "name": "disableAccount", + "params": [ + { + "description": "Disables specified account.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "Account id", + "length": 255, + "name": "id", + "related": "createAccount,disableAccount,enableAccount,listAccounts,listAccounts", + "required": false, + "type": "uuid" + }, + { + "description": "Disables specified account in this domain.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "If true, only lock the account; else disable the account", + "length": 255, + "name": "lock", + "required": true, + "type": "boolean" + } + ], + "related": "createAccount,enableAccount,listAccounts,listAccounts", + "response": [ + { + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", "type": "integer" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the total number of networks the account can own", + "name": "networklimit", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the total number of networks owned by account", + "name": "networktotal", "type": "long" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "path of the Domain the account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", + "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the date when this virtual machine was created", + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" + }, + { + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", + "type": "string" + }, + { + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, + { + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" + }, + { + "description": "the date when this account was created", "name": "created", "type": "date" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "the total volume available for this account", + "name": "volumeavailable", + "type": "string" + }, + { + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", + "type": "string" + }, + { + "description": "id of the Domain the account belongs to", + "name": "domainid", + "type": "string" + }, + { + "description": "the total volume which can be used by this account", + "name": "volumelimit", + "type": "string" + }, + { + "description": "name of the Domain the account belongs to", + "name": "domain", + "type": "string" + }, + { + "description": "the total number of vpcs the account can own", + "name": "vpclimit", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", "type": "long" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", + "type": "string" + }, + { + "description": "the ID of the role", + "name": "roleid", + "type": "string" + }, + { + "description": "the total number of vpcs owned by account", + "name": "vpctotal", + "type": "long" + }, + { + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", + "type": "string" + }, + { + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", + "type": "string" + }, + { + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", "type": "boolean" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", + "type": "long" + }, + { + "description": "the id of the account", + "name": "id", "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": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" + "description": "the name of the account", + "name": "name", + "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" + }, + { + "description": "the name of the role", + "name": "rolename", "type": "string" }, { @@ -73197,1258 +65113,1463 @@ "type": "integer" }, { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", + "type": "string" + }, + {}, + { + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", + "type": "string" + }, + { + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", + "type": "string" + }, + { + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" + }, + { + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" + }, + { + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" + }, + { + "description": "the total number of projects the account can own", + "name": "projectlimit", + "type": "string" + }, + { + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", + "type": "string" + }, + { + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the state of the account", + "name": "state", + "type": "string" + }, + { + "description": "true if account is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "details for the account", + "name": "accountdetails", + "type": "map" + }, + { + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", + "type": "string" + }, + { + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", + "type": "string" + }, + { + "description": "the default zone of the account", + "name": "defaultzoneid", + "type": "string" + }, + { + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", + "type": "string" + }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + {}, + { + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", + "type": "string" + }, + { + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" + }, + { + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" + }, + { + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the list of users associated with account", + "name": "user", "response": [ { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", - "type": "string" + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the user state", + "name": "state", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the type of the role", + "name": "roletype", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" } ], - "type": "set" + "type": "list" + } + ] + }, + { + "description": "Lists domains and provides detailed information for listed domains", + "isasync": false, + "name": "listDomains", + "params": [ + { + "description": "Tag for resource type to return usage", + "length": 255, + "name": "tag", + "required": false, + "since": "4.20.0", + "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "List domain by domain name.", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "comma separated list of domain details requested, value can be a list of [ all, resource, min]", + "length": 255, + "name": "details", + "required": false, + "type": "list" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "List domains by domain level.", + "length": 255, + "name": "level", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "List domain by domain ID.", + "length": 255, + "name": "id", + "related": "listDomainChildren,listDomains,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "flag to display the resource icon for domains", + "length": 255, + "name": "showicon", + "required": false, + "type": "boolean" + } + ], + "related": "listDomainChildren,listDomains", + "response": [ + { + "description": "the level of the domain", + "name": "level", + "type": "integer" + }, + { + "description": "the total number of public ip addresses available for this domain to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the total memory (in MB) available to be created for this domain", + "name": "memoryavailable", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the total number of projects being administrated by this domain", + "name": "projecttotal", + "type": "long" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the total number of snapshots which can be stored by this domain", + "name": "snapshotlimit", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the total number of virtual machines that can be deployed by this domain", + "name": "vmlimit", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the total secondary storage space (in GiB) the domain can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the total number of public ip addresses allocated for this domain", + "name": "iptotal", + "type": "long" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "the total secondary storage space (in GiB) owned by domain", + "name": "secondarystoragetotal", + "type": "float" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the state of the domain", + "name": "state", + "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the total number of snapshots stored by this domain", + "name": "snapshottotal", + "type": "long" + }, + { + "description": "the total number of virtual machines deployed by this domain", + "name": "vmtotal", + "type": "long" + }, + {}, + { + "description": "the total number of cpu cores owned by domain", + "name": "cputotal", + "type": "long" + }, + { + "description": "the total volume which can be used by this domain", + "name": "volumelimit", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "whether the domain has one or more sub-domains", + "name": "haschild", "type": "boolean" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "details for the domain", + "name": "domaindetails", + "type": "map" + }, + { + "description": "the total number of templates which have been created by this domain", + "name": "templatetotal", + "type": "long" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the total primary storage space (in GiB) owned by domain", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the domain ID of the parent domain", + "name": "parentdomainid", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the path of the domain", + "name": "path", + "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", + "description": "the total number of public ip addresses this domain can acquire", + "name": "iplimit", + "type": "string" + }, + { + "description": "the total secondary storage space (in GiB) available to be used for this domain", + "name": "secondarystorageavailable", + "type": "string" + }, + { + "description": "the total number of projects the domain can own", + "name": "projectlimit", + "type": "string" + }, + { + "description": "the total number of cpu cores available to be created for this domain", + "name": "cpuavailable", + "type": "string" + }, + {}, + { + "description": "the total volume being used by this domain", + "name": "volumetotal", + "type": "long" + }, + { + "description": "the total number of vpcs available to be created for this domain", + "name": "vpcavailable", + "type": "string" + }, + { + "description": "the total number of virtual machines available for this domain to acquire", + "name": "vmavailable", + "type": "string" + }, + { + "description": "the total primary storage space (in GiB) the domain can own", + "name": "primarystoragelimit", + "type": "string" + }, + { + "description": "the total number of networks available to be created for this domain", + "name": "networkavailable", + "type": "string" + }, + { + "description": "the date when this domain was created", + "name": "created", + "type": "date" + }, + { + "description": "the domain name of the parent domain", + "name": "parentdomainname", + "type": "string" + }, + { + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the total memory (in MB) the domain can own", + "name": "memorylimit", + "type": "string" + }, + { + "description": "the total number of vpcs owned by domain", + "name": "vpctotal", + "type": "long" + }, + { + "description": "the total number of snapshots available for this domain", + "name": "snapshotavailable", + "type": "string" + }, + { + "description": "the total number of templates available to be created by this domain", + "name": "templateavailable", + "type": "string" + }, + { + "description": "the total number of projects available for administration by this domain", + "name": "projectavailable", + "type": "string" + }, + { + "description": "the ID of the domain", + "name": "id", + "type": "string" + }, + { + "description": "the name of the domain", + "name": "name", + "type": "string" + }, + { + "description": "the total number of templates which can be created by this domain", + "name": "templatelimit", + "type": "string" + }, + { + "description": "The tagged resource limit and count for the domain", + "name": "taggedresources", + "type": "list" + }, + { + "description": "the total number of networks the domain can own", + "name": "networklimit", + "type": "string" + }, + { + "description": "the total primary storage space (in GiB) available to be used for this domain", + "name": "primarystorageavailable", + "type": "string" + }, + { + "description": "the total number of vpcs the domain can own", + "name": "vpclimit", + "type": "string" + }, + { + "description": "the total memory (in MB) owned by domain", + "name": "memorytotal", "type": "long" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the total number of networks owned by domain", + "name": "networktotal", "type": "long" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the total volume available for this domain", + "name": "volumeavailable", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the total number of cpu cores the domain can own", + "name": "cpulimit", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" } ] }, { - "description": "Lists the resource icon for the specified resource(s)", - "isasync": false, - "name": "listResourceIcon", + "description": "Updates a network", + "isasync": true, + "name": "updateNetwork", "params": [ { - "description": "type of the resource", + "description": "MTU to be configured on the network VR's public facing interfaces", "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" + "name": "publicmtu", + "required": false, + "since": "4.18.0", + "type": "integer" }, { - "description": "list of resources to upload the icon/image for", + "description": "if true, we will update the routers one after the other. applicable only for redundant router based networks using virtual router as provider", "length": 255, - "name": "resourceids", - "required": true, - "type": "list" - } - ], - "related": "", - "response": [ - {}, - { - "description": "resource type", - "name": "resourcetype", - "type": "resourceobjecttype" + "name": "updateinsequence", + "required": false, + "type": "boolean" }, { - "description": "base64 representation of resource icon", - "name": "base64image", + "description": "IPV4 address to be assigned to the public interface of the network router. This address must already be acquired for this network", + "length": 255, + "name": "sourcenatipaddress", + "required": false, + "since": "4.19", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "an optional field, whether to the display the network to the end user or not.", + "length": 255, + "name": "displaynetwork", + "required": false, + "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "CIDR for guest VMs, CloudStack allocates IPs to guest VMs only from this CIDR", + "length": 255, + "name": "guestvmcidr", + "required": false, "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "since": "4.16.0.0" - }, - { - "description": "Creates a new Pod.", - "isasync": false, - "name": "createPod", - "params": [ + "description": "network offering ID", + "length": 255, + "name": "networkofferingid", + "related": "listNetworkOfferings", + "required": false, + "type": "uuid" + }, { - "description": "the netmask for the Pod", + "description": "Setting this to true will cause a forced network update,", "length": 255, - "name": "netmask", + "name": "forced", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the starting IP address for the Pod", + "description": "Force update even if CIDR type is different", "length": 255, - "name": "startip", + "name": "changecidr", "required": false, + "type": "boolean" + }, + { + "description": "the second IPv4 DNS for the network. Empty string will update the second IPv4 DNS with the value from the zone", + "length": 255, + "name": "dns2", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the Zone ID in which the Pod will be created", + "description": "when true ip address usage for the network will not be exported by the listUsageRecords API", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "hideipaddressusage", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the network", + "length": 255, + "name": "id", + "related": "createNetwork,updateNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", "required": true, "type": "uuid" }, { - "description": "Allocation state of this Pod for allocation of new resources", + "description": "the first IPv4 DNS for the network. Empty string will update the first IPv4 DNS with the value from the zone", "length": 255, - "name": "allocationstate", + "name": "dns1", "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the name of the Pod", + "description": "the new name for the network", "length": 255, "name": "name", - "required": true, + "required": false, "type": "string" }, { - "description": "the ending IP address for the Pod", + "description": "MTU to be configured on the network VR's public facing interfaces", "length": 255, - "name": "endip", + "name": "privatemtu", "required": false, - "type": "string" + "since": "4.18.0", + "type": "integer" }, { - "description": "the gateway for the Pod", + "description": "the first IPv6 DNS for the network. Empty string will update the first IPv6 DNS with the value from the zone", "length": 255, - "name": "gateway", + "name": "ip6dns1", "required": false, + "since": "4.18.0", "type": "string" - } - ], - "related": "listPods,createManagementNetworkIpRange", - "response": [ - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" }, - {}, { - "description": "the allocation state of the Pod", - "name": "allocationstate", + "description": "the second IPv6 DNS for the network. Empty string will update the second IPv6 DNS with the value from the zone", + "length": 255, + "name": "ip6dns2", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the IP ranges for the Pod", - "name": "ipranges", - "response": [ - { - "description": "the gateway for the range", - "name": "gateway", - "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" - }, - { - "description": "the CIDR for the range", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP for the range", - "name": "endip", - "type": "string" - }, - { - "description": "indicates Vlan ID for the range", - "name": "vlanid", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the Zone ID of the Pod", - "name": "zoneid", + "description": "network domain", + "length": 255, + "name": "networkdomain", + "required": false, "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "the name of the Pod", - "name": "name", + "description": "the new display text for the network", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" - }, + } + ], + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "response": [ { - "description": "the netmask of the Pod", - "name": "netmask", - "type": "string" + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" }, { - "description": "the Zone name of the Pod", - "name": "zonename", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the ID of the Pod", - "name": "id", + "description": "path of the Domain the network belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the gateway of the Pod", - "name": "gateway", + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "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": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" }, { - "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", - "name": "endip", - "type": "list" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the capacity of the Pod", - "name": "capacity", + "description": "the list of services", + "name": "service", "response": [ { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - }, - { - "description": "the capacity name", + "description": "the service name", "name": "name", "type": "string" }, { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + } + ], + "type": "list" }, { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + } + ], + "type": "list" } ], "type": "list" }, { - "description": "the starting IP for the Pod. This parameter is deprecated, please use 'startip' from ipranges parameter.", - "name": "startip", - "type": "list" - }, - { - "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", - "name": "vlanid", - "type": "list" - } - ] - }, - { - "description": "Safely removes raw records from cloud_usage table", - "isasync": false, - "name": "removeRawUsageRecords", - "params": [ - { - "description": "Specify the number of days (greater than zero) to remove records that are older than those number of days from today. For example, specifying 10 would result in removing all the records created before 10 days from today", - "length": 255, - "name": "interval", - "required": true, - "type": "integer" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "name of the network offering the network is created from", + "name": "networkofferingname", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "state of the network", + "name": "state", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "UUID of AS NUMBER", + "name": "asnumberid", + "type": "string" }, - {} - ], - "since": "4.6.0" - }, - { - "description": "Issues and propagates client certificate on a connected host/agent using configured CA plugin", - "isasync": true, - "name": "provisionCertificate", - "params": [ { - "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, + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", "type": "boolean" }, { - "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", - "length": 255, - "name": "provider", - "required": false, + "description": "zone id of the network", + "name": "zoneid", "type": "string" }, { - "description": "The host/agent uuid to which the certificate has to be provisioned (issued and propagated)", - "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,listHosts,reconnectHost", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the name of the Network associated with this network", + "name": "associatednetwork", + "type": "string" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "ACL Id associated with the VPC network", + "name": "aclid", "type": "string" }, - {}, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ], - "since": "4.11.0" - }, - { - "description": "Lists VM metrics", - "isasync": false, - "name": "listVirtualMachinesMetrics", - "params": [ + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, { - "description": "makes the API's response contains only the resource count", - "length": 255, - "name": "retrieveonlyresourcecount", - "required": false, - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the storage ID where vm's volumes belong to", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" + "description": "VPC the network belongs to", + "name": "vpcid", + "type": "string" }, { - "description": "the ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", + "type": "string" }, { - "description": "list vms by iso", - "length": 255, - "name": "isoid", - "required": false, - "type": "uuid" + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, - "type": "uuid" + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" }, { - "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, + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", "type": "string" }, { - "description": "Whether to return the VMs' user data or not. By default, user data will not be returned.", - "length": 255, - "name": "userdata", - "required": false, - "since": "4.18.0.0", - "type": "boolean" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "list vms by vpc", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", + "type": "string" }, { - "description": "list by the service offering", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": false, - "since": "4.4", - "type": "uuid" + "description": "the date this network was created", + "name": "created", + "type": "date" }, { - "description": "the user ID that created the VM and is under the account that owns the VM", - "length": 255, - "name": "userid", - "related": "disableUser,getUser,listUsers,lockUser", - "required": false, - "type": "uuid" + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "displayvm", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" }, { - "description": "comma separated list of vm details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, backoff, iso, volume, min, affgrp]. When no parameters are passed, all the details are returned if list.vm.default.details.stats is true (default), otherwise when list.vm.default.details.stats is false the API response will exclude the stats details.", - "length": 255, - "name": "details", - "required": false, - "type": "list" + "description": "the id of the network", + "name": "id", + "type": "string" }, { - "description": "Accumulates the VM metrics data instead of returning only the most recent data collected. The default behavior is set by the global configuration vm.stats.increment.metrics.", - "length": 255, - "name": "accumulate", - "required": false, - "since": "4.17.0", - "type": "boolean" + "description": "the network's gateway", + "name": "gateway", + "type": "string" }, { - "description": "the target hypervisor for the template", - "length": 255, - "name": "hypervisor", - "required": false, + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "list by the High Availability offering; true if filtering VMs with HA enabled; false for VMs with HA disabled", - "length": 255, - "name": "haenable", - "required": false, - "since": "4.15", - "type": "boolean" + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", + "type": "string" }, { - "description": "the host ID", - "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,listHosts,reconnectHost", - "required": false, - "type": "uuid" + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", + "type": "integer" }, { - "description": "list vms by ssh keypair name", - "length": 255, - "name": "keypair", - "required": false, + "description": "The IPv4 routing type of network", + "name": "ip4routing", "type": "string" }, + {}, { - "description": "flag to display the resource icon for VMs", - "length": 255, - "name": "showicon", - "required": false, - "since": "4.16.0.0", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the displaytext of the network", + "name": "displaytext", + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the traffic type of the network", + "name": "traffictype", "type": "string" }, { - "description": "the pod ID", - "length": 255, - "name": "podid", - "related": "listPods,createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", + "type": "boolean" }, { - "description": "list vms by affinity group", - "length": 255, - "name": "affinitygroupid", - "related": "createAffinityGroup,listAffinityGroups", - "required": false, - "type": "uuid" + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", + "type": "string" }, { - "description": "flag to list vms created from VNF templates (as known as VNF appliances) or not; true if need to list VNF appliances, false otherwise.", - "length": 255, - "name": "isvnf", - "required": false, - "since": "4.19.0", - "type": "boolean" + "description": "the second IPv4 DNS for the network", + "name": "dns2", + "type": "string" }, { - "description": "list by network id", - "length": 255, - "name": "networkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "type": "uuid" + "description": "the details of the network", + "name": "details", + "type": "map" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", + "type": "string" }, { - "description": "list by the backup offering", - "length": 255, - "name": "backupofferingid", - "required": false, - "since": "4.17", - "type": "uuid" + "description": "network offering id the network is created from", + "name": "networkofferingid", + "type": "string" }, { - "description": "the group ID", - "length": 255, - "name": "groupid", - "related": "updateInstanceGroup", - "required": false, - "type": "uuid" + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" }, { - "description": "the security group ID", - "length": 255, - "name": "securitygroupid", - "related": "updateSecurityGroup", - "required": false, - "since": "4.15", - "type": "uuid" + "description": "the network's netmask", + "name": "netmask", + "type": "string" }, { - "description": "the availability zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", + "type": "string" }, { - "description": "the ID of AutoScaling VM Group", - "length": 255, - "name": "autoscalevmgroupid", - "related": "enableAutoScaleVmGroup", - "required": false, - "since": "4.18.0", - "type": "uuid" + "description": "list networks available for vm deployment", + "name": "canusefordeploy", + "type": "boolean" }, { - "description": "the IDs of the virtual machines, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "since": "4.4", - "type": "list" + "description": "related to what other network configuration", + "name": "related", + "type": "string" }, { - "description": "the cluster ID", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "list by network type; true if need to list vms using Virtual Network, false otherwise", - "length": 255, - "name": "forvirtualnetwork", - "required": false, - "type": "boolean" + "description": "the first IPv4 DNS for the network", + "name": "dns1", + "type": "string" }, { - "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.", - "length": 255, - "name": "state", - "required": false, + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", "type": "string" }, { - "description": "list vms by template", - "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "uuid" - } - ], - "related": "listVirtualMachinesMetrics", - "response": [ + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", + "type": "boolean" + }, + {}, { - "description": "the total memory capacity in GiB", - "name": "memorytotal", + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" + }, + { + "description": "acl type - access type to the network", + "name": "acltype", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" + }, + { + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "network read in MiB", - "name": "networkread", + "description": "The external id of the network", + "name": "externalid", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "the project name of the address", + "name": "project", + "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "the list of resource tags associated with network", + "name": "tags", "response": [ { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "tag key name", + "name": "key", "type": "string" } ], + "type": "list" + }, + { + "description": "the type of the network", + "name": "type", + "type": "string" + }, + { + "description": "the owner of the network", + "name": "account", + "type": "string" + }, + { + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", + "type": "string" + }, + { + "description": "the domain name of the network owner", + "name": "domain", + "type": "string" + }, + { + "description": "true network requires restart", + "name": "restartrequired", + "type": "boolean" + }, + { + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", "type": "set" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the domain id of the network owner", + "name": "domainid", + "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "The internet protocol of network offering", + "name": "internetprotocol", + "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", "type": "string" }, { - "description": "the total cpu capacity in Ghz", - "name": "cputotal", + "description": "the name of the network", + "name": "name", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "ACL name associated with the VPC network", + "name": "aclname", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", + "type": "string" + } + ] + }, + { + "description": "List Usage Types", + "isasync": false, + "name": "listUsageTypes", + "params": [], + "related": "", + "response": [ + { + "description": "Usage type description", + "name": "description", "type": "string" }, + {}, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Usage type ID", + "name": "id", + "type": "integer" + }, + { + "description": "Usage type name", + "name": "name", "type": "string" }, + {}, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "Resets the UserData for virtual machine. The virtual machine must be in a \"Stopped\" state.", + "isasync": false, + "name": "resetUserDataForVirtualMachine", + "params": [ + { + "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "User VM type", - "name": "vmtype", + "description": "used to specify the parameters values for the variables in userdata.", + "length": 255, + "name": "userdatadetails", + "required": false, + "type": "map" + }, + { + "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", + "required": false, + "type": "string" + }, + { + "description": "an optional project for the virtual machine", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + }, + { + "description": "an optional account for the virtual machine. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "the ID of the userdata", + "length": 255, + "name": "userdataid", + "related": "", + "required": false, + "type": "uuid" + } + ], + "related": "migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, + { + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" + }, { "description": "the pool type of the virtual machine", "name": "pooltype", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, - {}, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the memory used by the VM in KiB", + "name": "memorykbs", "type": "long" }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, { "description": "the state of the virtual machine", "name": "state", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" + }, + { + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" + }, + { + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" + }, + { + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" + }, + { + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { @@ -74456,33 +66577,33 @@ "name": "affinitygroup", "response": [ { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "the name of the affinity group", + "name": "name", + "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the project name of the affinity group", + "name": "project", + "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { @@ -74491,116 +66612,264 @@ "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", - "type": "string" + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the type of the affinity group", + "name": "type", "type": "string" } ], "type": "set" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" + }, + { + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" + }, + { + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" + }, + { + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "disk write in MiB", - "name": "diskwrite", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" + }, + { + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" + }, + { + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" + }, + { + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, - {}, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" + }, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, + { + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ { - "description": "the project name of the group", - "name": "project", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the name of the security group", - "name": "name", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + } + ], "type": "set" }, { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the name of the security group", + "name": "name", "type": "string" }, { @@ -74608,66 +66877,71 @@ "name": "tags", "response": [ { - "description": "tag key name", - "name": "key", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" } ], "type": "set" }, { - "description": "the account owning the security group", - "name": "account", + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { @@ -74675,18 +66949,23 @@ "name": "egressrule", "response": [ { - "description": "the code for the ICMP message response", - "name": "icmpcode", + "description": "the starting IP of the security group rule", + "name": "startport", "type": "integer" }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, { "description": "security group name", "name": "securitygroupname", "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" }, { @@ -74698,29 +66977,19 @@ "name": "domainpath", "type": "string" }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, { "description": "the domain associated with the tag", "name": "domain", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -74733,27 +67002,42 @@ "name": "account", "type": "string" }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, { "description": "tag value", "name": "value", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", "type": "string" } ], "type": "set" }, { - "description": "the starting IP of the security group rule", - "name": "startport", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" }, { @@ -74770,236 +67054,700 @@ "description": "the type of the ICMP message response", "name": "icmptype", "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" } ], "type": "set" }, { - "description": "the ID of the security group", - "name": "id", + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" + }, + { + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" + }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" + }, + { + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" + }, + {}, + { + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "the project id of the vm", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", + "type": "string" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "State of the Service from LB rule", + "name": "servicestate", + "type": "string" + }, + { + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" + }, + { + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" + }, + { + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" + }, + { + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + {}, + { + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" + }, + { + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" + }, + { + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" + }, + { + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", + "type": "string" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" + }, + { + "description": "the password (if exists) of the virtual machine", + "name": "password", + "type": "string" + }, + { + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" + }, + { + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, + { + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" + }, + { + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "the project name of the vm", + "name": "project", + "type": "string" + }, + { + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" + }, + { + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" + }, + { + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" + }, + { + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" + }, + { + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", + "type": "string" + }, + { + "description": "User VM type", + "name": "vmtype", + "type": "string" + }, + { + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" + }, + { + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" + }, + { + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", + "type": "string" + }, + { + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - } - ], - "type": "set" + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" }, { - "description": "the description of the security group", - "name": "description", + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" } ], "type": "set" + } + ], + "since": "4.18.0" + }, + { + "description": "Deletes a template from the system. All virtual machines using the deleted template will not be affected.", + "isasync": true, + "name": "deleteTemplate", + "params": [ + { + "description": "the ID of zone of the template", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "Necessary if the template's type is system.", + "length": 255, + "name": "issystem", + "required": false, + "since": "4.20.0", + "type": "boolean" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" + "description": "the ID of the template", + "length": 255, + "name": "id", + "related": "listIsos,registerIso,createTemplate,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" + "description": "Force delete a template.", + "length": 255, + "name": "forced", + "required": false, + "since": "4.9+", + "type": "boolean" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, + {}, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" - }, + } + ] + }, + { + "description": "Lists all network ACLs", + "isasync": false, + "name": "listNetworkACLLists", + "params": [ { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "list network ACLs by VPC ID", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" + "description": "Lists network ACL with the specified ID.", + "length": 255, + "name": "id", + "related": "createNetworkACLList,listNetworkACLLists", + "required": false, + "type": "uuid" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "list network ACLs by specified name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "list network ACLs by network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "createNetworkACLList", + "response": [ + { + "description": "Id of the VPC this ACL is associated with", + "name": "vpcid", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -75007,2759 +67755,2903 @@ "type": "integer" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "Description of the ACL", + "name": "description", "type": "string" }, + {}, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the ID of the ACL", + "name": "id", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "Name of the VPC this ACL is associated with", + "name": "vpcname", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the Name of the ACL", + "name": "name", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" - }, + "description": "is ACL for display to the regular user", + "name": "fordisplay", + "type": "boolean" + } + ] + }, + { + "description": "Archives (moves) a snapshot on primary storage to secondary storage", + "isasync": true, + "name": "archiveSnapshot", + "params": [ { - "description": "disk read in MiB", - "name": "diskread", + "description": "The ID of the snapshot", + "length": 255, + "name": "id", + "related": "copySnapshot,archiveSnapshot,revertSnapshot,listSnapshots", + "required": true, + "type": "uuid" + } + ], + "related": "copySnapshot,revertSnapshot,listSnapshots", + "response": [ + { + "description": "state of the snapshot on the datastore", + "name": "datastorestate", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the domain name of the snapshot's account", + "name": "domain", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the project id of the snapshot", + "name": "projectid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the domain ID of the snapshot's account", + "name": "domainid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "path of the Domain the snapshot's account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "type of the disk volume", + "name": "volumetype", "type": "string" }, - {}, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "valid types are hourly, daily, weekly, monthy, template, and none.", + "name": "intervaltype", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "name": "state", + "type": "state" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, + {}, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the type of the snapshot", + "name": "snapshottype", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "download progress of a snapshot", + "name": "downloaddetails", + "type": "map" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "ID of the snapshot", + "name": "id", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "network write in MiB", - "name": "networkwrite", + "description": "id of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "state of the disk volume", + "name": "volumestate", + "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "id of the os on volume", + "name": "ostypeid", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" + "description": " the date the snapshot was created", + "name": "created", + "type": "date" }, { "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "tag value", - "name": "value", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", "type": "string" } ], "type": "set" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the total disk iops", - "name": "diskiopstotal", - "type": "long" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the account associated with the snapshot", + "name": "account", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "name of the disk volume", + "name": "volumename", + "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "name of the datastore for the snapshot entry", + "name": "datastorename", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "ID of the datastore for the snapshot entry", + "name": "datastoreid", + "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "valid location types are primary and secondary.", + "name": "locationtype", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "physical size of backedup snapshot on image store", + "name": "physicalsize", "type": "long" }, { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" - }, - { - "description": "the name of the virtual machine", + "description": "name of the snapshot", "name": "name", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "type of the datastore for the snapshot entry", + "name": "datastoretype", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" + "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", + "name": "revertable", + "type": "boolean" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "virtual size of backedup snapshot on image store", + "name": "virtualsize", "type": "long" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "display name of the os on volume", + "name": "osdisplayname", + "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the project name of the snapshot", + "name": "project", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } ] }, { - "description": "Lists hosts.", - "isasync": false, - "name": "listHosts", + "description": "Deletes a VPC", + "isasync": true, + "name": "deleteVPC", "params": [ { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "lists hosts existing in particular cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" - }, - { - "description": "if true, list only hosts dedicated to HA", - "length": 255, - "name": "hahost", - "required": false, - "type": "boolean" - }, - { - "description": "the id of the host", + "description": "the ID of the VPC", "length": 255, "name": "id", - "related": "declareHostAsDegraded,listHosts,reconnectHost", - "required": false, - "type": "uuid" - }, - { - "description": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]", - "length": 255, - "name": "outofbandmanagementpowerstate", - "required": false, - "type": "string" - }, - { - "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": true, "type": "uuid" - }, - { - "description": "the host type", - "length": 255, - "name": "type", - "required": false, - "type": "string" - }, + } + ], + "response": [ + {}, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the name of the host", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator", - "length": 255, - "name": "hypervisor", - "required": false, - "type": "string" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "list hosts for which out-of-band management is enabled", - "length": 255, - "name": "outofbandmanagementenabled", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]", - "length": 255, - "name": "resourcestate", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, - { - "description": "the Pod ID for the host", - "length": 255, - "name": "podid", - "related": "listPods,createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, + } + ] + }, + { + "description": "Updates site to site vpn local gateway", + "isasync": true, + "name": "updateVpnGateway", + "params": [ { - "description": "the state of the host", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "state", + "name": "customid", "required": false, + "since": "4.4", "type": "string" }, { - "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]", + "description": "an optional field, whether to the display the vpn to the end user or not", "length": 255, - "name": "details", + "name": "fordisplay", "required": false, - "type": "list" + "since": "4.4", + "type": "boolean" }, { - "description": "the Zone ID for the host", + "description": "id of customer gateway", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, + "name": "id", + "related": "createVpnGateway,listVpnGateways,updateVpnGateway", + "required": true, "type": "uuid" } ], - "related": "declareHostAsDegraded,reconnectHost", + "related": "createVpnGateway,listVpnGateways", "response": [ { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", - "type": "boolean" + "description": "the domain path of the owner", + "name": "domainpath", + "type": "string" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "the vpn gateway ID", + "name": "id", "type": "string" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the host", - "name": "id", + "description": "the project id", + "name": "projectid", "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" + "description": "the public IP address", + "name": "publicip", + "type": "string" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", + "description": "the date and time the host was removed", + "name": "removed", "type": "date" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" - }, - { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" - }, - { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "the domain name of the owner", + "name": "domain", + "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", - "type": "string" + "description": "is vpn gateway for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "CPU Arch of the host", - "name": "arch", + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the host version", - "name": "version", + "description": "the domain id of the owner", + "name": "domainid", "type": "string" }, { - "description": "the name of the host", - "name": "name", + "description": "the vpc name of this gateway", + "name": "vpcname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the vpc id of this gateway", + "name": "vpcid", "type": "string" }, + {} + ], + "since": "4.4" + }, + { + "description": "Releases a dedicated guest vlan range to the system", + "isasync": true, + "name": "releaseDedicatedGuestVlanRange", + "params": [ { - "description": "events available for the host", - "name": "events", - "type": "string" - }, + "description": "the ID of the dedicated guest vlan range", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, { - "description": "the Zone name of the host", - "name": "zonename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the Pod name of the host", - "name": "podname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Deletes security group", + "isasync": false, + "name": "deleteSecurityGroup", + "params": [ + { + "description": "the domain ID of account owning the security group", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" + "description": "the project of the security group", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "the account of the security group. Must be specified with domain ID", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", - "type": "long" + "description": "The ID of the security group. Mutually exclusive with name parameter", + "length": 255, + "name": "id", + "related": "createSecurityGroup", + "required": false, + "type": "uuid" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "The ID of the security group. Mutually exclusive with id parameter", + "length": 255, + "name": "name", + "required": false, "type": "string" - }, + } + ], + "response": [ + {}, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {} + ] + }, + { + "description": "Attempts Migration of a VM to a different host or Root volume of the vm to a different storage pool", + "isasync": true, + "name": "migrateVirtualMachine", + "params": [ { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", - "type": "string" + "description": "the ID of the virtual machine", + "length": 255, + "name": "virtualmachineid", + "related": "migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", - "type": "string" + "description": "Destination Host ID to migrate VM to.", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": false, + "type": "uuid" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", - "type": "string" + "description": "Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": false, + "type": "uuid" }, { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" - }, + "description": "Automatically select a destination host which do not require storage migration, if hostId and storageId are not specified. false by default", + "length": 255, + "name": "autoselect", + "required": false, + "since": "4.16.0", + "type": "boolean" + } + ], + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + {}, { - "description": "the date and time the host was created", + "description": "the date when this virtual machine was created", "name": "created", "type": "date" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", + "description": "the read (IO) of disk on the VM", + "name": "diskioread", "type": "long" }, { - "description": "the cluster name of the host", - "name": "clustername", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" - }, - {}, - { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" - }, - { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" - }, - { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, - {}, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "GPU cards present in the host", - "name": "gpugroupname", + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "the list of enabled vGPUs", - "name": "vgpu", + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", "response": [ { - "description": "Model Name of vGPU", - "name": "vgputype", + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" }, { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" + "description": "security group name", + "name": "securitygroupname", + "type": "string" }, { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" }, { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" }, { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "set" }, { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" + "description": "account owning the security group rule", + "name": "account", + "type": "string" }, { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" } ], - "type": "list" + "type": "set" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "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": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", - "type": "string" - } - ] - }, - { - "description": "Deletes a storage pool.", - "isasync": false, - "name": "deleteStoragePool", - "params": [ - { - "description": "Storage pool id", - "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": true, - "type": "uuid" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "Force destroy storage pool (force expunge volumes in Destroyed state as a part of pool removal)", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" - } - ], - "response": [ - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the state of the virtual machine", + "name": "state", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, - {} - ] - }, - { - "description": "Deletes an existing guest network IPv6 prefix.", - "isasync": true, - "name": "deleteGuestNetworkIpv6Prefix", - "params": [ { - "description": "Id of the guest network IPv6 prefix", - "length": 255, - "name": "id", - "related": "createGuestNetworkIpv6Prefix,listGuestNetworkIpv6Prefixes", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", + "type": "string" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, + {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.17.0.0" - }, - { - "description": "Updates a storage pool.", - "isasync": false, - "name": "updateStoragePool", - "params": [ - { - "description": "false to disable the pool for allocation of new volumes, true to enable it back.", - "length": 255, - "name": "enabled", - "required": false, - "type": "boolean" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "the Id of the storage pool", - "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": true, - "type": "uuid" + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" }, { - "description": "the URL of the storage pool", - "length": 255, - "name": "url", - "required": false, - "since": "4.19.0", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "comma-separated list of tags for the storage pool", - "length": 255, - "name": "tags", - "required": false, - "type": "list" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + } + ], + "type": "set" }, { - "description": "Change the name of the storage pool", - "length": 255, + "description": "the name of the virtual machine", "name": "name", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,updateStoragePool,syncStoragePool,updateStorageCapabilities", - "required": false, - "since": "4.15", "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", - "length": 255, - "name": "capacityiops", - "required": false, - "type": "long" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "bytes CloudStack can provision from this storage pool", - "length": 255, - "name": "capacitybytes", - "required": false, - "type": "long" + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" }, { - "description": "the details for the storage pool", - "length": 255, - "name": "details", - "required": false, - "since": "4.19.0", - "type": "map" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "length": 255, - "name": "istagarule", - "required": false, - "type": "boolean" - } - ], - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "response": [ - { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the scope of the storage pool", - "name": "scope", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, - {}, - { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", - "type": "long" - }, - { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", - "type": "boolean" - }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the storage pool type", - "name": "type", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" }, { - "description": "the Pod name of the storage pool", - "name": "podname", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "Storage provider for this pool", - "name": "provider", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "the Zone name of the storage pool", - "name": "zonename", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the storage pool path", - "name": "path", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", "type": "long" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the name of the storage pool", - "name": "name", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the ID of the storage pool", - "name": "id", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Lists Tungsten-Fabric tags", - "isasync": false, - "name": "listTungstenFabricTag", - "params": [ + }, { - "description": "the uuid of Tungsten-Fabric vm", - "length": 255, - "name": "vmuuid", - "required": false, + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "the uuid of Tungsten-Fabric nic", - "length": 255, - "name": "nicuuid", - "required": false, + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the uuid of Tungsten-Fabric tag", - "length": 255, - "name": "taguuid", - "required": false, + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "the uuid of Tungsten-Fabric application policy set", - "length": 255, - "name": "applicationpolicysetuuid", - "required": false, + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the uuid of Tungsten-Fabric network", - "length": 255, - "name": "networkuuid", - "required": false, + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, + {}, { - "description": "the uuid of Tungsten-Fabric policy", - "length": 255, - "name": "policyuuid", - "required": false, - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" - } - ], - "related": "applyTungstenFabricTag", - "response": [ + }, { - "description": "Tungsten-Fabric tag name", - "name": "name", - "type": "string" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, - {}, { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "list Tungsten-Fabric policy", - "name": "policy", - "type": "list" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, - {}, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "list Tungsten-Fabric vm", - "name": "vm", - "type": "list" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list Tungsten-Fabric nic", - "name": "nic", - "type": "list" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "list Tungsten-Fabric network", - "name": "network", - "type": "list" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" } ] }, { - "description": "Import LDAP users", - "isasync": false, - "name": "importLdapUsers", + "description": "Import an unmanaged volume from a storage pool on a host into CloudStack", + "isasync": true, + "name": "importVolume", "params": [ { - "description": "Creates the account under the specified role.", + "description": "the ID of the disk offering linked to the volume", "length": 255, - "name": "roleid", - "related": "createRole,listRoles,updateRole", + "name": "diskofferingid", + "related": "createDiskOffering,listDiskOfferings", "required": false, "type": "uuid" }, { - "description": "Specifies the domain to which the ldap users are to be imported. If no domain is specified, a domain will created using group parameter. If the group is also not specified, a domain name based on the OU information will be created. If no OU hierarchy exists, will be defaulted to ROOT domain", + "description": "the ID of the storage pool", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": false, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": true, "type": "uuid" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "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": "integer" - }, - { - "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "description": "an optional account for the volume. Must be used with domainId.", "length": 255, - "name": "timezone", + "name": "account", "required": false, "type": "string" }, { - "description": "details for account used to store specific parameters", + "description": "import volume to the domain specified", "length": 255, - "name": "accountdetails", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "List by keyword", + "description": "the name of the volume. If not set, it will be set to the path of the volume.", "length": 255, - "name": "keyword", + "name": "name", "required": false, "type": "string" }, { - "description": "Specifies the group name from which the ldap users are to be imported. If no group is specified, all the users will be imported.", + "description": "import volume for the project", "length": 255, - "name": "group", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.", + "description": "the path of the volume", "length": 255, - "name": "account", - "required": false, + "name": "path", + "required": true, "type": "string" } ], - "related": "searchLdap", + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", "response": [ { - "description": "The user's principle", - "name": "principal", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { - "description": "The user's email", - "name": "email", - "type": "string" + "description": "size of the disk volume", + "name": "size", + "type": "long" + }, + { + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, {}, + {}, { - "description": "The user's domain", - "name": "domain", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "The authentication source for this user as known to the system or empty if the user is not yet in cloudstack.", - "name": "conflictingusersource", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "The user's firstname", - "name": "firstname", + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "The user's lastname", - "name": "lastname", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" + }, + { + "description": "state of the virtual machine", + "name": "vmstate", + "type": "string" + }, + { + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "The user's username", - "name": "username", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" - } - ], - "since": "4.3.0" - }, - { - "description": "Moves a domain and its children to a new parent domain.", - "isasync": false, - "name": "moveDomain", - "params": [ - { - "description": "The ID of the new parent domain of the domain to be moved.", - "length": 255, - "name": "parentdomainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": true, - "type": "uuid" }, { - "description": "The ID of the domain to be moved.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains,moveDomain", - "required": true, - "type": "uuid" - } - ], - "related": "createDomain,listDomains,listDomains", - "response": [ + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" + }, { - "description": "the total secondary storage space (in GiB) the domain can own", - "name": "secondarystoragelimit", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the total number of vpcs available to be created for this domain", - "name": "vpcavailable", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by domain", - "name": "secondarystoragetotal", - "type": "float" + "description": "ID of the disk volume", + "name": "id", + "type": "string" }, { - "description": "the total number of networks owned by domain", - "name": "networktotal", + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", "type": "long" }, { - "description": "the total number of projects available for administration by this domain", - "name": "projectavailable", - "type": "string" + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" }, { - "description": "the total number of projects being administrated by this domain", - "name": "projecttotal", - "type": "long" + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" }, { - "description": "the total volume being used by this domain", - "name": "volumetotal", - "type": "long" + "description": "pod name of the volume", + "name": "podname", + "type": "string" }, { - "description": "the total number of snapshots stored by this domain", - "name": "snapshottotal", + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", "type": "long" }, { - "description": "the total memory (in MB) the domain can own", - "name": "memorylimit", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, { - "description": "the total number of templates available to be created by this domain", - "name": "templateavailable", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "the total number of virtual machines deployed by this domain", - "name": "vmtotal", + "description": "max iops of the disk volume", + "name": "maxiops", "type": "long" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the status of the volume", + "name": "status", + "type": "string" }, { - "description": "the total number of networks available to be created for this domain", - "name": "networkavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the domain", - "name": "id", + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" + }, + { + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, { - "description": "the total number of vpcs owned by domain", - "name": "vpctotal", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "the domain ID of the parent domain", - "name": "parentdomainid", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the total number of snapshots available for this domain", - "name": "snapshotavailable", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "the domain name of the parent domain", - "name": "parentdomainname", + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, { - "description": "the date when this domain was created", + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "the date the disk volume was created", "name": "created", "type": "date" }, { - "description": "the total volume available for this domain", - "name": "volumeavailable", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the total number of templates which can be created by this domain", - "name": "templatelimit", + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" + }, + { + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the path of the domain", - "name": "path", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "the total number of virtual machines available for this domain to acquire", - "name": "vmavailable", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "the total volume which can be used by this domain", - "name": "volumelimit", + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the total number of cpu cores owned by domain", - "name": "cputotal", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "the total number of projects the domain can own", - "name": "projectlimit", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "ID of the availability zone", + "name": "zoneid", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the total number of public ip addresses available for this domain to acquire", - "name": "ipavailable", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, - {}, { - "description": "the total primary storage space (in GiB) available to be used for this domain", - "name": "primarystorageavailable", + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, { - "description": "the total number of templates which have been created by this domain", - "name": "templatetotal", - "type": "long" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "the total number of snapshots which can be stored by this domain", - "name": "snapshotlimit", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "The tagged resource limit and count for the domain", - "name": "taggedresources", - "type": "list" + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" }, { - "description": "the state of the domain", - "name": "state", + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" + }, + { + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this domain", - "name": "iptotal", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", "type": "long" }, { - "description": "the name of the domain", - "name": "name", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total number of public ip addresses this domain can acquire", - "name": "iplimit", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "the total number of vpcs the domain can own", - "name": "vpclimit", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "the total number of networks the domain can own", - "name": "networklimit", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "details for the domain", - "name": "domaindetails", - "type": "map" + "description": "name of the service offering for root disk", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the total memory (in MB) owned by domain", - "name": "memorytotal", - "type": "long" + "description": "the disk utilization", + "name": "utilization", + "type": "string" }, { - "description": "whether the domain has one or more sub-domains", - "name": "haschild", - "type": "boolean" + "description": "name of the disk volume", + "name": "name", + "type": "string" }, { - "description": "the total number of cpu cores available to be created for this domain", - "name": "cpuavailable", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this domain", - "name": "memoryavailable", - "type": "string" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "the total primary storage space (in GiB) owned by domain", - "name": "primarystoragetotal", + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", "type": "long" }, { - "description": "the total primary storage space (in GiB) the domain can own", - "name": "primarystoragelimit", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the level of the domain", - "name": "level", - "type": "integer" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, - {}, { - "description": "the total number of cpu cores the domain can own", - "name": "cpulimit", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this domain", - "name": "secondarystorageavailable", - "type": "string" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the total number of virtual machines that can be deployed by this domain", - "name": "vmlimit", + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" + }, + { + "description": "name of the availability zone", + "name": "zonename", "type": "string" } ], - "since": "4.19.0.0" + "since": "4.19.1" }, { - "description": "Lists all available networks.", - "isasync": false, - "name": "listNetworks", + "description": "Creates a template of a virtual machine. The virtual machine must be in a STOPPED state. A template created from this command is automatically designated as a private template visible to the account that created it.", + "isasync": true, + "name": "createTemplate", "params": [ { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "the ID of the OS Type that best represents the OS of this template.", "length": 255, - "name": "account", - "required": false, - "type": "string" + "name": "ostypeid", + "related": "listOsTypes,addGuestOs", + "required": true, + "type": "uuid" }, { - "description": "type of the traffic", + "description": "true if this template is a featured template, false otherwise", "length": 255, - "name": "traffictype", + "name": "isfeatured", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the ID or VID of the network", - "length": 255, - "name": "vlan", + "description": "Optional, only for baremetal hypervisor. The directory name where template stored on CIFS server", + "length": 2048, + "name": "url", "required": false, - "since": "4.17.0", "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" - }, - { - "description": "list networks by ACL (access control list) type. Supported values are account and domain", - "length": 255, - "name": "acltype", + "description": "The display text of the template, defaults to the 'name'.", + "length": 4096, + "name": "displaytext", "required": false, "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "description": "true if the template supports the sshkey upload feature; default is false", "length": 255, - "name": "displaynetwork", + "name": "sshkeyenabled", "required": false, - "since": "4.4", "type": "boolean" }, { - "description": "list networks available for VM deployment", + "description": "the ID of the disk volume the template is being created from. Either this parameter, or snapshotId has to be passed in", "length": 255, - "name": "canusefordeploy", + "name": "volumeid", + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "flag to display the resource icon for networks", + "description": "the tag for this template.", "length": 255, - "name": "showicon", + "name": "templatetag", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "the network belongs to VPC", + "description": "the name of the template", "length": 255, - "name": "forvpc", - "required": false, - "type": "boolean" + "name": "name", + "required": true, + "type": "string" }, { - "description": "list networks by ID", + "description": "the ID of the snapshot the template is being created from. Either this parameter, or volumeId has to be passed in", "length": 255, - "name": "id", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", + "name": "snapshotid", + "related": "copySnapshot,revertSnapshot,listSnapshots", "required": false, "type": "uuid" }, { - "description": "list networks by network offering ID", + "description": "create template for the project", "length": 255, - "name": "networkofferingid", - "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list networks supporting certain services", - "length": 255, - "name": "supportedservices", - "required": false, - "type": "list" - }, - { - "description": "true if network is system, false otherwise", + "description": "true if the template requires HVM, false otherwise", "length": 255, - "name": "issystem", + "name": "requireshvm", "required": false, "type": "boolean" }, { - "description": "the type of the network. Supported values are: isolated, l2, shared and all", - "length": 255, - "name": "type", - "required": false, - "type": "string" - }, - { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", "length": 255, - "name": "listall", + "name": "isdynamicallyscalable", "required": false, "type": "boolean" }, { - "description": "list networks by restartRequired", + "description": "true if this template is a public template, false otherwise", "length": 255, - "name": "restartrequired", + "name": "ispublic", "required": false, "type": "boolean" }, { - "description": "true if need to list only networks which support specifying IP ranges", + "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", "length": 255, - "name": "specifyipranges", + "name": "details", "required": false, - "type": "boolean" + "type": "map" }, { - "description": "List networks by associated networks. Only available if create a Shared network.", + "description": "an optional accountName. Must be used with domainId.", "length": 255, - "name": "associatednetworkid", - "related": "createNetwork,listNetworks,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", + "name": "account", "required": false, - "since": "4.17.0", - "type": "uuid" + "since": "4.19.0", + "type": "string" }, { - "description": "the zone ID of the network", + "description": "the zone for the template. Can be specified with snapshot only", "length": 255, "name": "zoneid", - "related": "listZones", + "related": "createZone,updateZone,listZones,listZones", "required": false, + "since": "4.19.0", "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "32 or 64 bit", "length": 255, - "name": "isrecursive", + "name": "bits", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "possible values are \"account\", \"domain\", \"accountdomain\",\"shared\", and \"all\". Default value is \"all\".* account : account networks that have been registered for or created by the calling user. * domain : domain networks that have been registered for or created by the calling user. * accountdomain : account and domain networks that have been registered for or created by the calling user. * shared : networks that have been granted to the calling user by another user. * all : all networks (account, domain and shared).", + "description": "Optional, VM ID. If this presents, it is going to create a baremetal template for VM this ID refers to. This is only for VM whose hypervisor type is BareMetal", "length": 255, - "name": "networkfilter", + "name": "virtualmachineid", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "since": "4.17.0", - "type": "string" + "type": "uuid" }, { - "description": "makes the API's response contains only the resource count", + "description": "true if the template supports the password reset feature; default is false", "length": 255, - "name": "retrieveonlyresourcecount", + "name": "passwordenabled", "required": false, "type": "boolean" }, { - "description": "list networks by physical network id", - "length": 255, - "name": "physicalnetworkid", - "related": "listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" - }, - { - "description": "List networks by VPC", + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, + "since": "4.19.0", "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" } ], - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "related to what other network configuration", - "name": "related", - "type": "string" - }, - { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", - "type": "string" - }, - { - "description": "the domain name of the network owner", - "name": "domain", - "type": "string" - }, - { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" - }, - { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" - }, - { - "description": "the date this network was created", - "name": "created", - "type": "date" - }, - { - "description": "the list of resource tags associated with network", - "name": "tags", - "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "list" - }, - {}, - { - "description": "state of the network", - "name": "state", - "type": "string" - }, - { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", - "type": "string" - }, - { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", - "type": "string" - }, - { - "description": "path of the Domain the network belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", - "type": "string" - }, - { - "description": "the first IPv4 DNS for the network", - "name": "dns1", - "type": "string" - }, - { - "description": "the physical network id", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "The IPv4 routing type of network", - "name": "ip4routing", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", - "type": "string" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "zone id of the network", - "name": "zoneid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", + "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": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", - "type": "boolean" + "description": "the project name of the template", + "name": "project", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the id of userdata linked to this template", + "name": "userdataid", + "type": "string" }, { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" }, { - "description": "acl type - access type to the network", - "name": "acltype", + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "the project name of the address", - "name": "project", + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, + {}, { - "description": "ACL name associated with the VPC network", - "name": "aclname", - "type": "string" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the network's gateway", - "name": "gateway", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the size of the template", + "name": "size", + "type": "long" }, { - "description": "the name of the zone the network belongs to", - "name": "zonename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the details of the network", - "name": "details", - "type": "map" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", - "type": "integer" + "description": "the name of userdata linked to this template", + "name": "userdataname", + "type": "string" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "true network requires restart", - "name": "restartrequired", + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", "type": "boolean" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", - "type": "string" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, { - "description": "VPC the network belongs to", - "name": "vpcid", - "type": "string" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", - "type": "string" + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" }, { - "description": "The external id of the network", - "name": "externalid", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "the owner of the network", - "name": "account", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the template display text", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the traffic type of the network", - "name": "traffictype", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "list networks that are persistent", - "name": "ispersistent", - "type": "boolean" - }, - { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the name of the OS type for this template.", + "name": "ostypename", + "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", - "type": "boolean" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "true if network is system, false otherwise", - "name": "issystem", + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", "type": "boolean" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", - "type": "string" - }, - { - "description": "the name of the network", + "description": "the template name", "name": "name", "type": "string" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" - }, - { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the ID of the secondary storage host for the template", + "name": "hostid", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "the status of the template", + "name": "status", + "type": "string" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", "type": "boolean" }, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", - "type": "string" - }, - { - "description": "ACL Id associated with the VPC network", - "name": "aclid", + "description": "path of the Domain the template belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", - "type": "string" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the date this template was created", + "name": "created", + "type": "date" }, { - "description": "the list of services", - "name": "service", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - } - ], - "type": "list" + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" }, { - "description": "the service name", - "name": "name", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" } ], - "type": "list" - }, - { - "description": "the network's netmask", - "name": "netmask", - "type": "string" + "type": "set" }, { - "description": "the id of the network", - "name": "id", - "type": "string" + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" }, { - "description": "the type of the network", - "name": "type", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "the ID of the zone for this template", + "name": "zoneid", "type": "string" } ] }, { - "description": "Releases an IP address from the account.", + "description": "list baremetal rack configuration", "isasync": false, - "name": "releaseIpAddress", + "name": "listBaremetalRct", "params": [ { - "description": "the ID of the public IP address to release", + "description": "", "length": 255, - "name": "id", - "related": "associateIpAddress,reserveIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "name": "page", + "required": false, "type": "integer" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "addBaremetalRct", + "response": [ + { + "description": "url", + "name": "url", "type": "string" }, {}, + { + "description": "id of rct", + "name": "id", + "type": "string" + }, {}, { "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" } - ], - "since": "4.17" + ] }, { - "description": "Updates a management network IP range. Only allowed when no IPs are allocated.", + "description": "Uploads a custom certificate for the console proxy VMs to use for SSL. Can be used to upload a single certificate signed by a known CA. Can also be used, through multiple calls, to upload a chain of certificates from CA to the custom certificate itself.", "isasync": true, - "name": "updatePodManagementNetworkIpRange", + "name": "uploadCustomCertificate", "params": [ { - "description": "UUID of POD, where the IP range belongs to.", + "description": "A name / alias for the certificate.", "length": 255, - "name": "podid", - "related": "listPods,createManagementNetworkIpRange", - "required": true, - "type": "uuid" + "name": "name", + "required": false, + "type": "string" }, { - "description": "The current ending IP address.", - "length": 255, - "name": "currentendip", - "related": "listPods,createManagementNetworkIpRange", - "required": true, + "description": "The private key for the attached certificate.", + "length": 65535, + "name": "privatekey", + "required": false, "type": "string" }, { - "description": "The new ending IP address.", + "description": "An integer providing the location in a chain that the certificate will hold. Usually, this can be left empty. When creating a chain, the top level certificate should have an ID of 1, with each step in the chain incrementing by one. Example, CA with id = 1, Intermediate CA with id = 2, Site certificate with ID = 3", "length": 255, - "name": "newendip", + "name": "id", "required": false, - "type": "string" + "type": "integer" }, { - "description": "The current starting IP address.", + "description": "DNS domain suffix that the certificate is granted for.", "length": 255, - "name": "currentstartip", - "related": "listPods,createManagementNetworkIpRange", + "name": "domainsuffix", "required": true, "type": "string" }, { - "description": "The new starting IP address.", - "length": 255, - "name": "newstartip", - "required": false, + "description": "The certificate to be uploaded.", + "length": 65535, + "name": "certificate", + "required": true, "type": "string" } ], + "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", + "description": "message of the certificate upload operation", + "name": "message", "type": "string" }, {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, - {} - ], - "since": "4.16.0.0" + } + ] }, { - "description": "Updates firewall rule ", - "isasync": true, - "name": "updateFirewallRule", + "description": "Lists dedicated clusters.", + "isasync": false, + "name": "listDedicatedClusters", "params": [ { - "description": "an optional field, whether to the display the rule to the end user or not", + "description": "the name of the account associated with the cluster. Must be used with domainId.", "length": 255, - "name": "fordisplay", + "name": "account", "required": false, - "since": "4.4", - "type": "boolean" + "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "", "length": 255, - "name": "customid", + "name": "pagesize", "required": false, - "since": "4.4", - "type": "string" + "type": "integer" }, { - "description": "the ID of the firewall rule", + "description": "the ID of the domain associated with the cluster", "length": 255, - "name": "id", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": true, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, "type": "uuid" - } - ], - "related": "createFirewallRule,listFirewallRules,updateEgressFirewallRule", - "response": [ - { - "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", - "name": "destcidrlist", - "type": "string" }, { - "description": "the public ip address for the firewall rule", - "name": "ipaddress", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, - {}, - { - "description": "the starting port of firewall rule's port range", - "name": "startport", - "type": "integer" - }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" + "description": "the ID of the cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": false, + "type": "uuid" }, { - "description": "error code for this icmp message", - "name": "icmpcode", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, + "description": "list dedicated clusters by affinity group", + "length": 255, + "name": "affinitygroupid", + "related": "", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "list" + "description": "the ID of the dedicated resource", + "name": "id", + "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the name of the cluster", + "name": "clustername", + "type": "string" }, { - "description": "the traffic type for the firewall rule", - "name": "traffictype", + "description": "the Account ID of the cluster", + "name": "accountid", "type": "string" }, { - "description": "the public ip address id for the firewall rule", - "name": "ipaddressid", + "description": "the Dedication Affinity Group ID of the cluster", + "name": "affinitygroupid", "type": "string" }, { - "description": "the ending port of firewall rule's port range", - "name": "endport", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the network id of the firewall rule", - "name": "networkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the firewall rule", - "name": "id", + "description": "the ID of the cluster", + "name": "clusterid", "type": "string" }, { - "description": "the protocol of the firewall rule", - "name": "protocol", + "description": "the domain ID of the cluster", + "name": "domainid", "type": "string" }, {}, + {} + ] + }, + { + "description": "Lists available certificate authority providers in CloudStack", + "isasync": false, + "name": "listCAProviders", + "params": [ { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the state of the rule", - "name": "state", + "description": "List CA service provider by name", + "length": 255, + "name": "name", + "required": false, "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" } ], - "since": "4.4" - }, - { - "description": "Return true if the plugin is enabled", - "isasync": false, - "name": "quotaIsEnabled", - "params": [], "related": "", "response": [ { - "description": "is quota service enabled", - "name": "isenabled", - "type": "boolean" + "description": "the description of the CA service provider", + "name": "description", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, {}, { @@ -77768,229 +70660,365 @@ "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the CA service provider name", + "name": "name", "type": "string" }, {} ], - "since": "4.7.0" + "since": "4.11.0" }, { - "description": "Deletes the registered OAuth provider", - "isasync": false, - "name": "deleteOauthProvider", + "description": "Delete site to site vpn customer gateway", + "isasync": true, + "name": "deleteVpnCustomerGateway", "params": [ { - "description": "id of the OAuth provider to be deleted", + "description": "id of customer gateway", "length": 255, "name": "id", - "related": "", + "related": "createVpnCustomerGateway,listVpnCustomerGateways", "required": true, "type": "uuid" } ], "response": [ - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, { "description": "any text associated with the success or failure", "name": "displaytext", "type": "string" }, - {}, { "description": "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" - } - ], - "since": "4.19.0" + }, + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {} + ] }, { - "description": "Creates a Bgp Peer for a zone.", - "isasync": true, - "name": "createBgpPeer", + "description": "Lists all port forwarding rules for an IP address.", + "isasync": false, + "name": "listPortForwardingRules", "params": [ { - "description": "UUID of the zone which the Bgp Peer belongs to.", + "description": "", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "list port forwarding rules for certain network", + "length": 255, + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "since": "4.3", "type": "uuid" }, { - "description": "project who will own the Bgp Peer", + "description": "the ID of IP address of the port forwarding services", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "ipaddressid", + "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", "required": false, "type": "uuid" }, { - "description": "The password of the Bgp Peer.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "password", + "name": "account", "required": false, "type": "string" }, { - "description": "The IPv6 address of the Bgp Peer.", + "description": "", "length": 255, - "name": "ip6address", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "BGP peer details in key/value pairs.", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "details", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "domain ID of the account owning the Bgp Peer", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "list only resources belonging to the domain specified", "length": 255, "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" }, { - "description": "The IPv4 address of the Bgp Peer.", + "description": "Lists rule with the specified ID.", "length": 255, - "name": "ipaddress", + "name": "id", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule,listPortForwardingRules,updatePortForwardingRule", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "The AS number of the Bgp Peer.", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "asnumber", - "required": true, - "type": "long" + "name": "tags", + "required": false, + "type": "map" }, { - "description": "account who will own the Bgp Peer", + "description": "List by keyword", "length": 255, - "name": "account", + "name": "keyword", "required": false, "type": "string" } ], - "related": "listBgpPeers,dedicateBgpPeer,releaseBgpPeer", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule,updatePortForwardingRule", "response": [ - {}, { - "description": "password of bgp peer", - "name": "password", + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", "type": "string" }, { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", + "type": "string" }, { - "description": "AS number of bgp peer", - "name": "asnumber", - "type": "long" + "description": "the ID of the port forwarding rule", + "name": "id", + "type": "string" }, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the account of the bgp peer", - "name": "account", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" }, { - "description": "the project id of the bgp peer", - "name": "projectid", + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, + {}, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - {}, { - "description": "id of the bgp peer", - "name": "id", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" }, { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" }, { - "description": "the project name of the bgp peer", - "name": "project", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, { - "description": "the domain ID of the bgp peer", - "name": "domainid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the domain name of the bgp peer", - "name": "domain", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" }, { - "description": "date when this bgp peer was created.", - "name": "created", - "type": "date" + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", + "type": "string" } - ], - "since": "4.20.0" + ] }, { - "description": "List hypervisors", + "description": "Allocates IP addresses in respective Pod of a Zone", "isasync": false, - "name": "listHypervisors", + "name": "acquirePodIpAddress", "params": [ { - "description": "the zone id for listing hypervisors.", + "description": "Pod ID", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "podid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "uuid" + "type": "string" + }, + { + "description": "the ID of the zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "string" } ], "related": "", "response": [ + { + "description": "Gateway for Pod ", + "name": "gateway", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "nicid", + "type": "long" + }, + { + "description": "CIDR of the Pod", + "name": "cidr", + "type": "string" + }, + { + "description": "the ID of the pod the IP address", + "name": "id", + "type": "long" + }, + { + "description": "the ID of the pod the IP address belongs to", + "name": "podid", + "type": "long" + }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -78003,1352 +71031,1574 @@ "type": "string" }, { - "description": "Hypervisor name", - "name": "name", + "description": "Allocated IP address", + "name": "ipaddress", "type": "string" }, - {} + { + "description": "MAC address of the pod the IP", + "name": "hostmac", + "type": "long" + } ] }, { - "description": "Dedicates an existing Bgp Peer to an account or a domain.", + "description": "Enables out-of-band management for a cluster", "isasync": true, - "name": "dedicateBgpPeer", + "name": "enableOutOfBandManagementForCluster", "params": [ { - "description": "domain ID of the account owning the Bgp Peer", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "account who will own the Bgp Peer", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "Id of the Bgp Peer", + "description": "the ID of the cluster", "length": 255, - "name": "id", - "related": "listBgpPeers,dedicateBgpPeer,releaseBgpPeer", + "name": "clusterid", + "related": "addCluster,updateCluster", "required": true, "type": "uuid" - }, - { - "description": "project who will own the Bgp Peer", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" } ], - "related": "listBgpPeers,releaseBgpPeer", + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForHost,disableOutOfBandManagementForCluster", "response": [ { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" - }, - { - "description": "AS number of bgp peer", - "name": "asnumber", - "type": "long" - }, - { - "description": "date when this bgp peer was created.", - "name": "created", - "type": "date" + "description": "the out-of-band management interface password", + "name": "password", + "type": "string" }, { - "description": "the domain name of the bgp peer", - "name": "domain", + "description": "the out-of-band management interface address", + "name": "address", "type": "string" }, { - "description": "the account of the bgp peer", - "name": "account", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "the project name of the bgp peer", - "name": "project", + "description": "the out-of-band management action (if issued)", + "name": "action", "type": "string" }, { - "description": "password of bgp peer", - "name": "password", + "description": "the out-of-band management interface username", + "name": "username", "type": "string" }, { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", - "type": "string" + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" }, { - "description": "the domain ID of the bgp peer", - "name": "domainid", + "description": "the out-of-band management interface port", + "name": "port", "type": "string" }, { - "description": "the project id of the bgp peer", - "name": "projectid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", + "description": "the out-of-band management driver for the host", + "name": "driver", "type": "string" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", + "description": "the operation result description", + "name": "description", "type": "string" }, - {}, { - "description": "id of the bgp peer", - "name": "id", - "type": "string" + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" }, { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", - "type": "string" + "description": "the operation result", + "name": "status", + "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" } ], - "since": "4.20.0" + "since": "4.9.0" }, { - "description": "Lists hosts metrics", + "description": "Updates a template visibility permissions. A public template is visible to all accounts within the same domain. A private template is visible only to the owner of the template. A privileged template is a private template with account permissions added. Only accounts specified under the template permissions are visible to them.", "isasync": false, - "name": "listHostsMetrics", + "name": "updateTemplatePermissions", "params": [ { - "description": "if true, list only hosts dedicated to HA", + "description": "permission operator (add, remove, reset)", "length": 255, - "name": "hahost", + "name": "op", + "required": false, + "type": "string" + }, + { + "description": "true for featured template/iso, false otherwise", + "length": 255, + "name": "isfeatured", "required": false, "type": "boolean" }, { - "description": "the state of the host", + "description": "true for public template/iso, false for private templates/isos", "length": 255, - "name": "state", + "name": "ispublic", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]", + "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.", "length": 255, - "name": "details", + "name": "projectids", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "list" }, { - "description": "lists hosts existing in particular cluster", + "description": "the template ID", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, + "name": "id", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, "type": "uuid" }, { - "description": "", + "description": "a comma delimited list of accounts within caller's domain. If specified, \"op\" parameter has to be passed in.", "length": 255, - "name": "page", + "name": "accounts", "required": false, - "type": "integer" + "type": "list" }, { - "description": "the host type", + "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin", "length": 255, - "name": "type", + "name": "isextractable", "required": false, + "type": "boolean" + } + ], + "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": "list hosts by its out-of-band management interface's power state. Its value can be one of [On, Off, Unknown]", - "length": 255, - "name": "outofbandmanagementpowerstate", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {} + ] + }, + { + "description": "List traffic monitor Hosts.", + "isasync": false, + "name": "listTrafficMonitors", + "params": [ { - "description": "List by keyword", + "description": "zone Id", "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "the id of the host", + "description": "", "length": 255, - "name": "id", - "related": "declareHostAsDegraded,reconnectHost", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "list hosts for which out-of-band management is enabled", + "description": "List by keyword", "length": 255, - "name": "outofbandmanagementenabled", + "name": "keyword", "required": false, - "type": "boolean" - }, + "type": "string" + } + ], + "related": "addTrafficMonitor", + "response": [ { - "description": "the name of the host", - "length": 255, - "name": "name", - "required": false, + "description": "the zone ID of the external firewall", + "name": "zoneid", "type": "string" }, { - "description": "the Zone ID for the host", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the Pod ID for the host", - "length": 255, - "name": "podid", - "related": "listPods,createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "the ID of the external firewall", + "name": "id", + "type": "string" }, { - "description": "list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]", - "length": 255, - "name": "resourcestate", - "required": false, + "description": "the timeout (in seconds) for requests to the external firewall", + "name": "timeout", "type": "string" }, + {}, { - "description": "lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm to host this VM", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "description": "the number of times to retry requests to the external firewall", + "name": "numretries", + "type": "string" }, + {}, { - "description": "hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator", - "length": 255, - "name": "hypervisor", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the management IP address of the external firewall", + "name": "ipaddress", "type": "string" } + ] + }, + { + "description": "Releases an existing dedicated Bgp Peer.", + "isasync": true, + "name": "releaseBgpPeer", + "params": [ + { + "description": "Id of the Bgp Peer", + "length": 255, + "name": "id", + "related": "updateBgpPeer,releaseBgpPeer", + "required": true, + "type": "uuid" + } ], - "related": "", + "related": "updateBgpPeer", "response": [ { - "description": "cpu usage notification threshold exceeded", - "name": "cputhreshold", - "type": "boolean" - }, - { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", "type": "string" }, { - "description": "out-of-band management power state", - "name": "powerstate", - "type": "powerstate" + "description": "the account of the bgp peer", + "name": "account", + "type": "string" }, {}, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "AS number of bgp peer", + "name": "asnumber", + "type": "long" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "IPv4 address of bgp peer", + "name": "ipaddress", "type": "string" }, { - "description": "the total memory allocated in GiB", - "name": "memoryallocatedgb", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the host version", - "name": "version", + "description": "IPv6 address of bgp peer", + "name": "ip6address", "type": "string" }, { - "description": "memory usage notification threshold exceeded", - "name": "memorythreshold", - "type": "boolean" + "description": "password of bgp peer", + "name": "password", + "type": "string" }, { - "description": "the Zone name of the host", - "name": "zonename", + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" + "description": "name of zone to which the bgp peer belongs to.", + "name": "zonename", + "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "the project name of the bgp peer", + "name": "project", "type": "string" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" + "description": "date when this bgp peer was created.", + "name": "created", + "type": "date" }, { - "description": "network read in GiB", - "name": "networkread", + "description": "the domain name of the bgp peer", + "name": "domain", "type": "string" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "the domain ID of the bgp peer", + "name": "domainid", "type": "string" }, { - "description": "memory allocated disable threshold exceeded", - "name": "memoryallocateddisablethreshold", - "type": "boolean" + "description": "id of the bgp peer", + "name": "id", + "type": "string" + } + ], + "since": "4.20.0" + }, + { + "description": "Resets the password for virtual machine. The virtual machine must be in a \"Stopped\" state and the template must already support this feature for this command to take effect. [async]", + "isasync": true, + "name": "resetPasswordForVirtualMachine", + "params": [ + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "The new password of the virtual machine. If null, a random password will be generated for the VM.", + "length": 255, + "name": "password", + "required": false, + "since": "4.19.0", + "type": "string" + } + ], + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" }, { - "description": "the admin that annotated this host", + "description": "the user's name who deployed the virtual machine", "name": "username", "type": "string" }, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", + "type": "string" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the total cpu allocated in Ghz", - "name": "cpuallocatedghz", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + } + ], + "type": "set" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "memory allocated notification threshold exceeded", - "name": "memoryallocatedthreshold", - "type": "boolean" - }, - { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" }, { - "description": "cpu usage disable threshold exceeded", - "name": "cpudisablethreshold", - "type": "boolean" + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "system vm instances on the host", - "name": "systeminstances", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, + {}, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the total cpu used in Ghz", - "name": "cpuusedghz", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the total memory used in GiB", - "name": "memoryusedgb", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the IP address of the host", - "name": "ipaddress", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "CPU Arch of the host", - "name": "arch", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", - "type": "boolean" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, - {}, { - "description": "the name of the host", - "name": "name", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" + "description": "the state of the virtual machine", + "name": "state", + "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" + "description": "the name of the virtual machine", + "name": "name", + "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", - "type": "long" + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" }, { - "description": "memory usage disable threshold exceeded", - "name": "memorydisablethreshold", - "type": "boolean" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "set" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" + }, + { + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "the list of enabled vGPUs", - "name": "vgpu", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" + "description": "tag value", + "name": "value", + "type": "string" }, { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" + "description": "id of the resource", + "name": "resourceid", + "type": "string" }, { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" + "description": "customer associated with the tag", + "name": "customer", + "type": "string" }, { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" }, { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" }, { - "description": "Model Name of vGPU", - "name": "vgputype", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "GPU cards present in the host", - "name": "gpugroupname", + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", "type": "string" } ], - "type": "list" - }, - { - "description": "instances on the host", - "name": "instances", - "type": "string" - }, - { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" - }, - { - "description": "the Pod name of the host", - "name": "podname", - "type": "string" + "type": "set" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "cpu allocated disable threshold exceeded", - "name": "cpuallocateddisablethreshold", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", + "description": "the read (IO) of disk on the VM", + "name": "diskioread", "type": "long" }, { - "description": "events available for the host", - "name": "events", - "type": "string" - }, - { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "cpu allocated notification threshold exceeded", - "name": "cpuallocatedthreshold", - "type": "boolean" - }, - { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", - "type": "string" - }, - { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" - }, - { - "description": "network write in GiB", - "name": "networkwrite", - "type": "string" - }, - { - "description": "the date and time the host was created", - "name": "created", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", "type": "date" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" - }, - { - "description": "the ID of the host", - "name": "id", - "type": "string" - }, - { - "description": "the management server ID of the host", - "name": "managementserverid", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the cluster name of the host", - "name": "clustername", - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the total memory capacity in GiB", - "name": "memorytotalgb", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, + {}, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the average cpu load the last minute", - "name": "cpuloadaverage", - "type": "double" - }, - { - "description": "the OS category ID of the host", - "name": "oscategoryid", - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", - "type": "string" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + } + ], + "type": "set" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, + {}, { - "description": "the total cpu capacity in Ghz", - "name": "cputotalghz", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", "type": "long" - } - ], - "since": "4.9.3" - }, - { - "description": "Release the dedication for the pod", - "isasync": true, - "name": "releaseDedicatedPod", - "params": [ - { - "description": "the ID of the Pod", - "length": 255, - "name": "podid", - "related": "listPods,createManagementNetworkIpRange", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "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", + "description": "the memory allocated for the virtual machine", + "name": "memory", "type": "integer" }, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Lists affinity groups", - "isasync": false, - "name": "listAffinityGroups", - "params": [ - { - "description": "lists affinity groups by type", - "length": 255, - "name": "type", - "required": false, - "type": "string" - }, - { - "description": "lists affinity groups by virtual machine ID", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" - }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "lists affinity groups by name", - "length": 255, - "name": "name", - "required": false, + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "list the affinity group by the ID provided", - "length": 255, - "name": "id", - "related": "createAffinityGroup,listAffinityGroups", - "required": false, - "type": "uuid" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, + "description": "the project id of the vm", "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "createAffinityGroup", - "response": [ - { - "description": "the ID of the affinity group", - "name": "id", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, - {}, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", - "type": "string" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" }, - {}, { - "description": "the domain ID of the affinity group", + "description": "the ID of the domain in which the virtual machine exists", "name": "domainid", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Cancels a triggered shutdown", - "isasync": false, - "name": "cancelShutdown", - "params": [ - { - "description": "the uuid of the management server", - "length": 255, - "name": "managementserverid", - "related": "listManagementServers", - "required": true, - "type": "uuid" - } - ], - "related": "prepareForShutdown,readyForShutdown", - "response": [ - { - "description": "The id of the management server", - "name": "managementserverid", - "type": "long" - }, - {}, - {}, - { - "description": "The number of jobs in progress", - "name": "pendingjobscount", - "type": "long" - }, - { - "description": "Indicates whether CloudStack is ready to shutdown", - "name": "readyforshutdown", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "Indicates whether a shutdown has been triggered", - "name": "shutdowntriggered", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Register a public key in a keypair under a certain name", - "isasync": false, - "name": "registerSSHKeyPair", - "params": [ - { - "description": "an optional domainId for the ssh key. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "Name of the keypair", - "length": 255, - "name": "name", - "required": true, + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "Public key material of the keypair", - "length": 5120, - "name": "publickey", - "required": true, + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "an optional project for the ssh key", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "an optional account for the ssh key. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - } - ], - "related": "listSSHKeyPairs", - "response": [ - { - "description": "the domain name of the keypair owner", - "name": "domain", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "ID of the ssh keypair", - "name": "id", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the owner of the keypair", - "name": "account", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "Fingerprint of the public key", - "name": "fingerprint", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "Name of the keypair", - "name": "name", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the project name of the keypair owner", - "name": "project", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the project id of the keypair owner", - "name": "projectid", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the domain id of the keypair owner", - "name": "domainid", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" - }, - {} + } ] }, { - "description": "Reserve a public IP to an account.", - "isasync": false, - "name": "reserveIpAddress", + "description": "Updates a port forwarding rule. Only the private port and the virtual machine can be updated.", + "isasync": true, + "name": "updatePortForwardingRule", "params": [ { - "description": "the account to reserve with this IP address", + "description": "an optional field, whether to the display the rule to the end user or not", "length": 255, - "name": "account", + "name": "fordisplay", "required": false, - "type": "string" + "since": "4.4", + "type": "boolean" }, { - "description": "the ID of the domain to reserve with this IP address", + "description": "the private end port of the port forwarding rule", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "privateendport", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the ID of the public IP address to reserve", + "description": "the private start port of the port forwarding rule", "length": 255, - "name": "id", - "related": "associateIpAddress,reserveIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" + "name": "privateport", + "required": false, + "type": "integer" }, { - "description": "an optional field, whether to the display the IP to the end user or not", + "description": "VM guest nic Secondary ip address for the port forwarding rule", "length": 255, - "name": "fordisplay", + "name": "vmguestip", "required": false, - "type": "boolean" + "since": "4.5", + "type": "string" }, { - "description": "the ID of the project to reserve with this IP address", + "description": "the ID of the virtual machine for the port forwarding rule", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "virtualmachineid", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, "type": "uuid" - } - ], - "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "response": [ - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - {}, - { - "description": "the ID of the Network associated with the IP address", - "name": "associatednetworkid", - "type": "string" - }, - { - "description": "VPC name the ip belongs to", - "name": "vpcname", - "type": "string" - }, - { - "description": "VPC id the ip belongs to", - "name": "vpcid", - "type": "string" - }, - { - "description": "is public IP portable across the zones", - "name": "isportable", - "type": "boolean" - }, - {}, - { - "description": "true if range is dedicated for System VMs", - "name": "forsystemvms", - "type": "boolean" - }, - { - "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", - "name": "vlanid", - "type": "string" - }, - { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the virtual network for the IP address", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", - "name": "purpose", - "type": "string" - }, - { - "description": "virtual machine name the ip address is assigned to", - "name": "virtualmachinename", - "type": "string" - }, - { - "description": "the project name of the address", - "name": "project", - "type": "string" - }, - { - "description": "the domain the public IP address is associated with", - "name": "domain", - "type": "string" - }, - { - "description": "the VLAN associated with the IP address", - "name": "vlanname", - "type": "string" - }, - { - "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", - "name": "virtualmachinedisplayname", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the ID of the zone the public IP address belongs to", - "name": "zoneid", - "type": "string" - }, - { - "description": "the name of the Network where ip belongs to", - "name": "networkname", - "type": "string" - }, - { - "description": "date the public IP address was acquired", - "name": "allocated", - "type": "date" - }, - { - "description": "true if this ip is for static nat, false otherwise", - "name": "isstaticnat", - "type": "boolean" - }, - { - "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", - "name": "hasrules", - "type": "boolean" - }, - { - "description": "the name of the Network associated with the IP address", - "name": "associatednetworkname", - "type": "string" - }, - { - "description": "true if the IP address is a source nat address, false otherwise", - "name": "issourcenat", - "type": "boolean" - }, - { - "description": "the domain ID the public IP address is associated with", - "name": "domainid", - "type": "string" - }, - { - "description": "the ID of the Network where ip belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" }, { - "description": "public IP address", - "name": "ipaddress", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "the name of the zone the public IP address belongs to", - "name": "zonename", - "type": "string" - }, + "description": "the ID of the port forwarding rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule,updatePortForwardingRule", + "required": true, + "since": "4.4", + "type": "uuid" + } + ], + "related": "createRoutingFirewallRule,updateIpv6FirewallRule", + "response": [ { - "description": "the list of resource tags associated with ip address", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -79357,13 +72607,13 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -79372,100 +72622,47 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], "type": "list" }, { - "description": "is public ip for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the account the public IP address is associated with", - "name": "account", - "type": "string" - }, - { - "description": "public IP address id", - "name": "id", - "type": "string" - }, - { - "description": "virtual machine id the ip address is assigned to", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", - "name": "vmipaddress", - "type": "string" - }, - { - "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", - "name": "issystem", - "type": "boolean" - }, - { - "description": "path of the domain to which the public IP address belongs", - "name": "domainpath", + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", "type": "string" }, { - "description": "virtual machine type the ip address is assigned to", - "name": "virtualmachinetype", + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", "type": "string" }, { - "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", - "name": "state", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" - } - ], - "since": "4.17" - }, - { - "description": "Delete one or more events.", - "isasync": false, - "name": "deleteEvents", - "params": [ - { - "description": "start date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, - "type": "date" }, + {}, { - "description": "end date range to delete events (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the IDs of the events", - "length": 255, - "name": "ids", - "related": "", - "required": false, - "type": "list" + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", + "type": "string" }, { - "description": "delete by event type", - "length": 255, - "name": "type", - "required": false, + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, { @@ -79474,97 +72671,76 @@ "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the port forwarding rule", + "name": "id", + "type": "string" }, - {}, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ] - }, - { - "description": "Deletes an ISO file.", - "isasync": true, - "name": "deleteIso", - "params": [ + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", + "type": "string" + }, { - "description": "the ID of the ISO file", - "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "the protocol of the port forwarding rule", + "name": "protocol", + "type": "string" }, { - "description": "the ID of the zone of the ISO file. If not specified, the ISO will be deleted from all the zones", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" - } - ], - "response": [ + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", + "type": "string" + }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the state of the rule", + "name": "state", + "type": "string" + }, + { + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", + "type": "string" }, - {}, { "description": "the 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", + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", + "type": "string" + }, + {}, + { + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" } ] }, { - "description": "Lists VPC offerings", + "description": "Lists Brocade VCS Switches", "isasync": false, - "name": "listVPCOfferings", + "name": "listBrocadeVcsDevices", "params": [ { - "description": "list VPC offerings by name", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "list VPC offerings by display text", - "length": 255, - "name": "displaytext", - "required": false, - "type": "string" - }, - { - "description": "true if need to list only default VPC offerings. Default value is false", + "description": "Brocade VCS switch ID", "length": 255, - "name": "isdefault", + "name": "vcsdeviceid", + "related": "listBrocadeVcsDevices", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "list VPC offerings by id", + "description": "the Physical Network ID", "length": 255, - "name": "id", - "related": "updateVPCOffering,listVPCOfferings", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": false, "type": "uuid" }, @@ -79582,38 +72758,6 @@ "required": false, "type": "string" }, - { - "description": "list VPC offerings by state", - "length": 255, - "name": "state", - "required": false, - "type": "string" - }, - { - "description": "list VPC offerings supporting certain services", - "length": 255, - "name": "supportedservices", - "required": false, - "type": "list" - }, - { - "description": "id of zone VPC offering is associated with", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "since": "4.13", - "type": "uuid" - }, - { - "description": "list VPC offerings available for VPC creation in specific domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "since": "4.18", - "type": "uuid" - }, { "description": "", "length": 255, @@ -79622,413 +72766,383 @@ "type": "integer" } ], - "related": "updateVPCOffering", + "related": "", "response": [ { - "description": "the date this vpc offering was created", - "name": "created", - "type": "date" + "description": "the physical Network to which this Brocade VCS belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "device name", + "name": "brocadedevicename", "type": "string" }, { - "description": "the internet protocol of the vpc offering", - "name": "internetprotocol", + "description": "device id of the Brocade Vcs", + "name": "vcsdeviceid", "type": "string" }, { - "description": "true if vpc offering is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "name of the provider", + "name": "provider", + "type": "string" + }, + { + "description": "the principal switch Ip address", + "name": "hostname", + "type": "string" }, {}, + {}, + { + "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": "link an existing cloudstack domain to group or OU in ldap", + "isasync": false, + "name": "linkDomainToLdap", + "params": [ + { + "description": "name of the group or OU in LDAP", + "length": 255, + "name": "ldapdomain", + "required": false, + "type": "string" }, { - "description": "indicated if the offering can support region level vpc", - "name": "supportsregionLevelvpc", - "type": "boolean" + "description": "The id of the domain which has to be linked to LDAP.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": true, + "type": "uuid" }, { - "description": "an alternate display text of the vpc offering.", - "name": "displaytext", + "description": "domain admin username in LDAP ", + "length": 255, + "name": "admin", + "required": false, "type": "string" }, { - "description": "state of the vpc offering. Can be Disabled/Enabled", - "name": "state", + "description": "type of the ldap name. GROUP or OU", + "length": 255, + "name": "type", + "required": true, "type": "string" }, { - "description": "true if vpc offering can be used by NSX networks only", - "name": "fornsx", - "type": "boolean" + "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin", + "length": 255, + "name": "accounttype", + "required": true, + "type": "integer" }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "name of the group or OU in LDAP", + "length": 255, + "name": "name", + "required": false, "type": "string" - }, + } + ], + "related": "linkAccountToLdap", + "response": [ { - "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 current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "the list of supported services", - "name": "service", - "response": [ - { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the service name", - "name": "name", - "type": "string" - } - ], - "type": "list" + "description": "Type of the account to auto import", + "name": "accounttype", + "type": "int" }, { - "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", - "name": "networkmode", + "description": "name of the group or OU in LDAP which is linked to the domain", + "name": "name", "type": "string" }, { - "description": "the routing mode for the network offering, supported types are Static or Dynamic.", - "name": "routingmode", + "description": "type of the name in LDAP which is linked to the domain", + "name": "type", "type": "string" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "id of the Domain which is linked to LDAP", + "name": "domainid", "type": "string" }, { - "description": "the id of the vpc offering", - "name": "id", + "description": "Domain Admin accountId that is created", + "name": "accountid", "type": "string" }, { - "description": "the name of the vpc offering", - "name": "name", + "description": "name of the group or OU in LDAP which is linked to the domain", + "name": "ldapdomain", "type": "string" }, - { - "description": " indicates if the vpc offering supports distributed router for one-hop forwarding", - "name": "distributedvpcrouter", - "type": "boolean" - }, - { - "description": "true if network offering supports choosing AS numbers", - "name": "specifyasnumber", - "type": "boolean" - }, - { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", - "type": "string" - } - ] - }, - { - "description": "Get the SF volume size including Hypervisor Snapshot Reserve", - "isasync": false, - "name": "getSolidFireVolumeSize", - "params": [ - { - "description": "Volume UUID", - "length": 255, - "name": "volumeid", - "required": true, - "type": "string" - } - ], - "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": "SolidFire Volume Size Including Hypervisor Snapshot Reserve", - "name": "solidFireVolumeSize", - "type": "long" - } - ] + {} + ], + "since": "4.6.0" }, { - "description": "Uploads a data disk.", + "description": "Acquires and associates a public IP to an account.", "isasync": true, - "name": "uploadVolume", + "name": "associateIpAddress", "params": [ { - "description": "the name of the volume", + "description": "region ID from where portable IP is to be associated.", "length": 255, - "name": "name", - "required": true, - "type": "string" + "name": "regionid", + "related": "addRegion,listRegions", + "required": false, + "type": "integer" }, { - "description": "the ID of the zone the volume is to be hosted on", + "description": "the account to associate with this IP address", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "name": "account", + "required": false, + "type": "string" }, { - "description": "the ID of the disk offering. This must be a custom sized offering since during uploadVolume volume size is unknown.", + "description": "IP Address to be associated", "length": 255, - "name": "diskofferingid", - "related": "", + "name": "ipaddress", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "Upload volume for the project", + "description": "Deploy VM for the project", "length": 255, "name": "projectid", - "related": "createProject", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "the URL of where the volume is hosted. Possible URL include http:// and https://", - "length": 2048, - "name": "url", - "required": true, - "type": "string" + "description": "the ID of the availability zone you want to acquire an public IP address from", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "an optional domainId. If the account parameter is used, domainId must also be used. If account is NOT provided then volume will be assigned to the caller account and domain.", + "description": "the ID of the domain to associate with this IP address", "length": 255, "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" }, { - "description": "the format for the volume. Possible values include QCOW2, OVA, and VHD.", + "description": "The network this IP address should be associated to.", "length": 255, - "name": "format", - "required": true, - "type": "string" + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "an optional accountName. Must be used with domainId.", + "description": "should be set to true if public IP is required to be transferable across zones, if not specified defaults to false", "length": 255, - "name": "account", + "name": "isportable", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the checksum value of this volume. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "description": "the VPC you want the IP address to be associated with", "length": 255, - "name": "checksum", + "name": "vpcid", + "related": "createVPC,listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Image store uuid", + "description": "an optional field, whether to the display the IP to the end user or not", "length": 255, - "name": "imagestoreuuid", + "name": "fordisplay", "required": false, - "type": "string" + "since": "4.4", + "type": "boolean" } ], - "related": "createVolume,updateVolume,listVolumes,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", "response": [ { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", + "name": "virtualmachinedisplayname", + "type": "string" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "true if this ip is for static nat, false otherwise", + "name": "isstaticnat", + "type": "boolean" + }, + { + "description": "public IP address", + "name": "ipaddress", "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" + "description": "the ID of the Network where ip belongs to", + "name": "networkid", + "type": "string" }, + {}, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", + "name": "vmipaddress", "type": "string" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the name of the zone the public IP address belongs to", + "name": "zonename", "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "VPC name the ip belongs to", + "name": "vpcname", + "type": "string" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", + "description": "the account the public IP address is associated with", + "name": "account", + "type": "string" + }, + { + "description": "true if the IP address is a source nat address, false otherwise", + "name": "issourcenat", "type": "boolean" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "VPC id the ip belongs to", + "name": "vpcid", + "type": "string" }, - {}, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the project name of the address", + "name": "project", "type": "string" }, + {}, + { + "description": "is public IP portable across the zones", + "name": "isportable", + "type": "boolean" + }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", + "name": "vlanid", "type": "string" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", + "name": "hasrules", + "type": "boolean" + }, + { + "description": "the domain the public IP address is associated with", + "name": "domain", "type": "string" }, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", + "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", + "name": "issystem", "type": "boolean" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the virtual network for the IP address", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", + "name": "state", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "is public ip for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "true if range is dedicated for System VMs", + "name": "forsystemvms", + "type": "boolean" + }, + { + "description": "virtual machine name the ip address is assigned to", + "name": "virtualmachinename", "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "the VLAN associated with the IP address", + "name": "vlanname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "public IP address id", + "name": "id", + "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "the ID of the zone the public IP address belongs to", + "name": "zoneid", "type": "string" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "path of the domain to which the public IP address belongs", + "name": "domainpath", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the ID of the Network associated with the IP address", + "name": "associatednetworkid", "type": "string" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "the domain ID the public IP address is associated with", + "name": "domainid", "type": "string" }, { @@ -80037,27 +73151,42 @@ "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "date the public IP address was acquired", + "name": "allocated", + "type": "date" + }, + { + "description": "virtual machine type the ip address is assigned to", + "name": "virtualmachinetype", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the name of the Network where ip belongs to", + "name": "networkname", "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the name of the Network associated with the IP address", + "name": "associatednetworkname", "type": "string" }, { - "description": "the list of resource tags associated", + "description": "virtual machine id the ip address is assigned to", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", + "name": "purpose", + "type": "string" + }, + { + "description": "the list of resource tags associated with ip address", "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -80066,18 +73195,13 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -80086,18 +73210,18 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "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": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -80106,991 +73230,1332 @@ "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", "type": "string" } ], - "type": "set" - }, - {}, + "type": "list" + } + ] + }, + { + "description": "Get the SF Volume Access Group IDs", + "isasync": false, + "name": "getSolidFireVolumeAccessGroupIds", + "params": [ { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "Cluster UUID", + "length": 255, + "name": "clusterid", + "required": true, "type": "string" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "Storage Pool UUID", + "length": 255, + "name": "storageid", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the status of the volume", - "name": "status", - "type": "string" + "description": "SolidFire Volume Access Group Ids", + "name": "solidFireVolumeAccessGroupIds", + "type": "long[]" }, + {}, + {}, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "cluster id of the volume", - "name": "clusterid", - "type": "string" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Setup the 2FA for the user.", + "isasync": false, + "name": "setupUserTwoFactorAuthentication", + "params": [ { - "description": "pod name of the volume", - "name": "podname", - "type": "string" + "description": "optional: the id of the user for which 2FA has to be disabled", + "length": 255, + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": false, + "type": "uuid" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "two factor authentication code", + "length": 255, + "name": "provider", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "Enabled by default, provide false to disable 2FA", + "length": 255, + "name": "enable", + "required": false, "type": "boolean" - }, - { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the path of the volume", - "name": "path", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "name of the disk volume", - "name": "name", + "description": "secret code that needs to be registered with authenticator", + "name": "secretcode", "type": "string" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, + {} + ], + "since": "4.18.0" + }, + { + "description": "Delete site to site vpn connection", + "isasync": true, + "name": "deleteVpnConnection", + "params": [ { - "description": "the project id of the vpn", - "name": "projectid", - "type": "string" - }, + "description": "id of vpn connection", + "length": 255, + "name": "id", + "related": "createVpnConnection,listVpnConnections", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" - }, - { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" - }, - { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" - }, - { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" - }, - { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, + } + ] + }, + { + "description": "Lists all alerts types", + "isasync": false, + "name": "listAlertTypes", + "params": [], + "related": "listAlerts", + "response": [ + {}, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "the name of the alert", + "name": "name", "type": "string" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", - "type": "string" + "description": "the date and time the alert was sent", + "name": "sent", + "type": "date" }, + {}, { - "description": "name of the availability zone", - "name": "zonename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "description of the alert", + "name": "description", "type": "string" }, { - "description": "shared or local storage", - "name": "storagetype", + "description": "the id of the alert", + "name": "id", "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" - }, - { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", - "type": "string" + "description": "One of the following alert types: MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, SECONDARY_STORAGE = 6, HOST = 7, USERVM = 8, DOMAIN_ROUTER = 9, CONSOLE_PROXY = 10, ROUTING = 11: lost connection to default route (to the gateway), STORAGE_MISC = 12, USAGE_SERVER = 13, MANAGMENT_NODE = 14, DOMAIN_ROUTER_MIGRATE = 15, CONSOLE_PROXY_MIGRATE = 16, USERVM_MIGRATE = 17, VLAN = 18, SSVM = 19, USAGE_SERVER_RESULT = 20, STORAGE_DELETE = 21, UPDATE_RESOURCE_COUNT = 22, USAGE_SANITY_RESULT = 23, DIRECT_ATTACHED_PUBLIC_IP = 24, LOCAL_STORAGE = 25, RESOURCE_LIMIT_EXCEEDED = 26, SYNC = 27, UPLOAD_FAILED = 28, OOBM_AUTH_ERROR = 29", + "name": "type", + "type": "short" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Creates a ACL rule in the given network (the network has to belong to VPC)", + "isasync": true, + "name": "createNetworkACL", + "params": [ { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", - "type": "string" + "description": "the ending port of ACL", + "length": 255, + "name": "endport", + "required": false, + "type": "integer" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "the traffic type for the ACL,can be ingress or egress, defaulted to ingress if not specified", + "length": 255, + "name": "traffictype", + "required": false, "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "error code for this ICMP message", + "length": 255, + "name": "icmpcode", + "required": false, + "type": "integer" }, { - "description": "pod id of the volume", - "name": "podid", - "type": "string" + "description": "The network of the VM the ACL will be created for", + "length": 255, + "name": "aclid", + "related": "createNetworkACLList", + "required": false, + "type": "uuid" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", + "length": 255, + "name": "protocol", + "required": true, "type": "string" }, { - "description": "ID of the disk volume", - "name": "id", - "type": "string" + "description": "the starting port of ACL", + "length": 255, + "name": "startport", + "required": false, + "type": "integer" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "The network of the VM the ACL will be created for", + "length": 255, + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" - } - ] - }, - { - "description": "Configures a host's out-of-band management interface", - "isasync": false, - "name": "configureOutOfBandManagement", - "params": [ - { - "description": "the host management interface password", + "description": "A description indicating why the ACL rule is required.", "length": 255, - "name": "password", - "required": true, + "name": "reason", + "required": false, "type": "string" }, { - "description": "the host management interface IP address", + "description": "scl entry action, allow or deny", "length": 255, - "name": "address", - "required": true, + "name": "action", + "required": false, "type": "string" }, { - "description": "the host management interface port", + "description": "the CIDR list to allow traffic from/to. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "port", - "required": true, - "type": "string" + "name": "cidrlist", + "required": false, + "type": "list" }, { - "description": "the ID of the host", + "description": "an optional field, whether to the display the rule to the end user or not", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", - "required": true, - "type": "uuid" + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the host management interface user", + "description": "The number of the ACL item, its ordering", "length": 255, - "name": "username", - "required": true, - "type": "string" + "name": "number", + "required": false, + "type": "integer" }, { - "description": "the host management interface driver, for example: ipmitool", + "description": "type of the ICMP message being sent", "length": 255, - "name": "driver", - "required": true, - "type": "string" + "name": "icmptype", + "required": false, + "type": "integer" } ], - "related": "enableOutOfBandManagementForHost,changeOutOfBandManagementPassword", + "related": "updateNetworkACLItem,moveNetworkAclItem", "response": [ - {}, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "Action of ACL Item. Allow/Deny", + "name": "action", "type": "string" }, { - "description": "the out-of-band management driver for the host", - "name": "driver", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the operation result", - "name": "status", - "type": "boolean" + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "the operation result description", - "name": "description", + "description": "the protocol of the ACL", + "name": "protocol", "type": "string" }, + {}, { - "description": "the out-of-band management interface address", - "name": "address", + "description": "the ID of the ACL Item", + "name": "id", "type": "string" }, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "the list of resource tags associated with the network ACLs", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "list" }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the ID of the ACL this item belongs to", + "name": "aclid", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" + "description": "Number of the ACL Item", + "name": "number", + "type": "integer" }, { - "description": "the ID of the host", - "name": "hostid", - "type": "string" + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the out-of-band management interface password", - "name": "password", + "description": "an explanation on why this ACL rule is being applied", + "name": "reason", "type": "string" }, + {}, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the starting port of ACL's port range", + "name": "startport", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {} - ], - "since": "4.9.0" - }, - { - "description": "Lists storage tags", - "isasync": false, - "name": "listStorageTags", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the ACL this item belongs to", + "name": "aclname", "type": "string" }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "the pool ID of the storage tag", - "name": "poolid", - "type": "long" - }, { "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", + "description": "the traffic type for the ACL", + "name": "traffictype", + "type": "string" + }, + { + "description": "type of the icmp message being sent", + "name": "icmptype", "type": "integer" }, { - "description": "the name of the storage tag", - "name": "name", - "type": "string" + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" }, - {}, { - "description": "the ID of the storage tag", - "name": "id", + "description": "the ending port of ACL's port range", + "name": "endport", "type": "string" - }, - {} + } ] }, { - "description": "Creates a IPv4 subnet for guest networks.", + "description": "Resets the SSH Key for virtual machine. The virtual machine must be in a \"Stopped\" state. [async]", "isasync": true, - "name": "createIpv4SubnetForGuestNetwork", + "name": "resetSSHKeyForVirtualMachine", "params": [ { - "description": "the CIDR size of IPv4 network. This is mutually exclusive with subnet.", + "description": "name of the ssh key pair used to login to the virtual machine", "length": 255, - "name": "cidrsize", + "name": "keypair", "required": false, - "type": "integer" + "type": "string" }, { - "description": "The CIDR of this Ipv4 subnet.", + "description": "names of the ssh key pairs to be used to login to the virtual machine", "length": 255, - "name": "subnet", + "name": "keypairs", "required": false, - "type": "string" + "since": "4.17", + "type": "list" }, { - "description": "The zone Ipv4 subnet which the IPv4 subnet belongs to.", + "description": "The ID of the virtual machine", "length": 255, - "name": "parentid", - "related": "listIpv4SubnetsForZone,dedicateIpv4SubnetForZone", + "name": "id", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, "type": "uuid" + }, + { + "description": "an optional project for the ssh key", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "an optional account for the ssh key. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" } ], - "related": "", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "response": [ { - "description": "Id of the VPC which the IPv4 subnet is associated with.", - "name": "vpcid", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "state of subnet of the IPv4 network", - "name": "state", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "id of the data center IPv4 subnet", - "name": "parentid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "date when this IPv4 subnet was removed.", - "name": "removed", - "type": "date" + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zonename", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "name of network which the IPv4 subnet is associated with.", - "name": "networkname", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "subnet of the data center IPv4 subnet", - "name": "parentsubnet", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "subnet of the IPv4 network", - "name": "subnet", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "date when this IPv4 subnet was allocated.", - "name": "allocated", - "type": "date" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, - {}, { - "description": "id of network which the IPv4 subnet is associated with.", - "name": "networkid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, {}, { - "description": "Name of the VPC which the IPv4 subnet is associated with.", - "name": "vpcname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "date when this IPv4 subnet was created.", - "name": "created", - "type": "date" + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" }, { - "description": "id of the IPv4 subnet for guest network", - "name": "id", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Delete VM Schedule.", - "isasync": false, - "name": "deleteVMSchedule", - "params": [ - { - "description": "IDs of VM schedule", - "length": 255, - "name": "ids", - "related": "", - "required": false, - "type": "list" }, { - "description": "ID of VM schedule", - "length": 255, - "name": "id", - "related": "", - "required": false, - "type": "uuid" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "ID of VM", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the user's name who deployed the virtual machine", + "name": "username", + "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "List template visibility and all accounts that have permissions to view this template.", - "isasync": false, - "name": "listTemplatePermissions", - "params": [ - { - "description": "the template ID", - "length": 255, - "name": "id", - "related": "listIsoPermissions,listTemplatePermissions,listTemplatePermissions,listIsoPermissions", - "required": true, - "type": "uuid" - } - ], - "related": "listIsoPermissions,listTemplatePermissions,listIsoPermissions", - "response": [ + }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the list of projects the template is available for", - "name": "projectids", - "type": "list" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, - {}, { - "description": "the template ID", - "name": "id", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, {}, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the list of accounts the template is available for", - "name": "account", - "type": "list" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Lists annotations.", - "isasync": false, - "name": "listAnnotations", - "params": [ - { - "description": "the id of the annotation", - "length": 255, - "name": "id", - "required": false, + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the id of the entity for which to show annotations", - "length": 255, - "name": "entityid", - "required": false, - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the entity type", - "length": 255, - "name": "entitytype", - "required": false, - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "possible values are \"self\" and \"all\". * self : annotations that have been created by the calling user. * all : all the annotations the calling user can access", - "length": 255, - "name": "annotationfilter", - "required": false, - "since": "4.16.0", - "type": "string" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" }, { - "description": "optional: the id of the user of the annotation", - "length": 255, - "name": "userid", - "required": false, - "since": "4.16.0", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "addAnnotation", - "response": [ - { - "description": "the (uu)id of the entity to which this annotation pertains", - "name": "entityid", - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the (uu)id of the annotation", - "name": "id", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, - {}, { - "description": "the removal timestamp for this annotation", - "name": "removed", - "type": "date" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + } + ], + "type": "set" }, { - "description": "the creation timestamp for this annotation", - "name": "created", - "type": "date" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the type of the annotated entity", - "name": "entitytype", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the contents of the annotation", - "name": "annotation", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "True if the annotation is available for admins only", - "name": "adminsonly", + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the name of the entity to which this annotation pertains", - "name": "entityname", - "type": "string" - }, - {}, - { - "description": "The (uu)id of the user that entered the annotation", - "name": "userid", - "type": "string" - }, - { - "description": "The username of the user that entered the annotation", - "name": "username", - "type": "string" - } - ], - "since": "4.11" - }, - { - "description": "Adds Swift.", - "isasync": false, - "name": "addSwift", - "params": [ - { - "description": "the username for swift", - "length": 255, - "name": "username", - "required": false, - "type": "string" - }, - { - "description": " key for the user for swift", - "length": 255, - "name": "key", - "required": false, - "type": "string" - }, - { - "description": "the URL for swift", - "length": 255, - "name": "url", - "required": true, + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the account for swift", - "length": 255, - "name": "account", - "required": false, - "type": "string" - } - ], - "related": "addSecondaryStorage,listSwifts,addImageStore", - "response": [ - { - "description": "the provider name of the image store", - "name": "providername", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": "the ID of the image store", - "name": "id", - "type": "string" - }, - { - "description": "the Zone ID of the image store", - "name": "zoneid", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the host's currently used disk size", - "name": "disksizeused", + "description": "the memory used by the VM in KiB", + "name": "memorykbs", "type": "long" }, - {}, { - "description": "the protocol of the image store", - "name": "protocol", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the name of the image store", - "name": "name", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, - {}, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the url of the image store", - "name": "url", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" - }, - { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Lists snapshot policies.", - "isasync": false, - "name": "listSnapshotPolicies", - "params": [ - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the disk volume", - "length": 255, - "name": "volumeid", - "related": "createVolume,updateVolume,listVolumes,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the snapshot policy", - "length": 255, - "name": "id", - "related": "updateSnapshotPolicy,listSnapshotPolicies", - "required": false, - "type": "uuid" - } - ], - "related": "updateSnapshotPolicy", - "response": [ - { - "description": "is this policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the time zone of the snapshot policy", - "name": "timezone", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the ID of the snapshot policy", - "name": "id", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "time the snapshot is scheduled to be taken.", - "name": "schedule", - "type": "string" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - {}, - { - "description": "the interval type of the snapshot policy", - "name": "intervaltype", - "type": "short" - }, { - "description": "the ID of the disk volume", - "name": "volumeid", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "The list of zones in which snapshot backup is scheduled", - "name": "zone", - "type": "set" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, - {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { @@ -81098,18 +74563,18 @@ "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -81123,23 +74588,23 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -81156,1696 +74621,1390 @@ "type": "set" }, { - "description": "maximum number of snapshots retained", - "name": "maxsnaps", - "type": "int" - } - ] - }, - { - "description": "Update site to site vpn customer gateway", - "isasync": true, - "name": "updateVpnCustomerGateway", - "params": [ - { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2.Connections marked with 'ike' will use 'ikev2' when initiating, but accept any protocol version when responding. Defaults to ike", - "length": 255, - "name": "ikeversion", - "required": false, - "since": "4.15.1", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "public ip address id of the customer gateway", - "length": 255, - "name": "gateway", - "required": true, + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds", - "length": 255, - "name": "esplifetime", - "required": false, - "type": "long" - }, - { - "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", - "length": 255, - "name": "splitconnections", - "required": false, - "since": "4.15.1", - "type": "boolean" - }, - { - "description": "the account associated with the gateway. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "guest cidr of the customer gateway. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": true, + "description": "User VM type", + "name": "vmtype", "type": "string" }, + {}, { - "description": "id of customer gateway", - "length": 255, - "name": "id", - "related": "updateVpnCustomerGateway", - "required": true, - "type": "uuid" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "name of this customer gateway", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.", - "length": 255, - "name": "ipsecpsk", - "required": true, + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds", - "length": 255, - "name": "ikelifetime", - "required": false, - "type": "long" - }, - { - "description": "If DPD is enabled for VPN connection", - "length": 255, - "name": "dpd", - "required": false, - "type": "boolean" - }, - { - "description": "ESP policy of the customer gateway", - "length": 255, - "name": "esppolicy", - "required": true, + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "Force encapsulation for Nat Traversal", - "length": 255, - "name": "forceencap", - "required": false, + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "IKE policy of the customer gateway", - "length": 255, - "name": "ikepolicy", - "required": true, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the project id", - "name": "projectid", - "type": "string" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", - "name": "splitconnections", - "type": "boolean" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "IKE policy of customer gateway", - "name": "ikepolicy", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the vpn gateway ID", - "name": "id", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", - "type": "boolean" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "public ip address id of the customer gateway", - "name": "gateway", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" }, { - "description": "the domain id of the owner", - "name": "domainid", - "type": "string" - }, - { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", - "type": "string" - }, - { - "description": "if DPD is enabled for customer gateway", - "name": "dpd", - "type": "boolean" - }, - { - "description": "the project name", - "name": "project", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, - {}, { - "description": "the owner", - "name": "account", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "IPsec preshared-key of customer gateway", - "name": "ipsecpsk", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" - }, - {}, - { - "description": "name of the customer gateway", + "description": "the name of the virtual machine", "name": "name", "type": "string" }, { - "description": "guest ip of the customer gateway", - "name": "ipaddress", - "type": "string" - }, - { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "IPsec policy of customer gateway", - "name": "esppolicy", - "type": "string" - }, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - } - ] - }, - { - "description": "apply Tungsten-Fabric tag", - "isasync": true, - "name": "applyTungstenFabricTag", - "params": [ - { - "description": "the uuid of vms", - "length": 255, - "name": "vmuuid", - "required": false, - "type": "list" - }, - { - "description": "the uuid of nics", - "length": 255, - "name": "nicuuid", - "required": false, - "type": "list" - }, - { - "description": "the uuid of Tungsten-Fabric application policy set", - "length": 255, - "name": "applicationpolicysetuuid", - "required": false, - "type": "string" - }, - { - "description": "the uuid of networks", - "length": 255, - "name": "networkuuid", - "required": false, - "type": "list" - }, - { - "description": "the uuid of Tungsten-Fabric policy", - "length": 255, - "name": "policyuuid", - "required": false, - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the uuid of Tungsten-Fabric tag", - "length": 255, - "name": "taguuid", - "required": true, + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "list Tungsten-Fabric vm", - "name": "vm", - "type": "list" - }, - { - "description": "list Tungsten-Fabric nic", - "name": "nic", - "type": "list" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "Tungsten-Fabric provider zone name", + "description": "the name of the availability zone for the virtual machine", "name": "zonename", "type": "string" }, - {}, - { - "description": "Tungsten-Fabric tag name", - "name": "name", - "type": "string" - }, - { - "description": "list Tungsten-Fabric network", - "name": "network", - "type": "list" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "list Tungsten-Fabric policy", - "name": "policy", - "type": "list" - }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" } ] }, { - "description": "Updates object storage pool", + "description": "Lists site to site vpn customer gateways", "isasync": false, - "name": "updateObjectStoragePool", + "name": "listVpnCustomerGateways", "params": [ { - "description": "the name for the object store", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "the url for the object store", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "url", + "name": "isrecursive", "required": false, - "type": "string" - }, - { - "description": "Object Store ID", - "length": 255, - "name": "id", - "related": "addObjectStoragePool,updateObjectStoragePool", - "required": true, - "type": "uuid" - } - ], - "related": "addObjectStoragePool", - "response": [ - { - "description": "the name of the object store", - "name": "name", - "type": "string" - }, - { - "description": "the total size of the object store", - "name": "storagetotal", - "type": "long" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "the url of the object store", - "name": "url", - "type": "string" - }, - { - "description": "the provider name of the object store", - "name": "providername", - "type": "string" - }, - {}, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the object store currently used size", - "name": "storageused", - "type": "long" - }, - { - "description": "the ID of the object store", - "name": "id", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "This deprecated function used to locks an account. Look for the API DisableAccount instead", - "isasync": false, - "name": "lockAccount", - "params": [ - { - "description": "Locks the specified account on this domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": true, - "type": "uuid" - }, - { - "description": "Locks the specified account.", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "account", - "required": true, - "type": "string" - } - ], - "related": "disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts", - "response": [ - {}, - { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" - }, - { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" - }, - { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", - "type": "string" - }, - { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", - "type": "string" - }, - { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", - "type": "string" - }, - { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", - "type": "boolean" - }, - { - "description": "details for the account", - "name": "accountdetails", - "type": "map" - }, - { - "description": "the default zone of the account", - "name": "defaultzoneid", - "type": "string" - }, - { - "description": "the date when this account was created", - "name": "created", - "type": "date" - }, - { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", - "type": "string" - }, - { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", - "type": "string" - }, - { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" - }, - {}, - { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", - "type": "string" - }, - { - "description": "the network domain", - "name": "networkdomain", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "path of the Domain the account belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the list of users associated with account", - "name": "user", - "response": [ - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" - }, - { - "description": "the user email address", - "name": "email", - "type": "string" - }, - { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - { - "description": "the ID of the role", - "name": "roleid", - "type": "string" - }, - { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" - }, - { - "description": "the user firstname", - "name": "firstname", - "type": "string" - }, - { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", - "type": "string" - }, - { - "description": "the domain ID of the user", - "name": "domainid", - "type": "string" - }, - { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the user name", - "name": "username", - "type": "string" - }, - { - "description": "the api key of the user", - "name": "apikey", - "type": "string" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, - { - "description": "the account name of the user", - "name": "account", - "type": "string" - }, - { - "description": "the name of the role", - "name": "rolename", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, - { - "description": "the type of the role", - "name": "roletype", - "type": "string" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the user ID", - "name": "id", - "type": "string" - }, - { - "description": "the domain name of the user", - "name": "domain", - "type": "string" - }, - { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the user lastname", - "name": "lastname", - "type": "string" - }, - { - "description": "the timezone user was created in", - "name": "timezone", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", - "type": "integer" - }, - { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", - "type": "string" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" - }, - { - "description": "the list of acl groups that account belongs to", - "name": "groups", - "type": "list" - }, - { - "description": "the ID of the role", - "name": "roleid", - "type": "string" - }, - { - "description": "name of the Domain the account belongs to", - "name": "domain", - "type": "string" - }, - { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", - "type": "string" + "description": "id of the customer gateway", + "length": 255, + "name": "id", + "related": "createVpnCustomerGateway,listVpnCustomerGateways", + "required": false, + "type": "uuid" }, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the total volume available for this account", - "name": "volumeavailable", - "type": "string" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "createVpnCustomerGateway", + "response": [ { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", + "description": "IPsec policy of customer gateway", + "name": "esppolicy", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", + "description": "guest ip of the customer gateway", + "name": "ipaddress", "type": "string" }, { - "description": "the total number of networks the account can own", - "name": "networklimit", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", "type": "long" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", - "type": "string" - }, - { - "description": "the name of the role", - "name": "rolename", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", "type": "string" }, + {}, { - "description": "the total number of projects the account can own", - "name": "projectlimit", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", "type": "long" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the total volume which can be used by this account", - "name": "volumelimit", - "type": "string" - }, - { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" - }, - { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", - "type": "integer" + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", + "type": "boolean" }, { - "description": "the id of the account", - "name": "id", + "description": "the project id", + "name": "projectid", "type": "string" }, + {}, { - "description": "the name of the account", + "description": "name of the customer gateway", "name": "name", "type": "string" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", - "type": "integer" - }, - { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", + "description": "IPsec preshared-key of customer gateway", + "name": "ipsecpsk", "type": "string" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" + "description": "IKE policy of customer gateway", + "name": "ikepolicy", + "type": "string" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", - "type": "long" + "description": "public ip address id of the customer gateway", + "name": "gateway", + "type": "string" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the state of the account", - "name": "state", + "description": "the vpn gateway ID", + "name": "id", "type": "string" }, { - "description": "id of the Domain the account belongs to", + "description": "the domain id of the owner", "name": "domainid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", + "name": "splitconnections", + "type": "boolean" }, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" + }, + { + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" } ] }, { - "description": "Stops a router.", + "description": "Deletes a management network IP range. This action is only allowed when no IPs in this range are allocated.", "isasync": true, - "name": "stopRouter", + "name": "deleteManagementNetworkIpRange", "params": [ { - "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", + "description": "The ending IP address.", "length": 255, - "name": "forced", - "required": false, - "type": "boolean" + "name": "endip", + "required": true, + "type": "string" }, { - "description": "the ID of the router", + "description": "UUID of POD, where the IP range belongs to.", "length": 255, - "name": "id", - "related": "listRouters,rebootRouter,stopRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": true, "type": "uuid" - } - ], - "related": "listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "response": [ - { - "description": "the name of VPC the router belongs to", - "name": "vpcname", - "type": "string" }, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "The starting IP address.", + "length": 255, + "name": "startip", + "required": true, "type": "string" }, { - "description": "the Zone name for the router", - "name": "zonename", + "description": "The vlan id the ip range sits on", + "length": 255, + "name": "vlan", + "required": true, "type": "string" - }, + } + ], + "response": [ { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "the domain ID associated with the router", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.11.0.0" + }, + { + "description": "Lists Webhooks", + "isasync": false, + "name": "listWebhooks", + "params": [ + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "The name of the Webhook", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the first DNS for the router", - "name": "dns1", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the public IP address for the router", - "name": "publicip", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", - "type": "string" + "description": "The ID of the Webhook", + "length": 255, + "name": "id", + "related": "createWebhook,listWebhooks,listWebhookDeliveries", + "required": false, + "type": "uuid" }, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the account associated with the router", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, "name": "account", + "required": false, "type": "string" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "The scope of the Webhook", + "length": 255, + "name": "scope", + "required": false, "type": "string" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "The state of the Webhook", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "the version of template", - "name": "version", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the project name of the address", - "name": "project", - "type": "string" - }, + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + } + ], + "related": "createWebhook,listWebhookDeliveries", + "response": [ { - "description": "the domain associated with the router", - "name": "domain", - "type": "string" + "description": "Whether SSL verification is enabled for the Webhook", + "name": "sslverification", + "type": "boolean" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "The ID of the Webhook", + "name": "id", "type": "string" }, { - "description": "path of the Domain the router belongs to", + "description": "path of the domain to which the Webhook belongs", "name": "domainpath", "type": "string" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", - "type": "string" - }, - { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "The scope of the Webhook", + "name": "scope", "type": "string" }, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", + "description": "The name of the Webhook", + "name": "name", "type": "string" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "The name of the domain in which the Webhook exists", + "name": "domain", "type": "string" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "the project id of the Kubernetes cluster", + "name": "projectid", "type": "string" }, { - "description": "the date and time the router was created", + "description": "The date when this Webhook was created", "name": "created", "type": "date" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "The state of the Webhook", + "name": "state", "type": "string" }, { - "description": "the id of the router", - "name": "id", + "description": "The account associated with the Webhook", + "name": "account", "type": "string" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "The ID of the domain in which the Webhook exists", + "name": "domainid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project name of the Kubernetes cluster", + "name": "project", "type": "string" }, { - "description": "the hostname for the router", - "name": "hostname", + "description": "The description of the Webhook", + "name": "description", "type": "string" }, { - "description": "the second DNS for the router", - "name": "dns2", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "role of the domain router", - "name": "role", + "description": "The payload URL end point for the Webhook", + "name": "payloadurl", "type": "string" }, - {}, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", + "description": "The secret key for the Webhook", + "name": "secretkey", "type": "string" }, - {}, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - }, - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - } - ], - "type": "list" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {} + ], + "since": "4.20.0" + }, + { + "description": "Creates a global load balancer rule", + "isasync": true, + "name": "createGlobalLoadBalancerRule", + "params": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "session sticky method (sourceip) if not specified defaults to sourceip", + "length": 255, + "name": "gslbstickysessionmethodname", + "required": false, + "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "name of the load balancer rule", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the Pod ID for the router", - "name": "podid", + "description": "GSLB service type (tcp, udp, http)", + "length": 255, + "name": "gslbservicetype", + "required": true, "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", - "type": "string" + "description": "region where the global load balancer is going to be created.", + "length": 255, + "name": "regionid", + "related": "addRegion,listRegions", + "required": true, + "type": "integer" }, { - "description": "the name of the router", - "name": "name", - "type": "string" + "description": "the domain ID associated with the load balancer", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "domain name for the GSLB service.", + "length": 255, + "name": "gslbdomainname", + "required": true, "type": "string" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "the description of the load balancer rule", + "length": 4096, + "name": "description", + "required": false, "type": "string" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "load balancer algorithm (roundrobin, leastconn, proximity) that method is used to distribute traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'", + "length": 255, + "name": "gslblbmethod", + "required": false, "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", + "description": "the account associated with the global load balancer. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" - }, + } + ], + "related": "listGlobalLoadBalancerRules,updateGlobalLoadBalancerRule", + "response": [ { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "GSLB service type", + "name": "gslbservicetype", "type": "string" }, + {}, { - "description": "the host ID for the router", - "name": "hostid", + "description": "the project id of the load balancer", + "name": "projectid", "type": "string" }, { - "description": "the list of nics associated with the router", - "name": "nic", + "description": "List of load balancer rules that are part of GSLB rule", + "name": "loadbalancerrule", "response": [ { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the domain of the load balancer rule", + "name": "domain", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the load balancer rule ID", + "name": "id", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the project name of the load balancer", + "name": "project", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the ID of the nic", - "name": "id", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the description of the load balancer", + "name": "description", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the id of the guest network the lb rule belongs to", + "name": "networkid", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the account of the load balancer rule", + "name": "account", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the id of the zone the rule belongs to", + "name": "zoneid", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the project id of the load balancer", + "name": "projectid", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the private port", + "name": "privateport", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "the protocol of the loadbalanacer rule", + "name": "protocol", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" + "description": "the list of resource tags associated with load balancer", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "list" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the name of the zone the load balancer rule belongs to", + "name": "zonename", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the name of the load balancer", + "name": "name", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" + "description": "name of the global load balancer rule", + "name": "name", + "type": "string" }, { - "description": "the state of the router", - "name": "state", - "type": "state" + "description": "Region Id in which global load balancer is created", + "name": "regionid", + "type": "integer" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the account of the load balancer rule", + "name": "account", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the project name of the load balancer", + "name": "project", "type": "string" }, { - "description": "the template name for the router", - "name": "templatename", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", + "description": "the description of the global load balancer rule", + "name": "description", "type": "string" }, { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "DNS domain name given for the global load balancer", + "name": "gslbdomainname", "type": "string" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", + "description": "Load balancing method used for the global load balancer", + "name": "gslblbmethod", "type": "string" - } - ] - }, - { - "description": "Deletes project invitation", - "isasync": true, - "name": "deleteProjectInvitation", - "params": [ + }, { - "description": "id of the invitation", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ + "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": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "global load balancer rule ID", + "name": "id", "type": "string" }, - {}, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the domain of the load balancer rule", + "name": "domain", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "session persistence method used for the global load balancer", + "name": "gslbstickysessionmethodname", "type": "string" } - ], - "since": "3.0.0" + ] }, { - "description": "create Tungsten-Fabric firewall policy", - "isasync": true, - "name": "createTungstenFabricFirewallPolicy", + "description": "Link or unlink a userdata to a template.", + "isasync": false, + "name": "linkUserDataToTemplate", "params": [ { - "description": "the uuid of Tungsten-Fabric application policy set", + "description": "the ID of the ISO for the virtual machine", "length": 255, - "name": "applicationpolicysetuuid", + "name": "isoid", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the ID of zone", + "description": "the ID of the template for the virtual machine", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "templateid", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, "type": "uuid" }, { - "description": "Tungsten-Fabric firewall policy name", + "description": "the ID of the userdata that has to be linked to template/ISO. If not provided existing userdata will be unlinked from the template/ISO", "length": 255, - "name": "name", - "required": true, - "type": "string" + "name": "userdataid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the sequence of Tungsten-Fabric firewall policy", + "description": "an optional override policy of the userdata. Possible values are - ALLOWOVERRIDE, APPEND, DENYOVERRIDE. Default policy is allowoverride", "length": 255, - "name": "sequence", - "required": true, - "type": "integer" + "name": "userdatapolicy", + "required": false, + "type": "string" } ], - "related": "", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ - {}, { - "description": "Tungsten-Fabric provider zone id", + "description": "the ID of the zone for this template", "name": "zoneid", - "type": "long" + "type": "string" }, { - "description": "Tungsten-Fabric firewall policy name", - "name": "name", + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "Tungsten-Fabric firewall policy uuid", - "name": "uuid", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", + "description": "the name of the zone for this template", "name": "zonename", "type": "string" }, { - "description": "list Tungsten-Fabric firewall rule", - "name": "firewallrule", + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" + }, + { + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the template name", + "name": "name", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, - {} - ] - }, - { - "description": "Updates a region", - "isasync": false, - "name": "updateRegion", - "params": [ { - "description": "updates region with this name", - "length": 255, - "name": "name", - "required": false, + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "updates region with this end point", - "length": 255, - "name": "endpoint", - "required": false, + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" + }, + { + "description": "the format of the template.", + "name": "format", + "type": "imageformat" + }, + { + "description": "the processor bit size", + "name": "bits", + "type": "int" + }, + { + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "Id of region to update", - "length": 255, - "name": "id", - "required": true, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "the URL which the template/iso is registered from", + "name": "url", + "type": "string" + }, + { + "description": "the size of the template", + "name": "size", + "type": "long" + }, + { + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" + }, + { + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" + }, + { + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" + }, + { + "description": "the ID of the OS type for this template.", + "name": "ostypeid", + "type": "string" + }, + { + "description": "the project id of the template", + "name": "projectid", + "type": "string" + }, + { + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" + }, + { + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" + }, {}, { - "description": "true if security groups support is enabled, false otherwise", - "name": "portableipserviceenabled", + "description": "checksum of the template", + "name": "checksum", + "type": "string" + }, + { + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" + }, + { + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the date this template was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the type of the template", + "name": "templatetype", + "type": "string" + }, + { + "description": "the id of userdata linked to this template", + "name": "userdataid", + "type": "string" + }, + { + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" + }, + { + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", + "name": "deployasis", + "type": "boolean" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the end point of the region", - "name": "endpoint", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "the name of the region", - "name": "name", + "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": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "the ID of the region", - "name": "id", - "type": "integer" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "true if GSLB service is enabled in the region, false otherwise", - "name": "gslbserviceenabled", + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the status of the template", + "name": "status", "type": "string" - } - ] - }, - { - "description": "Deletes traffic type of a physical network", - "isasync": true, - "name": "deleteTrafficType", - "params": [ - { - "description": "traffic type id", - "length": 255, - "name": "id", - "related": "addTrafficType,updateTrafficType", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the secondary storage host for the template", + "name": "hostname", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Destroy a Shared FileSystem by id", - "isasync": true, - "name": "destroySharedFileSystem", - "params": [ + }, { - "description": "If true is passed, the shared filesystem can be destroyed without stopping it first.", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", + "type": "string" }, { - "description": "the ID of the shared filesystem to delete", - "length": 255, - "name": "id", - "related": "listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": false, - "type": "uuid" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "If true is passed, the shared filesystem is expunged immediately. False by default.", - "length": 255, - "name": "expunge", - "required": false, + "description": "the date this template was created", + "name": "created", + "type": "date" + }, + { + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", "type": "boolean" - } - ], - "response": [ - {}, + }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "CPU Arch of the template", + "name": "arch", + "type": "string" + }, + { + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "path of the Domain the template belongs to", + "name": "domainpath", "type": "string" }, - {}, + { + "description": "the project name of the template", + "name": "project", + "type": "string" + }, + { + "description": "the name of userdata linked to this template", + "name": "userdataname", + "type": "string" + }, + { + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" + }, { "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" - } + {} ], - "since": "4.20.0" + "since": "4.18.0" }, { - "description": "Lists a project's project role permissions", - "isasync": false, - "name": "listProjectRolePermissions", + "description": " delete a netscaler load balancer device", + "isasync": true, + "name": "deleteNetscalerLoadBalancer", "params": [ { - "description": "ID of the project", + "description": "netscaler load balancer device ID", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "lbdeviceid", + "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter,deployNetscalerVpx", "required": true, "type": "uuid" - }, - { - "description": "ID of the project role", - "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", - "required": false, - "type": "uuid" } ], - "related": "", "response": [ {}, { @@ -82854,235 +76013,146 @@ "type": "integer" }, { - "description": "the name of the project role to which the role permission belongs", - "name": "projectrolename", - "type": "string" - }, - { - "description": "the permission type of the api name or wildcard rule, allow/deny", - "name": "permission", - "type": "string" - }, - { - "description": "the ID of the project", - "name": "projectid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the description of the role permission", - "name": "description", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, {}, { - "description": "the ID of the project role to which the role permission belongs", - "name": "projectroleid", - "type": "string" - }, - { - "description": "the ID of the project role permission", - "name": "id", - "type": "string" - }, - { - "description": "the api name or wildcard rule", - "name": "rule", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } - ], - "since": "4.15.0" + ] }, { - "description": "Lists all LDAP configurations", + "description": "Lists load balancer rules.", "isasync": false, - "name": "listLdapConfigurations", + "name": "listGlobalLoadBalancerRules", "params": [ { - "description": "Hostname", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "hostname", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "If set to true, and no domainid specified, list all LDAP configurations irrespective of the linked domain", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "listall", + "name": "tags", "required": false, - "since": "4.13.2", - "type": "boolean" + "type": "map" }, { - "description": "Port", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "port", + "name": "isrecursive", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "pagesize", + "name": "listall", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "linked domain", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "", + "description": "region ID", "length": 255, - "name": "page", + "name": "regionid", + "related": "addRegion,listRegions", "required": false, "type": "integer" }, { - "description": "List by keyword", + "description": "", "length": 255, - "name": "keyword", + "name": "pagesize", "required": false, - "type": "string" - } - ], - "related": "addLdapConfiguration", - "response": [ - { - "description": "linked domain", - "name": "domainid", - "type": "string" - }, - { - "description": "name of the host running the ldap server", - "name": "hostname", - "type": "string" - }, - { - "description": "port the ldap server is running on", - "name": "port", - "type": "int" - }, - { - "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" - } - ], - "since": "4.2.0" - }, - { - "description": "Creates a l2tp/ipsec remote access vpn", - "isasync": true, - "name": "createRemoteAccessVpn", - "params": [ - { - "description": "an optional field, whether to the display the vpn to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "an optional domainId for the VPN. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" }, { - "description": "an optional account for the VPN. Must be used with domainId.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, "name": "account", "required": false, "type": "string" }, { - "description": "the range of ip addresses to allocate to vpn clients. The first ip in the range will be taken by the vpn server", + "description": "the ID of the global load balancer rule", "length": 255, - "name": "iprange", + "name": "id", + "related": "listGlobalLoadBalancerRules,updateGlobalLoadBalancerRule", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. Has value true by default", + "description": "List by keyword", "length": 255, - "name": "openfirewall", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "public ip address id of the vpn server", + "description": "", "length": 255, - "name": "publicipid", - "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" + "name": "page", + "required": false, + "type": "integer" } ], - "related": "listRemoteAccessVpns", + "related": "updateGlobalLoadBalancerRule", "response": [ { - "description": "the account of the remote access vpn", - "name": "account", - "type": "string" - }, - { - "description": "the public ip address of the vpn server", - "name": "publicip", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "global load balancer rule ID", + "name": "id", "type": "string" }, - {}, { - "description": "the range of ips to allocate to the clients", - "name": "iprange", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { - "description": "path of the domain to which the remote access vpn belongs", - "name": "domainpath", + "description": "name of the global load balancer rule", + "name": "name", "type": "string" }, { - "description": "the domain name of the account of the remote access vpn", - "name": "domain", - "type": "string" + "description": "Region Id in which global load balancer is created", + "name": "regionid", + "type": "integer" }, { - "description": "the id of the remote access vpn", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the public ip address of the vpn server", - "name": "publicipid", + "description": "session persistence method used for the global load balancer", + "name": "gslbstickysessionmethodname", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "Load balancing method used for the global load balancer", + "name": "gslblbmethod", "type": "string" }, { @@ -83091,415 +76161,156 @@ "type": "integer" }, { - "description": "is vpn for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the ipsec preshared key", - "name": "presharedkey", + "description": "the domain of the load balancer rule", + "name": "domain", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "GSLB service type", + "name": "gslbservicetype", "type": "string" }, { - "description": "the domain id of the account of the remote access vpn", - "name": "domainid", + "description": "the project id of the load balancer", + "name": "projectid", "type": "string" }, - {}, { - "description": "the project name of the vpn", - "name": "project", + "description": "the account of the load balancer rule", + "name": "account", "type": "string" - } - ] - }, - { - "description": "(This API is deprecated, use scaleVirtualMachine API)Changes the service offering for a virtual machine. The virtual machine must be in a \"Stopped\" state for this command to take effect.", - "isasync": false, - "name": "changeServiceForVirtualMachine", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - }, - { - "description": "New minimum number of IOPS for the custom disk offering", - "length": 255, - "name": "miniops", - "required": false, - "since": "4.17", - "type": "long" - }, - { - "description": "New maximum number of IOPS for the custom disk offering", - "length": 255, - "name": "maxiops", - "required": false, - "since": "4.17", - "type": "long" - }, - { - "description": "the service offering ID to apply to the virtual machine", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" - }, - { - "description": "Verify OK to Shrink", - "length": 255, - "name": "shrinkok", - "required": false, - "since": "4.17", - "type": "boolean" - }, - { - "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", - "length": 255, - "name": "details", - "required": false, - "type": "map" - }, - { - "description": "Flag for automatic migration of the root volume with new compute offering whenever migration is required to apply the offering", - "length": 255, - "name": "automigrate", - "required": false, - "since": "4.17", - "type": "boolean" - } - ], - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the project name of the load balancer", + "name": "project", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "DNS domain name given for the global load balancer", + "name": "gslbdomainname", "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", + "description": "List of load balancer rules that are part of GSLB rule", + "name": "loadbalancerrule", "response": [ { - "description": "the project id of the group", - "name": "projectid", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "the ID of the security group", - "name": "id", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the project name of the group", - "name": "project", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "the protocol of the loadbalanacer rule", + "name": "protocol", "type": "string" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - } - ], - "type": "set" + "description": "the id of the guest network the lb rule belongs to", + "name": "networkid", + "type": "string" }, { - "description": "the name of the security group", - "name": "name", + "description": "the id of the zone the rule belongs to", + "name": "zoneid", "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "the account owning the security group", - "name": "account", + "description": "the name of the zone the load balancer rule belongs to", + "name": "zonename", "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "description": "the project name of the load balancer", + "name": "project", + "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the private port", + "name": "privateport", + "type": "string" + }, + { + "description": "the domain of the load balancer rule", + "name": "domain", + "type": "string" + }, + { + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "the load balancer rule ID", + "name": "id", + "type": "string" + }, + { + "description": "the project id of the load balancer", + "name": "projectid", + "type": "string" + }, + { + "description": "the state of the rule", + "name": "state", + "type": "string" + }, + { + "description": "the list of resource tags associated with load balancer", + "name": "tags", "response": [ { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "resource type", + "name": "resourcetype", "type": "string" }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ { "description": "tag key name", "name": "key", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -83507,29 +76318,19 @@ "name": "account", "type": "string" }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, { "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -83538,120 +76339,308 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the description of the security group", + "description": "the name of the load balancer", + "name": "name", + "type": "string" + }, + { + "description": "the description of the load balancer", "name": "description", "type": "string" + }, + { + "description": "the account of the load balancer rule", + "name": "account", + "type": "string" } ], - "type": "set" + "type": "list" + }, + { + "description": "the domain ID of the load balancer rule", + "name": "domainid", + "type": "string" + }, + { + "description": "the description of the global load balancer rule", + "name": "description", + "type": "string" + }, + {} + ] + }, + { + "description": "Updates a disk offering.", + "isasync": false, + "name": "deleteDiskOffering", + "params": [ + { + "description": "ID of the disk offering", + "length": 255, + "name": "id", + "related": "createDiskOffering,listDiskOfferings", + "required": true, + "type": "uuid" + } + ], + "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" + } + ] + }, + { + "description": "List resource tag(s)", + "isasync": false, + "name": "listTags", + "params": [ + { + "description": "list by value", + "length": 255, + "name": "value", + "required": false, + "type": "string" + }, + { + "description": "list by resource type", + "length": 255, + "name": "resourcetype", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "list by customer name", + "length": 255, + "name": "customer", + "required": false, + "type": "string" + }, + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "list by key", + "length": 255, + "name": "key", + "required": false, + "type": "string" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "list by resource id", + "length": 255, + "name": "resourceid", + "required": false, "type": "string" - }, + } + ], + "related": "", + "response": [ {}, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "customer associated with the tag", + "name": "customer", + "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, + {}, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" + } + ], + "since": "4.0.0" + }, + { + "description": "List user and system VMs that need to be stopped and destroyed respectively for changing the scope of the storage pool from Zone to Cluster.", + "isasync": false, + "name": "listAffectedVmsForStorageScopeChange", + "params": [ + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the Id of the storage pool on which change scope operation is being done", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": true, + "type": "uuid" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the Id of the cluster the scope of the storage pool is being changed to", + "length": 255, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": true, + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "the cluster ID for the VM", + "name": "clusterid", + "type": "string" + }, + {}, + { + "description": "the host ID for the VM", + "name": "hostid", "type": "string" }, { @@ -83660,711 +76649,714 @@ "type": "integer" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the type of VM", + "name": "type", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the cluster name for the VM", + "name": "clustername", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the hostname for the VM", + "name": "hostname", "type": "string" }, + {}, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the ID of the VM", + "name": "id", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the name of the VM", + "name": "name", + "type": "string" + } + ], + "since": "4.19.1" + }, + { + "description": "Release the dedication for cluster", + "isasync": true, + "name": "releaseDedicatedCluster", + "params": [ + { + "description": "the ID of the Cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - } - ], - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ] + }, + { + "description": "Create a virtual router element.", + "isasync": true, + "name": "createVirtualRouterElement", + "params": [ + { + "description": "The provider type. Supported types are VirtualRouter (default) and VPCVirtualRouter", + "length": 255, + "name": "providertype", + "related": "listNetworkServiceProviders", + "required": false, + "type": "uuid" }, { - "description": "the project name of the vm", + "description": "the network service provider ID of the virtual router element", + "length": 255, + "name": "nspid", + "related": "listNetworkServiceProviders", + "required": true, + "type": "uuid" + } + ], + "related": "configureVirtualRouterElement,listVirtualRouterElements", + "response": [ + { + "description": "the project name of the address", "name": "project", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the domain ID associated with the provider", + "name": "domainid", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", + "description": "the account associated with the provider", + "name": "account", + "type": "string" + }, + {}, + { + "description": "path of the domain to which the provider belongs", "name": "domainpath", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the domain associated with the provider", + "name": "domain", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the project id of the vm", + "description": "the project id of the ipaddress", "name": "projectid", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "Enabled/Disabled the service provider", + "name": "enabled", + "type": "boolean" + }, + {}, + { + "description": "the physical network service provider id of the provider", + "name": "nspid", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the id of the router", + "name": "id", "type": "string" + } + ] + }, + { + "description": "Creates a VPC", + "isasync": true, + "name": "createVPC", + "params": [ + { + "description": "the CIDR size of VPC. For regular users, this is required for VPC with ROUTED mode.", + "length": 255, + "name": "cidrsize", + "required": false, + "since": "4.20.0", + "type": "integer" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the account associated with the VPC. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - } - ], - "type": "set" + "description": "If set to false, the VPC won't start (VPC VR will not get allocated) until its first network gets implemented. True by default.", + "length": 255, + "name": "start", + "required": false, + "since": "4.3", + "type": "boolean" }, { - "description": "User VM type", - "name": "vmtype", - "type": "string" + "description": "MTU to be configured on the network VR's public facing interfaces", + "length": 255, + "name": "publicmtu", + "required": false, + "since": "4.18.0", + "type": "integer" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "VPC network domain. All networks inside the VPC will belong to this domain", + "length": 255, + "name": "networkdomain", + "required": false, + "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the first IPv6 DNS for the VPC", + "length": 255, + "name": "ip6dns1", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" + "description": "an optional field, whether to the display the vpc to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the domain ID associated with the VPC. If used with the account parameter returns the VPC associated with the account for the specified domain.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "create VPC for the project", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the availability zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + }, + { + "description": "IPV4 address to be assigned to the public interface of the network router.This address will be used as source NAT address for the networks in ths VPC. \nIf an address is given and it cannot be acquired, an error will be returned and the network won´t be implemented,", + "length": 255, + "name": "sourcenatipaddress", + "required": false, + "since": "4.19", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the name of the VPC", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the second IPv4 DNS for the VPC", + "length": 255, + "name": "dns2", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "Ids of the Bgp Peer for the VPC", + "length": 255, + "name": "bgppeerids", + "related": "updateBgpPeer", + "required": false, + "since": "4.20.0", + "type": "list" + }, + { + "description": "the ID of the VPC offering", + "length": 255, + "name": "vpcofferingid", + "related": "updateVPCOffering", + "required": true, + "type": "uuid" + }, + { + "description": "the first IPv4 DNS for the VPC", + "length": 255, + "name": "dns1", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the AS Number of the VPC tiers", + "length": 255, + "name": "asnumber", + "required": false, + "since": "4.20.0", + "type": "long" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the second IPv6 DNS for the VPC", + "length": 255, + "name": "ip6dns2", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "The display text of the VPC, defaults to its 'name'.", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR", + "length": 255, + "name": "cidr", + "required": false, "type": "string" + } + ], + "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "response": [ + { + "description": "MTU configured on the public interfaces of the VPC VR", + "name": "publicmtu", + "type": "integer" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "if this VPC has redundant router", + "name": "redundantvpcrouter", + "type": "boolean" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the first IPv6 DNS for the VPC", + "name": "ip6dns1", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "state of the VPC. Can be Inactive/Enabled", + "name": "state", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "The routes for the VPC to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" + }, + { + "description": "is vpc for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the second IPv6 DNS for the VPC", + "name": "ip6dns2", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, + { + "description": "the list of networks belongign to the VPC", + "name": "network", + "type": "list" + }, {}, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", + "name": "distributedvpcrouter", "type": "boolean" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the date this VPC was created", + "name": "created", + "type": "date" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the id of the VPC", + "name": "id", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "an alternate display text of the VPC.", + "name": "displaytext", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the network domain of the VPC", + "name": "networkdomain", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the domain id of the VPC owner", + "name": "domainid", + "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, + {}, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the project name of the VPC", + "name": "project", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "zone id of the vpc", + "name": "zoneid", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "The BGP peers for the VPC", + "name": "bgppeers", + "type": "set" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "true VPC requires restart", + "name": "restartrequired", "type": "boolean" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the project id of the VPC", + "name": "projectid", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the owner of the VPC", + "name": "account", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the name of the zone the VPC belongs to", + "name": "zonename", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the cidr the VPC", + "name": "cidr", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "true if VPC is region level", + "name": "regionlevelvpc", + "type": "boolean" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the first IPv4 DNS for the VPC", + "name": "dns1", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the name of the VPC", + "name": "name", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" + "description": "the list of resource tags associated with the project", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + } + ], + "type": "list" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "The IPv4 routing mode of VPC", + "name": "ip4routing", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "vpc offering name the VPC is created from", + "name": "vpcofferingname", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the second IPv4 DNS for the VPC", + "name": "dns2", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "vpc offering id the VPC is created from", + "name": "vpcofferingid", "type": "string" }, - {} + { + "description": "the list of supported services", + "name": "service", + "response": [ + { + "description": "the service name", + "name": "name", + "type": "string" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + } + ], + "type": "list" + } + ], + "type": "list" + } ] }, { - "description": "Lists all available OS mappings for given hypervisor", - "isasync": false, - "name": "listGuestOsMapping", + "description": "Deletes a autoscale policy.", + "isasync": true, + "name": "deleteAutoScalePolicy", "params": [ { - "description": "list mapping by its UUID", + "description": "the ID of the autoscale policy", "length": 255, "name": "id", - "related": "listGuestOsMapping,addGuestOsMapping,updateGuestOsMapping", - "required": false, + "related": "listAutoScalePolicies,updateAutoScalePolicy", + "required": true, "type": "uuid" - }, + } + ], + "response": [ { - "description": "list Guest OS mapping by hypervisor version. Must be used with hypervisor parameter", - "length": 255, - "name": "hypervisorversion", - "required": false, - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "list Guest OS mapping by OS mapping name with hypervisor", - "length": 255, - "name": "osnameforhypervisor", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "list Guest OS mapping by hypervisor", - "length": 255, - "name": "hypervisor", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" - }, - { - "description": "list Guest OS mapping by OS display name", - "length": 255, - "name": "osdisplayname", - "required": false, - "type": "string" - }, + } + ] + }, + { + "description": "Deletes a role", + "isasync": false, + "name": "deleteRole", + "params": [ { - "description": "list mapping by Guest OS Type UUID", + "description": "ID of the role", "length": 255, - "name": "ostypeid", - "related": "addGuestOs", - "required": false, + "name": "id", + "related": "createRole,importRole,listRoles,updateRole", + "required": true, "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" } ], - "related": "addGuestOsMapping,updateGuestOsMapping", "response": [ { - "description": "hypervisor specific name for the Guest OS", - "name": "osnameforhypervisor", - "type": "string" - }, - { - "description": "the ID of the Guest OS mapping", - "name": "id", - "type": "string" - }, - { - "description": "the ID of the Guest OS type", - "name": "ostypeid", - "type": "string" - }, - { - "description": "is the mapping user defined", - "name": "isuserdefined", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { @@ -84373,43 +77365,25 @@ "type": "integer" }, { - "description": "standard display name for the Guest OS", - "name": "osdisplayname", - "type": "string" + "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": "version of the hypervisor for mapping", - "name": "hypervisorversion", - "type": "string" - }, - { - "description": "the hypervisor", - "name": "hypervisor", - "type": "string" - } + {}, + {} ], - "since": "4.4.0" + "since": "4.9.0" }, { - "description": "List all public, private, and privileged templates.", + "description": "List internal LB VMs.", "isasync": false, - "name": "listTemplates", + "name": "listInternalLoadBalancerVMs", "params": [ - { - "description": "the template ID", - "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "uuid" - }, { "description": "List by keyword", "length": 255, @@ -84418,9 +77392,9 @@ "type": "string" }, { - "description": "the hypervisor for which to restrict the search", + "description": "the state of the Internal LB VM", "length": 255, - "name": "hypervisor", + "name": "state", "required": false, "type": "string" }, @@ -84432,73 +77406,73 @@ "type": "boolean" }, { - "description": "ID of the image or image cache store", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "imagestoreid", - "related": "addSecondaryStorage,listSwifts,addImageStore", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "since": "4.19", "type": "uuid" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "the host ID of the Internal LB VM", "length": 255, - "name": "account", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "flag to list VNF templates or not; true if need to list VNF templates, false otherwise.", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "isvnf", + "name": "isrecursive", "required": false, - "since": "4.19.0", "type": "boolean" }, { - "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).", + "description": "List Internal LB VMs by VPC", "length": 255, - "name": "templatefilter", - "required": true, - "type": "string" + "name": "vpcid", + "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "", + "description": "if true is passed for this parameter, also fetch last executed health check results for the VM. Default is false", "length": 255, - "name": "page", + "name": "fetchhealthcheckresults", "required": false, - "type": "integer" + "since": "4.14", + "type": "boolean" }, { - "description": "list only resources belonging to the domain specified", + "description": "list by network id", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" }, { - "description": "the type of the template", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "templatetype", + "name": "account", "required": false, - "since": "4.19.0", "type": "string" }, { - "description": "List resources by tags (key/value pairs)", + "description": "", "length": 255, - "name": "tags", + "name": "page", "required": false, - "type": "map" + "type": "integer" }, { - "description": "comma separated list of template details requested, value can be a list of [ all, min]", + "description": "the Pod ID of the Internal LB VM", "length": 255, - "name": "details", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "since": "4.15", - "type": "list" + "type": "uuid" }, { "description": "", @@ -84508,625 +77482,811 @@ "type": "integer" }, { - "description": "list datadisk templates by parent template id", - "length": 255, - "name": "parenttemplateid", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "since": "4.4", - "type": "uuid" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the Zone ID of the Internal LB VM", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "show removed templates as well", - "length": 255, - "name": "showremoved", - "required": false, - "type": "boolean" - }, - { - "description": "ID of the storage pool", + "description": "the ID of the Internal LB VM", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", + "name": "id", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "since": "4.19", "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "if true is passed for this parameter, list only VPC Internal LB VMs", "length": 255, - "name": "isrecursive", + "name": "forvpc", "required": false, "type": "boolean" }, { - "description": "list templates by zoneId", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "flag to display the resource image for the templates", - "length": 255, - "name": "showicon", - "required": false, - "type": "boolean" - }, - { - "description": "the IDs of the templates, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,listTemplates,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "since": "4.9", - "type": "list" - }, - { - "description": "If set to true, list only unique templates across zones", - "length": 255, - "name": "showunique", - "required": false, - "since": "4.13.2", - "type": "boolean" - }, - { - "description": "the template name", + "description": "the name of the Internal LB VM", "length": 255, "name": "name", "required": false, "type": "string" - }, - { - "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", - "type": "string" } ], - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "destroyRouter,listRouters", "response": [ { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" - }, - { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" - }, - { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "the link local netmask for the router", + "name": "linklocalnetmask", "type": "string" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" - }, - { - "description": "the template display text", - "name": "displaytext", + "description": "the Zone name for the router", + "name": "zonename", "type": "string" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the public IP address for the router", + "name": "publicip", "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" - }, - { - "description": "the size of the template", - "name": "size", - "type": "long" - }, - { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "the network domain for the router", + "name": "networkdomain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", + "type": "string" }, { - "description": "the project name of the template", + "description": "the project name of the address", "name": "project", "type": "string" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", - "type": "string" + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", + "type": "boolean" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the version of scripts", + "name": "scriptsversion", "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "the template ID for the router", + "name": "templateid", + "type": "string" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", + "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the account associated with the router", + "name": "account", "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the second DNS for the router", + "name": "dns2", + "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "role of the domain router", + "name": "role", + "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "the public netmask for the router", + "name": "publicnetmask", + "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", + "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "the Zone ID for the router", + "name": "zoneid", + "type": "string" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", - "type": "string" - }, - { - "description": "the tag of this template", - "name": "templatetag", + "description": "the guest MAC address for the router", + "name": "guestmacaddress", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "the gateway for the router", + "name": "gateway", "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "the domain associated with the router", + "name": "domain", "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" - }, - { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" - }, - { - "description": "the template ID", - "name": "id", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, - {}, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, - {}, - { - "description": "the date this template was created", - "name": "created", - "type": "date" - }, { - "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 state of the router", + "name": "state", + "type": "state" }, { - "description": "the template name", + "description": "the name of the router", "name": "name", "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the ID of the domain to which the template belongs", + "description": "the domain ID associated with the router", "name": "domainid", "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the hostname for the router", + "name": "hostname", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of nics associated with the router", + "name": "nic", "response": [ { - "description": "tag key name", - "name": "key", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" } ], "type": "set" }, + {}, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", + "type": "string" + }, + { + "description": "path of the Domain the router belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the guest netmask for the router", + "name": "guestnetmask", + "type": "string" + }, + { + "description": "the version of template", + "name": "version", + "type": "string" + }, + { + "description": "the public MAC address for the router", + "name": "publicmacaddress", + "type": "string" + }, + { + "description": "the first DNS for the router", + "name": "dns1", + "type": "string" + }, + { + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", "type": "boolean" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "the control state of the host for the router", + "name": "hostcontrolstate", + "type": "string" }, + {}, { - "description": "checksum of the template", - "name": "checksum", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", + "type": "string" + }, + { + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" + }, + { + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "Last executed health check result for the router", + "name": "healthcheckresults", + "response": [ + { + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" + }, + { + "description": "result of the health check", + "name": "success", + "type": "boolean" + }, + { + "description": "the name of the health check on the router", + "name": "checkname", + "type": "string" + }, + { + "description": "the type of the health check - basic or advanced", + "name": "checktype", + "type": "string" + }, + { + "description": "detailed response generated on running health check", + "name": "details", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the state of redundant virtual router", + "name": "redundantstate", + "type": "string" + }, + { + "description": "the link local IP address for the router", + "name": "linklocalip", + "type": "string" + }, + { + "description": "the guest IP address for the router", + "name": "guestipaddress", "type": "string" } ] }, { - "description": "create Tungsten-Fabric policy", + "description": "Removes detail for the Resource.", "isasync": true, - "name": "createTungstenFabricPolicy", + "name": "removeResourceDetail", "params": [ { - "description": "the ID of zone", + "description": "Delete detail by resource type", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "resourcetype", "required": true, - "type": "uuid" + "type": "string" + }, + { + "description": "Delete details matching key/value pairs", + "length": 255, + "name": "key", + "required": false, + "type": "string" }, { - "description": "Tungsten-Fabric policy name", + "description": "Delete details for resource id", "length": 255, - "name": "name", + "name": "resourceid", "required": true, "type": "string" } ], - "related": "listTungstenFabricPolicy", "response": [ { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" - }, - {}, - { - "description": "Tungsten-Fabric policy name", - "name": "name", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, {}, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "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": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } + {} ] }, { - "description": "deletes a range of Autonomous Systems for BGP Dynamic Routing", - "isasync": false, - "name": "deleteASNRange", + "description": "Execute DRS for a cluster. If there is another plan in progress for the same cluster, this command will fail.", + "isasync": true, + "name": "executeClusterDrsPlan", "params": [ { - "description": "ID of the AS range", + "description": "ID of cluster", "length": 255, "name": "id", - "related": "", + "related": "addCluster,updateCluster", "required": true, "type": "uuid" + }, + { + "description": "Virtual Machine to destination host mapping. This parameter specifies the mapping between a vm and a host to migrate that VM. clusterid is required if this parameter is set.Format of this parameter: migrateto[vm-index].vm=&migrateto[vm-index].host= Where, [vm-index] indicates the index to identify the vm that you want to migrate, vm= indicates the UUID of the vm that you want to migrate, and host= indicates the UUID of the host where you want to migrate the vm. Example: migrateto[0].vm=<71f43cd6-69b0-4d3b-9fbc-67f50963d60b>&migrateto[0].host=&migrateto[1].vm=<88de0173-55c0-4c1c-a269-83d0279eeedf>&migrateto[1].host=<95d6e97c-6766-4d67-9a30-c449c15011d1>&migrateto[2].vm=<1b331390-59f2-4796-9993-bf11c6e76225>&migrateto[2].host=<41fdb564-9d3b-447d-88ed-7628f7640cbc>", + "length": 255, + "name": "migrateto", + "required": false, + "type": "map" } ], + "related": "", "response": [ - {}, + { + "description": "Status of DRS Plan", + "name": "status", + "type": "status" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Start event Id of the DRS Plan", + "name": "eventid", + "type": "string" + }, + { + "description": "Id of the cluster", + "name": "clusterid", + "type": "string" + }, { "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": "unique ID of the drs plan for cluster", + "name": "id", + "type": "string" }, + {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "Type of DRS Plan (Automated or Manual))", + "name": "type", + "type": "type" }, + {}, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "List of migrations", + "name": "migrations", + "type": "list" } ], - "since": "4.20.0" + "since": "4.19.0" }, { - "description": "Creates a bucket in the specified object storage pool. ", - "isasync": true, - "name": "createBucket", + "description": "Lists all supported OS types for this cloud.", + "isasync": false, + "name": "listOsTypes", "params": [ { - "description": "Enable object locking in bucket", + "description": "list os by description", "length": 255, - "name": "objectlocking", + "name": "description", + "required": false, + "since": "3.0.1", + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", "required": false, + "since": "4.18.1", "type": "boolean" }, { - "description": "Bucket Quota in GB", + "description": "", "length": 255, - "name": "quota", + "name": "page", "required": false, "type": "integer" }, { - "description": "Id of the Object Storage Pool where bucket is created", + "description": "list by Os type Id", "length": 255, - "name": "objectstorageid", - "related": "addObjectStoragePool", - "required": true, + "name": "id", + "related": "listOsTypes,addGuestOs", + "required": false, "type": "uuid" }, { - "description": "the name of the bucket", + "description": "list by Os Category id", "length": 255, - "name": "name", - "required": true, - "type": "string" + "name": "oscategoryid", + "related": "listOsCategories", + "required": false, + "type": "uuid" }, { - "description": "Enable bucket versioning", + "description": "List by keyword", "length": 255, - "name": "versioning", + "name": "keyword", "required": false, + "type": "string" + } + ], + "related": "addGuestOs", + "response": [ + { + "description": "is the guest OS visible for the users", + "name": "fordisplay", "type": "boolean" }, { - "description": "the account associated with the bucket. Must be used with the domainId parameter.", + "description": "the name of the OS type", + "name": "name", + "type": "string" + }, + {}, + { + "description": "the ID of the OS category", + "name": "oscategoryid", + "type": "string" + }, + { + "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": "the ID of the OS type", + "name": "id", + "type": "string" + }, + { + "description": "the name/description of the OS type", + "name": "description", + "type": "string" + }, + {}, + { + "description": "is the guest OS user defined", + "name": "isuserdefined", + "type": "boolean" + }, + { + "description": "the name of the OS category", + "name": "oscategoryname", + "type": "string" + } + ] + }, + { + "description": "Deletes a particular egress rule from this security group", + "isasync": true, + "name": "revokeSecurityGroupEgress", + "params": [ + { + "description": "The ID of the egress rule", "length": 255, - "name": "account", - "required": false, + "name": "id", + "related": "authorizeSecurityGroupIngress", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "Enable bucket encryption", - "length": 255, - "name": "encryption", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the domain ID associated with the bucket. If used with the account parameter returns the bucket associated with the account for the specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "3.0.0" + }, + { + "description": "Removes a Guest OS from listing.", + "isasync": true, + "name": "removeGuestOs", + "params": [ { - "description": "the project associated with the bucket. Mutually exclusive with account parameter", + "description": "ID of the guest OS", "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, + "name": "id", + "related": "addGuestOs", + "required": true, "type": "uuid" - }, - { - "description": "The Bucket access policy", - "length": 255, - "name": "policy", - "required": false, - "type": "string" } ], - "related": "listBuckets", "response": [ { - "description": "Bucket Object Locking", - "name": "objectlocking", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -85137,424 +78297,541 @@ "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - }, + } + ], + "since": "4.4.0" + }, + { + "description": "Uploads an icon for the specified resource(s)", + "isasync": false, + "name": "uploadResourceIcon", + "params": [ { - "description": "ID of the Bucket", - "name": "id", + "description": "type of the resource", + "length": 255, + "name": "resourcetype", + "required": true, "type": "string" }, { - "description": "path of the domain to which the bucket belongs", - "name": "domainpath", - "type": "string" + "description": "list of resources to upload the icon/image for", + "length": 255, + "name": "resourceids", + "required": true, + "type": "list" }, { - "description": "the domain associated with the bucket", - "name": "domain", + "description": "Base64 string representation of the resource icon/image", + "length": 2097152, + "name": "base64image", + "required": true, "type": "string" - }, + } + ], + "response": [ { - "description": "Object storage provider", - "name": "provider", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "Bucket Access Key", - "name": "accesskey", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Bucket Secret Key", - "name": "usersecretkey", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "State of the Bucket", - "name": "state", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, + {} + ], + "since": "4.16.0.0" + }, + { + "description": "Detaches any ISO file (if any) currently attached to a virtual machine.", + "isasync": true, + "name": "detachIso", + "params": [ { - "description": "Bucket Access Policy", - "name": "policy", - "type": "string" + "description": "The ID of the virtual machine", + "length": 255, + "name": "virtualmachineid", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" }, { - "description": "Total size of objects in Bucket", - "name": "size", - "type": "long" - }, + "description": "If true, ejects the ISO before detaching on VMware. Default: false", + "length": 255, + "name": "forced", + "required": false, + "since": "4.15.1", + "type": "boolean" + } + ], + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ { - "description": "name of the Bucket", - "name": "name", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "tag key name", - "name": "key", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the project id the tag belongs to", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + } + ], + "type": "set" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project ID of the affinity group", "name": "projectid", "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" } ], "type": "set" }, { - "description": "Bucket Encryption", - "name": "encryption", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, - {}, { - "description": "the ID of the domain associated with the bucket", - "name": "domainid", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "the project id of the bucket", - "name": "projectid", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "Bucket URL", - "name": "url", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the project name of the bucket", + "description": "the project name of the vm", "name": "project", "type": "string" }, { - "description": "the date the Bucket was created", - "name": "created", - "type": "date" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { - "description": "Name of the object storage hosting the Bucket; returned to admin user only", - "name": "objectstore", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "id of the object storage hosting the Bucket; returned to admin user only", - "name": "objectstorageid", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "Bucket Quota in GB", - "name": "quota", - "type": "integer" + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" }, { - "description": "Bucket Versioning", - "name": "versioning", - "type": "boolean" + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" }, { - "description": "the account associated with the Bucket", + "description": "the account associated with the virtual machine", "name": "account", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Lists physical networks", - "isasync": false, - "name": "listPhysicalNetworks", - "params": [ - { - "description": "search by name", - "length": 255, - "name": "name", - "required": false, - "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the state of the virtual machine", + "name": "state", + "type": "string" }, { - "description": "the Zone ID for the physical network", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the project id of the vm", + "name": "projectid", + "type": "string" }, { - "description": "list physical network by id", - "length": 255, - "name": "id", - "related": "listPhysicalNetworks,updatePhysicalNetwork", - "required": false, - "type": "uuid" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "updatePhysicalNetwork", - "response": [ - { - "description": "isolation methods", - "name": "isolationmethods", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "Broadcast domain range of the physical network", - "name": "broadcastdomainrange", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "zone id of the physical network", - "name": "zoneid", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "comma separated tag", - "name": "tags", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, - {}, { - "description": "the uuid of the physical network", - "name": "id", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "state of the physical network", - "name": "state", - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the vlan of the physical network", - "name": "vlan", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the domain id of the physical network owner", - "name": "domainid", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the speed of the physical network", - "name": "networkspeed", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "name of the physical network", - "name": "name", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "zone name of the physical network", - "name": "zonename", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, - {} - ], - "since": "3.0.0" - }, - { - "description": "Lists all firewall rules for an IP address.", - "isasync": false, - "name": "listFirewallRules", - "params": [ { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the name of the virtual machine", + "name": "name", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", + "type": "string" }, { - "description": "Lists rule with the specified ID.", - "length": 255, - "name": "id", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": false, - "type": "uuid" + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, + {}, { - "description": "list firewall rules for certain network", - "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "since": "4.3", - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the ID of IP address of the firewall services", - "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" - }, - { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" - } - ], - "related": "createFirewallRule,updateEgressFirewallRule", - "response": [ + }, { - "description": "the ID of the firewall rule", - "name": "id", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the public ip address for the firewall rule", - "name": "ipaddress", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { @@ -85562,28 +78839,29 @@ "name": "jobid", "type": "string" }, + {}, { - "description": "the network id of the firewall rule", - "name": "networkid", - "type": "string" - }, - { - "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", - "name": "destcidrlist", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the list of resource tags associated with the rule", + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -85597,387 +78875,633 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], - "type": "list" + "type": "set" }, - {}, { - "description": "the public ip address id for the firewall rule", - "name": "ipaddressid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, - {}, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, { - "description": "the traffic type for the firewall rule", - "name": "traffictype", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the protocol of the firewall rule", - "name": "protocol", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the ending port of firewall rule's port range", - "name": "endport", - "type": "integer" + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" }, { - "description": "the starting port of firewall rule's port range", - "name": "startport", - "type": "integer" + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" }, { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" - } - ] - }, - { - "description": " delete a Brocade VCS Switch", - "isasync": true, - "name": "deleteBrocadeVcsDevice", - "params": [ - { - "description": "Brocade Switch ID", - "length": 255, - "name": "vcsdeviceid", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, - {} - ] - }, - { - "description": "Lists all Routing firewall rules", - "isasync": false, - "name": "listRoutingFirewallRules", - "params": [ { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "list Routing firewall rules by traffic type - ingress or egress", - "length": 255, - "name": "traffictype", - "required": false, + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "list Routing firewall rules by network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "type": "uuid" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "type": "boolean" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "Lists Routing firewall rule with the specified ID", - "length": 255, - "name": "id", - "related": "listRoutingFirewallRules,createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "required": false, - "type": "uuid" - } - ], - "related": "createPortForwardingRule,updatePortForwardingRule,createIpForwardingRule", - "response": [ + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "the ID of the port forwarding rule", - "name": "id", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, - {}, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the security group", + "name": "id", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { - "description": "tag key name", - "name": "key", + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project name of the group", + "name": "project", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the account owning the security group", + "name": "account", "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" } ], - "type": "list" + "type": "set" }, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" - }, + } + ] + }, + { + "description": "Deletes an existing IPv4 subnet for a zone.", + "isasync": true, + "name": "deleteIpv4SubnetForZone", + "params": [ { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, + "description": "Id of the guest network IPv4 subnet", + "length": 255, + "name": "id", + "related": "createIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the state of the rule", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, {}, + {}, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", - "type": "string" - }, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", - "type": "string" - }, - { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -85988,239 +79512,103 @@ "since": "4.20.0" }, { - "description": "Extracts an ISO", + "description": "Creates a guest network IPv6 prefix.", "isasync": true, - "name": "extractIso", + "name": "createGuestNetworkIpv6Prefix", "params": [ { - "description": "the URL to which the ISO would be extracted", - "length": 2048, - "name": "url", - "required": false, - "type": "string" - }, - { - "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD", - "length": 255, - "name": "mode", - "required": true, - "type": "string" - }, - { - "description": "the ID of the ISO file", + "description": "UUID of zone to which the IPv6 prefix belongs to.", "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": true, "type": "uuid" }, { - "description": "the ID of the zone where the ISO is originally located", + "description": "The /56 or higher IPv6 CIDR for network prefix.", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "name": "prefix", + "required": true, + "type": "string" } ], - "related": "extractSnapshot,extractTemplate,downloadImageStoreObject", + "related": "listGuestNetworkIpv6Prefixes", "response": [ { - "description": "the upload id of extracted object", - "name": "extractId", - "type": "string" - }, - { - "description": "zone ID the object was extracted from", - "name": "zoneid", - "type": "string" - }, - { - "description": "", - "name": "resultstring", - "type": "string" - }, - { - "description": "the id of extracted object", + "description": "id of the guest IPv6 prefix", "name": "id", "type": "string" }, { - "description": "the state of the extracted object", - "name": "state", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the time and date the object was created", - "name": "created", - "type": "date" - }, - { - "description": "the status of the extraction", - "name": "status", + "description": "guest IPv6 prefix", + "name": "prefix", "type": "string" }, { - "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", - "name": "url", - "type": "string" + "description": "count of the available IPv6 subnets for the prefix.", + "name": "availablesubnets", + "type": "integer" }, { - "description": "the mode of extraction - upload or download", - "name": "extractMode", + "description": "id of zone to which the IPv6 prefix belongs to.", + "name": "zoneid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the percentage of the entity uploaded to the specified location", - "name": "uploadpercentage", + "description": "count of the total IPv6 subnets for the prefix.", + "name": "totalsubnets", "type": "integer" }, - { - "description": "type of the storage", - "name": "storagetype", - "type": "string" - }, {}, { - "description": "zone name the object was extracted from", - "name": "zonename", - "type": "string" - }, - { - "description": "the name of the extracted object", - "name": "name", - "type": "string" + "description": "count of the used IPv6 subnets for the prefix.", + "name": "usedsubnets", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": " date when this IPv6 prefix was created.", + "name": "created", + "type": "date" }, - {}, { - "description": "the account id to which the extracted object belongs", - "name": "accountid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } - ] + ], + "since": "4.17.0.0" }, { - "description": "Creates an affinity/anti-affinity group", + "description": " delete a Palo Alto firewall device", "isasync": true, - "name": "createAffinityGroup", + "name": "deletePaloAltoFirewall", "params": [ { - "description": "an account for the affinity group. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "domainId of the account owning the affinity group", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "optional description of the affinity group", - "length": 255, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "create affinity group for project", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" - }, - { - "description": "name of the affinity group", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "Type of the affinity group from the available affinity/anti-affinity group types", + "description": "Palo Alto firewall device ID", "length": 255, - "name": "type", + "name": "fwdeviceid", + "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls", "required": true, - "type": "string" + "type": "uuid" } ], - "related": "", "response": [ + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - {}, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -86228,86 +79616,94 @@ "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, {} ] }, { - "description": "Logs a user into the CloudStack after successful verification of OAuth secret code from the particular provider.A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the \"logout\" command has been issued or the session has expired.", + "description": "Executes a Webhook delivery", "isasync": false, - "name": "oauthlogin", + "name": "executeWebhookDelivery", "params": [ { - "description": "Code that is provided by OAuth provider (Eg. google, github) after successful login", + "description": "Secret key of the Webhook delivery", "length": 255, - "name": "secretcode", + "name": "secretkey", "required": false, "type": "string" }, { - "description": "Name of the provider", + "description": "The ID of the Webhook delivery for redelivery", "length": 255, - "name": "provider", - "required": true, + "name": "id", + "related": "executeWebhookDelivery", + "required": false, + "type": "uuid" + }, + { + "description": "Payload of the Webhook delivery", + "length": 255, + "name": "payload", + "required": false, "type": "string" }, { - "description": "Email id with which user tried to login using OAuth provider", + "description": "Payload URL of the Webhook delivery", "length": 255, - "name": "email", - "required": true, + "name": "payloadurl", + "required": false, "type": "string" }, { - "description": "The id of the domain that the user belongs to. If both domain and domainId are passed in, \"domainId\" parameter takes precedence.", + "description": "If set to true then SSL verification will be done for the Webhook delivery otherwise not", "length": 255, - "name": "domainId", + "name": "sslverification", "required": false, - "type": "long" + "type": "boolean" }, { - "description": "Path of the domain that the user belongs to. Example: domain=/com/cloud/internal. If no domain is passed in, the ROOT (/) domain is assumed.", + "description": "The ID of the Webhook", "length": 255, - "name": "domain", + "name": "webhookid", + "related": "createWebhook,listWebhookDeliveries", "required": false, - "type": "string" + "type": "uuid" } ], "related": "", "response": [ {}, { - "description": "Session key that can be passed in subsequent Query command calls", - "name": "sessionkey", + "description": "The name of the Webhook", + "name": "webhookname", "type": "string" }, { - "description": "Is two factor authentication enabled", - "name": "is2faenabled", + "description": "The ID of the event", + "name": "eventid", "type": "string" }, { - "description": "the account type (admin, domain-admin, read-only-admin, user)", - "name": "type", + "description": "The name of the management server which executed delivery", + "name": "managementservername", "type": "string" }, { - "description": "Username", - "name": "username", - "type": "string" + "description": "The start time of the Webhook delivery", + "name": "startdate", + "type": "date" }, - {}, { - "description": "last name of the user", - "name": "lastname", + "description": "The ID of the Webhook", + "name": "webhookid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "The payload of the webhook delivery", + "name": "payload", "type": "string" }, { @@ -86316,121 +79712,64 @@ "type": "integer" }, { - "description": "User ID", - "name": "userid", - "type": "string" - }, - { - "description": "Is two factor authentication verified", - "name": "is2faverified", - "type": "string" - }, - { - "description": "Domain ID that the user belongs to", - "name": "domainid", + "description": "The type of the event", + "name": "eventtype", "type": "string" }, { - "description": "the account name the user belongs to", - "name": "account", - "type": "string" + "description": "The end time of the Webhook delivery", + "name": "enddate", + "type": "date" }, + {}, { - "description": "Is user registered", - "name": "registered", - "type": "string" + "description": "Whether Webhook delivery succeeded or not", + "name": "success", + "type": "boolean" }, { - "description": "user time zoneoffset", - "name": "timezoneoffset", + "description": "The ID of the Webhook delivery", + "name": "id", "type": "string" }, { - "description": "the time period before the session has expired", - "name": "timeout", - "type": "integer" - }, - { - "description": "Two factor authentication issuer", - "name": "issuerfor2fa", + "description": "The ID of the management server which executed delivery", + "name": "managementserverid", "type": "string" }, { - "description": "user time zone", - "name": "timezone", + "description": "The headers of the webhook delivery", + "name": "headers", "type": "string" }, { - "description": "Two factor authentication provider", - "name": "providerfor2fa", + "description": "The response of the webhook delivery", + "name": "response", "type": "string" }, { - "description": "first name of the user", - "name": "firstname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ], - "since": "4.19.0" + "since": "4.20.0" }, { - "description": "Lists all available Internal Load Balancer elements.", + "description": "Deletes a Pod.", "isasync": false, - "name": "listInternalLoadBalancerElements", + "name": "deletePod", "params": [ { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list internal load balancer elements by enabled state", - "length": 255, - "name": "enabled", - "required": false, - "type": "boolean" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "list internal load balancer elements by id", + "description": "the ID of the Pod", "length": 255, "name": "id", - "related": "listInternalLoadBalancerElements", - "required": false, - "type": "uuid" - }, - { - "description": "list internal load balancer elements by network service provider id", - "length": 255, - "name": "nspid", - "related": "addNetworkServiceProvider,listTrafficTypes", - "required": false, + "related": "updatePod,createManagementNetworkIpRange", + "required": true, "type": "uuid" } ], - "related": "", "response": [ - {}, - { - "description": "the id of the internal load balancer element", - "name": "id", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -86441,45 +79780,45 @@ "name": "jobid", "type": "string" }, + {}, { - "description": "the physical network service provider id of the element", - "name": "nspid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, {}, { - "description": "Enabled/Disabled the element", - "name": "enabled", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" } - ], - "since": "4.2.0" + ] }, { - "description": "Gets the guest OS names in the hypervisor", - "isasync": true, - "name": "getHypervisorGuestOsNames", + "description": "Lists all DeploymentPlanners available.", + "isasync": false, + "name": "listDeploymentPlanners", "params": [ { - "description": "Hypervisor version to get the guest os names (atleast one hypervisor host with the version specified must be available)", + "description": "", "length": 255, - "name": "hypervisorversion", - "required": true, - "type": "string" + "name": "page", + "required": false, + "type": "integer" }, { - "description": "Hypervisor type. One of : VMware, XenServer", + "description": "List by keyword", "length": 255, - "name": "hypervisor", - "required": true, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "Keyword for guest os name", + "description": "", "length": 255, - "name": "keyword", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" } ], "related": "", @@ -86490,1315 +79829,575 @@ "type": "integer" }, {}, - { - "description": "version of the hypervisor for guest os names", - "name": "hypervisorversion", - "type": "string" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, - { - "description": "the guest OS count of the hypervisor", - "name": "guestoscount", - "type": "integer" - }, { - "description": "the hypervisor", - "name": "hypervisor", + "description": "Deployment Planner name", + "name": "name", "type": "string" }, - { - "description": "the guest OS list of the hypervisor", - "name": "guestoslist", - "response": [ - { - "description": "hypervisor specific name for the Guest OS", - "name": "osnameforhypervisor", - "type": "string" - }, - { - "description": "standard display name for the Guest OS", - "name": "osdisplayname", - "type": "string" - } - ], - "type": "list" - } - ], - "since": "4.19.0" + {} + ] }, { - "description": "Create Tungsten-Fabric provider in cloudstack", + "description": "Creates a role", "isasync": false, - "name": "createTungstenFabricProvider", + "name": "createRole", "params": [ { - "description": "Tungsten-Fabric provider vrouter port", + "description": "The description of the role", "length": 255, - "name": "tungstenprovidervrouterport", + "name": "description", "required": false, "type": "string" }, { - "description": "Tungsten-Fabric provider gateway", + "description": "ID of the role to be cloned from. Either roleid or type must be passed in", "length": 255, - "name": "tungstengateway", - "required": true, - "type": "string" + "name": "roleid", + "related": "createRole,importRole,listRoles,updateRole", + "required": false, + "type": "uuid" }, { - "description": "Tungsten-Fabric provider port", + "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User", "length": 255, - "name": "tungstenproviderport", + "name": "type", "required": false, "type": "string" }, { - "description": "Tungsten-Fabric provider hostname", + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). Default is true.", "length": 255, - "name": "tungstenproviderhostname", - "required": true, - "type": "string" + "name": "ispublic", + "required": false, + "type": "boolean" }, { - "description": "Tungsten-Fabric provider name", + "description": "Creates a role with this unique name", "length": 255, "name": "name", "required": true, "type": "string" - }, - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - }, - { - "description": "Tungsten-Fabric provider introspect port", - "length": 255, - "name": "tungstenproviderintrospectport", - "required": false, - "type": "string" } ], - "related": "", + "related": "importRole,listRoles,updateRole", "response": [ { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric provider port", - "name": "tungstenproviderport", - "type": "string" - }, - {}, - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the type of the role", + "name": "type", "type": "string" }, {}, { - "description": "Tungsten-Fabric provider name", - "name": "name", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider gateway", - "name": "tungstengateway", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider vrouter port", - "name": "tungstenprovidervrouterport", - "type": "string" - }, - { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", - "type": "boolean" - }, - { - "description": "Tungsten-Fabric provider hostname", - "name": "tungstenproviderhostname", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider introspect port", - "name": "tungstenproviderintrospectport", - "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", - "name": "jobid", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider uuid", - "name": "tungstenprovideruuid", - "type": "string" - } - ] - }, - { - "description": "Reboots a virtual machine.", - "isasync": true, - "name": "rebootVirtualMachine", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - }, - { - "description": "Boot into hardware setup menu or not", - "length": 255, - "name": "bootintosetup", - "required": false, - "since": "4.15.0.0", - "type": "boolean" - }, - { - "description": "Force reboot the VM (VM is Stopped and then Started)", - "length": 255, - "name": "forced", - "required": false, - "since": "4.16.0", + "description": "true if role is default, false otherwise", + "name": "isdefault", "type": "boolean" - } - ], - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" - }, - { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, - { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "the project name of the vm", - "name": "project", - "type": "string" - }, - { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" - }, - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the name of the role", + "name": "name", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the state of the role", + "name": "state", "type": "string" }, + {}, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the ID of the role", + "name": "id", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the description of the role", + "name": "description", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", + "type": "boolean" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.9.0" + }, + { + "description": "Deletes a cluster.", + "isasync": false, + "name": "deleteCluster", + "params": [ + { + "description": "the cluster ID", + "length": 255, + "name": "id", + "related": "addCluster,updateCluster", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "Prepares a host for maintenance.", + "isasync": true, + "name": "prepareHostForMaintenance", + "params": [ + { + "description": "the host ID", + "length": 255, + "name": "id", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,prepareHostForMaintenance,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", + "response": [ + { + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "capabilities of the host", + "name": "capabilities", + "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - } - ], - "type": "set" + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", + "type": "long" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the total disk size of the host", + "name": "disksizetotal", "type": "long" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the Pod name of the host", + "name": "podname", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the Pod ID of the host", + "name": "podid", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", "type": "boolean" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "set" + "description": "the OS category name of the host", + "name": "oscategoryname", + "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" }, { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", + "type": "boolean" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" + }, + { + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" + }, + { + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, {}, { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the amount of the host's CPU currently used", + "name": "cpuused", + "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "CPU Arch of the host", + "name": "arch", + "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", "type": "long" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" + "description": "the state of the host", + "name": "state", + "type": "status" }, { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - } - ], - "type": "set" + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" }, + {}, { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" }, - {}, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", "type": "long" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", + "description": "GPU cards present in the host", + "name": "gpugroup", "response": [ { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", + "description": "GPU cards present in the host", + "name": "gpugroupname", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", + "description": "the list of enabled vGPUs", + "name": "vgpu", "response": [ { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" }, { - "description": "tag value", - "name": "value", - "type": "string" + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "Model Name of vGPU", + "name": "vgputype", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" }, { - "description": "tag key name", - "name": "key", - "type": "string" + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" }, { - "description": "the account associated with the tag", - "name": "account", - "type": "string" + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" } ], - "type": "set" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" + "type": "list" } ], - "type": "set" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" + "type": "list" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", "type": "long" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - }, - { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the host version", + "name": "version", + "type": "string" }, - {}, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the cluster name of the host", + "name": "clustername", + "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "the amount of the host's memory currently used", + "name": "memoryused", "type": "long" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" } ] }, { - "description": "Enables HA cluster-wide", - "isasync": true, - "name": "enableHAForCluster", + "description": "Removes specified region", + "isasync": false, + "name": "removeRegion", "params": [ { - "description": "ID of the cluster", + "description": "ID of the region to delete", "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", + "name": "id", "required": true, - "type": "uuid" + "type": "integer" } ], "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", @@ -87809,44 +80408,34 @@ "name": "jobstatus", "type": "integer" }, + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {}, {}, { "description": "any text associated with the success or failure", "name": "displaytext", "type": "string" } - ], - "since": "4.11" + ] }, { - "description": "Add VMs to an ExternalManaged kubernetes cluster. Not applicable for CloudManaged kubernetes clusters.", + "description": "Get Volume's iSCSI Name", "isasync": false, - "name": "addVirtualMachinesToKubernetesCluster", + "name": "getVolumeiScsiName", "params": [ { - "description": "the IDs of the VMs to add to the cluster", - "length": 255, - "name": "virtualmachineids", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "list" - }, - { - "description": "the ID of the Kubernetes cluster", + "description": "CloudStack Volume UUID", "length": 255, - "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", + "name": "volumeid", "required": true, - "type": "uuid" - }, - { - "description": "Is control node or not? Defaults to false.", - "length": 255, - "name": "iscontrolnode", - "required": false, - "type": "boolean" + "type": "string" } ], + "related": "", "response": [ { "description": "the UUID of the latest async job acting on this object", @@ -87854,210 +80443,280 @@ "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Volume iSCSI Name", + "name": "volumeiScsiName", + "type": "string" }, {}, {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } - ], - "since": "4.19.0" + ] }, { - "description": "list Tungsten-Fabric logical router", + "description": "Upload a data disk to the cloudstack cloud.", "isasync": false, - "name": "listTungstenFabricLogicalRouter", + "name": "getUploadParamsForVolume", "params": [ { - "description": "", + "description": "Upload volume/template/iso for the project", "length": 255, - "name": "pagesize", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "", + "description": "the name of the volume/template/iso", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "name", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "an optional accountName. Must be used with domainId.", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" }, { - "description": "the ID of zone", + "description": "the ID of the zone the volume/template/iso is to be hosted on", "length": 255, "name": "zoneid", - "related": "listZones", - "required": false, + "related": "createZone,updateZone,listZones,listZones", + "required": true, "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric network", + "description": "the checksum value of this volume/template/iso The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", "length": 255, - "name": "networkuuid", + "name": "checksum", "required": false, "type": "string" }, { - "description": "the uuid of Tungsten-Fabric logical router", + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "logicalrouteruuid", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" - } - ], - "related": "createTungstenFabricLogicalRouter,removeTungstenFabricNetworkGatewayFromLogicalRouter", - "response": [ + "type": "uuid" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Image store uuid", + "length": 255, + "name": "imagestoreuuid", + "required": false, "type": "string" }, { - "description": "Tungsten-Fabric logical router name", - "name": "name", - "type": "string" + "description": "the ID of the disk offering. This must be a custom sized offering since during upload of volume/template size is unknown.", + "length": 255, + "name": "diskofferingid", + "related": "createDiskOffering,listDiskOfferings", + "required": false, + "type": "uuid" }, + { + "description": "the format for the volume/template/iso. Possible values include QCOW2, OVA, and VHD.", + "length": 255, + "name": "format", + "required": true, + "type": "string" + } + ], + "related": "getUploadParamsForTemplate,getUploadParamsForIso", + "response": [ + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "the timestamp after which the signature expires", + "name": "expires", + "type": "string" }, - {}, - {}, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "encrypted data to be sent in the POST request.", + "name": "metadata", + "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "signature to be sent in the POST request.", + "name": "signature", "type": "string" }, { - "description": "Tungsten-Fabric logical router uuid", - "name": "uuid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - } - ] + }, + { + "description": "POST url to upload the file to", + "name": "postURL", + "type": "url" + }, + { + "description": "the template/volume ID", + "name": "id", + "type": "uuid" + }, + {} + ], + "since": "4.6.0" }, { - "description": "Adds a guest OS name to hypervisor OS name mapping", + "description": "Updates an existing autoscale vm group.", "isasync": true, - "name": "addGuestOsMapping", + "name": "updateAutoScaleVmGroup", "params": [ { - "description": "UUID of Guest OS type. Either the UUID or Display Name must be passed", + "description": "an optional field, whether to the display the group to the end user or not", "length": 255, - "name": "ostypeid", - "related": "addGuestOs", + "name": "fordisplay", "required": false, - "type": "uuid" + "since": "4.4", + "type": "boolean" }, { - "description": "Display Name of Guest OS standard type. Either Display Name or UUID must be passed", + "description": "the name of the autoscale vmgroup", "length": 255, - "name": "osdisplayname", + "name": "name", "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "When set to true, checks for the correct guest os mapping name in the provided hypervisor (supports VMware and XenServer only. At least one hypervisor host with the version specified must be available. Default version will not work.)", + "description": "list of scaledown autoscale policies", "length": 255, - "name": "osmappingcheckenabled", + "name": "scaledownpolicyids", + "related": "listAutoScalePolicies,updateAutoScalePolicy", "required": false, - "since": "4.19.0", - "type": "boolean" + "type": "list" }, { - "description": "Forces add user defined guest os mapping, overrides any existing user defined mapping", + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", "length": 255, - "name": "forced", + "name": "minmembers", "required": false, - "since": "4.19.0", - "type": "boolean" + "type": "integer" }, { - "description": "Hypervisor type. One of : XenServer, KVM, VMWare", + "description": "list of scaleup autoscale policies", "length": 255, - "name": "hypervisor", - "required": true, - "type": "string" + "name": "scaleuppolicyids", + "related": "listAutoScalePolicies,updateAutoScalePolicy", + "required": false, + "type": "list" }, { - "description": "Hypervisor version to create the mapping. Use 'default' for default versions. Please check hypervisor capabilities for correct version", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "hypervisorversion", - "required": true, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "OS name specific to the hypervisor", + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", "length": 255, - "name": "osnameforhypervisor", + "name": "maxmembers", + "required": false, + "type": "integer" + }, + { + "description": "the ID of the autoscale group", + "length": 255, + "name": "id", + "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups,updateAutoScaleVmGroup", "required": true, - "type": "string" + "type": "uuid" + }, + { + "description": "the frequency in which the performance counters to be collected", + "length": 255, + "name": "interval", + "required": false, + "type": "integer" } ], - "related": "updateGuestOsMapping", + "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups", "response": [ { - "description": "the hypervisor", - "name": "hypervisor", + "description": "list of scaledown autoscale policies", + "name": "scaledownpolicies", + "type": "list" + }, + { + "description": "is group for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the name of the autoscale vm group ", + "name": "name", "type": "string" }, { - "description": "is the mapping user defined", - "name": "isuserdefined", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "standard display name for the Guest OS", - "name": "osdisplayname", + "description": "the public ip address", + "name": "publicip", + "type": "string" + }, + { + "description": "the load balancer rule ID", + "name": "lbruleid", "type": "string" }, {}, { - "description": "the ID of the Guest OS mapping", - "name": "id", + "description": "list of scaleup autoscale policies", + "name": "scaleuppolicies", + "type": "list" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the lb provider of the guest network the lb rule belongs to", + "name": "lbprovider", "type": "string" }, { - "description": "version of the hypervisor for mapping", - "name": "hypervisorversion", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, - {}, { - "description": "hypervisor specific name for the Guest OS", - "name": "osnameforhypervisor", + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", + "name": "maxmembers", + "type": "int" + }, + { + "description": "the account owning the vm group", + "name": "account", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the guest network the lb rule belongs to", + "name": "associatednetworkname", + "type": "string" + }, + { + "description": "the id of the guest network the lb rule belongs to", + "name": "associatednetworkid", "type": "string" }, { @@ -88066,381 +80725,333 @@ "type": "integer" }, { - "description": "the ID of the Guest OS type", - "name": "ostypeid", + "description": "the project name of the vm group", + "name": "project", "type": "string" - } - ], - "since": "4.4.0" - }, - { - "description": "List all public, private, and privileged VNF templates.", - "isasync": false, - "name": "listVnfTemplates", - "params": [ - { - "description": "If set to true, list only unique templates across zones", - "length": 255, - "name": "showunique", - "required": false, - "since": "4.13.2", - "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the domain ID of the vm group", + "name": "domainid", "type": "string" }, { - "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", + "description": "the domain name of the vm group", + "name": "domain", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the template ID", - "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "uuid" + "description": "the private port", + "name": "privateport", + "type": "string" }, { - "description": "list datadisk templates by parent template id", - "length": 255, - "name": "parenttemplateid", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "since": "4.4", - "type": "uuid" + "description": "path of the domain to which the vm group belongs", + "name": "domainpath", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the autoscale profile that contains information about the vms in the vm group.", + "name": "vmprofileid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", + "name": "availablevirtualmachinecount", + "type": "int" }, { - "description": "the hypervisor for which to restrict the search", - "length": 255, - "name": "hypervisor", - "required": false, + "description": "the autoscale vm group ID", + "name": "id", "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "name": "minmembers", + "type": "int" }, { - "description": "show removed templates as well", - "length": 255, - "name": "showremoved", - "required": false, - "type": "boolean" + "description": "the current state of the AutoScale Vm Group", + "name": "state", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the project id of the vm group", + "name": "projectid", + "type": "string" }, { - "description": "the IDs of the templates, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "since": "4.9", - "type": "list" + "description": "the date when this vm group was created", + "name": "created", + "type": "date" }, + {}, { - "description": "the template name", + "description": "the frequency at which the conditions have to be evaluated", + "name": "interval", + "type": "int" + } + ] + }, + { + "description": "Updates an existing autoscale vm profile.", + "isasync": true, + "name": "updateAutoScaleVmProfile", + "params": [ + { + "description": "the ID of the userdata", "length": 255, - "name": "name", + "name": "userdataid", + "related": "", "required": false, - "type": "string" + "since": "4.18.1", + "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "the time allowed for existing connections to get closed before a vm is destroyed", "length": 255, - "name": "isrecursive", + "name": "expungevmgraceperiod", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "comma separated list of template details requested, value can be a list of [ all, min]", + "description": "the ID of the user used to launch and destroy the VMs", "length": 255, - "name": "details", + "name": "autoscaleuserid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", "required": false, - "since": "4.15", - "type": "list" + "type": "uuid" }, { - "description": "flag to list VNF templates or not; true if need to list VNF templates, false otherwise.", + "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161", "length": 255, - "name": "isvnf", + "name": "counterparam", "required": false, - "since": "4.19.0", - "type": "boolean" + "type": "map" }, { - "description": "list templates by zoneId", + "description": "the template of the auto deployed virtual machine", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "templateid", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, "type": "uuid" }, { - "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).", + "description": "the ID of the autoscale vm profile", "length": 255, - "name": "templatefilter", + "name": "id", + "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles,updateAutoScaleVmProfile", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "an optional field, whether to the display the profile to the end user or not", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "the service offering of the auto deployed virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", "required": false, + "since": "4.18.0", "type": "uuid" }, { - "description": "the type of the template", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "templatetype", + "name": "customid", "required": false, - "since": "4.19.0", + "since": "4.4", "type": "string" }, { - "description": "flag to display the resource image for the templates", + "description": "used to specify the parameters values for the variables in userdata.", "length": 255, - "name": "showicon", + "name": "userdatadetails", "required": false, - "type": "boolean" + "since": "4.18.1", + "type": "map" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "parameters other than zoneId/serviceOfferringId/templateId of the auto deployed virtual machine. \nExample: otherdeployparams[0].name=serviceofferingid&otherdeployparams[0].value=a7fb50f6-01d9-11ed-8bc1-77f8f0228926&otherdeployparams[1].name=rootdisksize&otherdeployparams[1].value=10 .\nPossible parameters are \"rootdisksize\", \"diskofferingid\",\"size\", \"securitygroupids\", \"overridediskofferingid\", \"keypairs\", \"affinitygroupids'\" and \"networkids\".", "length": 255, - "name": "account", + "name": "otherdeployparams", + "required": false, + "since": "4.18.0", + "type": "map" + }, + { + "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", "required": false, + "since": "4.18.0", "type": "string" } ], - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles", "response": [ { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" + "description": "the time allowed for existing connections to get closed before a vm is destroyed", + "name": "expungevmgraceperiod", + "type": "integer" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the domain name of the vm profile", + "name": "domain", "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "the tag of this template", - "name": "templatetag", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "the domain ID of the vm profile", + "name": "domainid", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", + "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine", + "name": "otherdeployparams", "type": "map" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "the project id vm profile", + "name": "projectid", "type": "string" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" + "description": "the project name of the vm profile", + "name": "project", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the template to be used while deploying a virtual machine", + "name": "templateid", + "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" + "description": "the account owning the instance group", + "name": "account", + "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "Base64 encoded VM user data", + "name": "userdata", + "type": "string" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the availability zone to be used while deploying a virtual machine", + "name": "zoneid", + "type": "string" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "path of the domain to which the vm profile belongs", + "name": "domainpath", "type": "string" }, + {}, + {}, + {}, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", + "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "the autoscale vm profile ID", + "name": "id", + "type": "string" }, + {}, { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "the ID of the user used to launch and destroy the VMs", + "name": "autoscaleuserid", "type": "string" }, { - "description": "the template ID", - "name": "id", - "type": "string" + "description": "is profile for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the service offering to be used while deploying a virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Enables an AutoScale Vm Group", + "isasync": true, + "name": "enableAutoScaleVmGroup", + "params": [ + { + "description": "the ID of the autoscale group", + "length": 255, + "name": "id", + "related": "enableAutoScaleVmGroup,listAutoScaleVmGroups", + "required": true, + "type": "uuid" + } + ], + "related": "listAutoScaleVmGroups", + "response": [ + { + "description": "path of the domain to which the vm group belongs", + "name": "domainpath", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", + "description": "is group for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "set" + "description": "the name of the guest network the lb rule belongs to", + "name": "associatednetworkname", + "type": "string" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the date when this vm group was created", + "name": "created", + "type": "date" }, { "description": "the current status of the latest async job acting on this object", @@ -88448,1472 +81059,923 @@ "type": "integer" }, { - "description": "the status of the template", - "name": "status", - "type": "string" + "description": "the frequency at which the conditions have to be evaluated", + "name": "interval", + "type": "int" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", + "name": "availablevirtualmachinecount", + "type": "int" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "the autoscale vm group ID", + "name": "id", "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" + "description": "the load balancer rule ID", + "name": "lbruleid", + "type": "string" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the autoscale profile that contains information about the vms in the vm group.", + "name": "vmprofileid", "type": "string" }, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "list of scaleup autoscale policies", + "name": "scaleuppolicies", + "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "list of scaledown autoscale policies", + "name": "scaledownpolicies", + "type": "list" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, + {}, { - "description": "the template name", - "name": "name", + "description": "the lb provider of the guest network the lb rule belongs to", + "name": "lbprovider", "type": "string" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", - "type": "boolean" + "description": "the domain ID of the vm group", + "name": "domainid", + "type": "string" }, { - "description": "checksum of the template", - "name": "checksum", + "description": "the private port", + "name": "privateport", "type": "string" }, - {}, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "the id of the guest network the lb rule belongs to", + "name": "associatednetworkid", "type": "string" }, + {}, { - "description": "the template display text", - "name": "displaytext", - "type": "string" + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", + "name": "maxmembers", + "type": "int" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "the public ip address", + "name": "publicip", + "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the project id of the vm group", + "name": "projectid", "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "the project name of the vm group", + "name": "project", "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the current state of the AutoScale Vm Group", + "name": "state", + "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 autoscale vm group ", + "name": "name", + "type": "string" }, { - "description": "the name of the domain to which the template belongs", + "description": "the domain name of the vm group", "name": "domain", "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "the account owning the vm group", + "name": "account", + "type": "string" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" - }, + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "name": "minmembers", + "type": "int" + } + ] + }, + { + "description": "Deletes a snapshot of a disk volume.", + "isasync": true, + "name": "deleteSnapshot", + "params": [ { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "The ID of the snapshot", + "length": 255, + "name": "id", + "related": "copySnapshot,revertSnapshot,listSnapshots", + "required": true, + "type": "uuid" }, { - "description": "the project name of the template", - "name": "project", - "type": "string" - }, + "description": "The ID of the zone for the snapshot", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "since": "4.19.0", + "type": "uuid" + } + ], + "response": [ + {}, + {}, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" } - ], - "since": "4.19.0" + ] }, { - "description": "Creates and automatically starts a VNF appliance based on a service offering, disk offering, and template.", - "isasync": true, - "name": "deployVnfAppliance", + "description": "Lists guest network IPv6 prefixes", + "isasync": false, + "name": "listGuestNetworkIpv6Prefixes", "params": [ { - "description": "the ipv6 address for default vm's network", + "description": "", "length": 255, - "name": "ip6address", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com", + "description": "", "length": 255, - "name": "dhcpoptionsnetworklist", + "name": "pagesize", "required": false, - "type": "map" + "type": "integer" }, { - "description": "the hypervisor on which to deploy the virtual machine. The parameter is required and respected only when hypervisor info is not set on the ISO/Template passed to the call", + "description": "UUID of zone to which the IPv6 prefix belongs to.", "length": 255, - "name": "hypervisor", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "if true the image tags (if any) will be copied to the VM, default value is false", + "description": "UUID of the IPv6 prefix.", "length": 255, - "name": "copyimagetags", + "name": "id", + "related": "listGuestNetworkIpv6Prefixes", "required": false, - "since": "4.13", - "type": "boolean" + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + } + ], + "related": "", + "response": [ + {}, + { + "description": "id of the guest IPv6 prefix", + "name": "id", + "type": "string" + }, + { + "description": "count of the used IPv6 subnets for the prefix.", + "name": "usedsubnets", + "type": "integer" + }, + { + "description": "count of the total IPv6 subnets for the prefix.", + "name": "totalsubnets", + "type": "integer" + }, + {}, + { + "description": "guest IPv6 prefix", + "name": "prefix", + "type": "string" + }, + { + "description": "count of the available IPv6 subnets for the prefix.", + "name": "availablesubnets", + "type": "integer" + }, + { + "description": "id of zone to which the IPv6 prefix belongs to.", + "name": "zoneid", + "type": "string" }, { - "description": "names of the ssh key pairs used to login to the virtual machine", - "length": 255, - "name": "keypairs", - "required": false, - "since": "4.17", - "type": "list" + "description": " date when this IPv6 prefix was created.", + "name": "created", + "type": "date" }, { - "description": "the ID of the disk offering for the virtual machine to be used for root volume instead of the disk offering mapped in service offering.In case of virtual machine deploying from ISO, then the diskofferingid specified for root volume is ignored and uses this override disk offering id", - "length": 255, - "name": "overridediskofferingid", - "related": "", - "required": false, - "since": "4.17", - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ], + "since": "4.17.0" + }, + { + "description": "List the virtual machines owned by the account.", + "isasync": false, + "name": "listVirtualMachines", + "params": [ { - "description": "Guest VM Boot option either custom[UEFI] or default boot [BIOS]. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "boottype", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "since": "4.14.0.0", - "type": "string" + "type": "uuid" }, { - "description": "the CIDR list to forward traffic from to the VNF management interface. Multiple entries must be separated by a single comma character (,). The default value is 0.0.0.0/0.", + "description": "list vms by vpc", "length": 255, - "name": "vnfcidrlist", + "name": "vpcid", + "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", "required": false, - "type": "list" + "type": "uuid" }, { - "description": "name of the ssh key pair used to login to the virtual machine", + "description": "the IDs of the virtual machines, mutually exclusive with id", "length": 255, - "name": "keypair", + "name": "ids", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "type": "string" + "since": "4.4", + "type": "list" }, { - "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used. If account is NOT provided then virtual machine will be assigned to the caller account and domain.", + "description": "list vms by affinity group", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "affinitygroupid", + "related": "", "required": false, "type": "uuid" }, { - "description": "the ID of the template for the virtual machine", + "description": "list by the service offering", "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": false, + "since": "4.4", "type": "uuid" }, { - "description": "an optional group for the virtual machine", + "description": "list vms by ssh keypair name", "length": 255, - "name": "group", + "name": "keypair", "required": false, "type": "string" }, { - "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", + "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.", "length": 255, - "name": "securitygroupnames", - "related": "updateSecurityGroup", + "name": "state", "required": false, - "type": "list" + "type": "string" }, { - "description": "host name for the virtual machine", + "description": "the availability zone ID", "length": 255, - "name": "name", + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the ID of the Userdata", + "description": "the user ID that created the VM and is under the account that owns the VM", "length": 255, - "name": "userdataid", - "related": "", + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", "required": false, - "since": "4.18", "type": "uuid" }, { - "description": "Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided", + "description": "the ID of AutoScaling VM Group", "length": 255, - "name": "rootdisksize", + "name": "autoscalevmgroupid", + "related": "listAutoScaleVmGroups", "required": false, - "since": "4.4", - "type": "long" + "since": "4.18.0", + "type": "uuid" }, { - "description": "the ID of the service offering for the virtual machine", + "description": "list by network id", "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, "type": "uuid" }, { - "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter", + "description": "list by network type; true if need to list vms using Virtual Network, false otherwise", "length": 255, - "name": "affinitygroupnames", - "related": "", + "name": "forvirtualnetwork", "required": false, - "type": "list" + "type": "boolean" }, { - "description": "VMware only: used to specify network mapping of a vApp VMware template registered \"as-is\". Example nicnetworklist[0].ip=Nic-101&nicnetworklist[0].network=uuid", + "description": "Accumulates the VM metrics data instead of returning only the most recent data collected. The default behavior is set by the global configuration vm.stats.increment.metrics.", "length": 255, - "name": "nicnetworklist", + "name": "accumulate", "required": false, - "since": "4.15", - "type": "map" + "since": "4.17.0", + "type": "boolean" }, { - "description": "true if virtual machine needs to be dynamically scalable", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "dynamicscalingenabled", + "name": "tags", "required": false, - "since": "4.16", - "type": "boolean" + "type": "map" }, { - "description": "Deployment planner to use for vm allocation. Available to ROOT admin only", + "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": "deploymentplanner", + "name": "name", "required": false, - "since": "4.4", "type": "string" }, { - "description": "the ip address for default vm's network", + "description": "makes the API's response contains only the resource count", "length": 255, - "name": "ipaddress", + "name": "retrieveonlyresourcecount", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "true if start vm after creating; defaulted to true if not specified", + "description": "the ID of the virtual machine", "length": 255, - "name": "startvm", + "name": "id", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "the arbitrary size for the DATADISK volume. Mutually exclusive with diskOfferingId", + "description": "the storage ID where vm's volumes belong to", "length": 255, - "name": "size", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", "required": false, - "type": "long" + "type": "uuid" }, { - "description": "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid&iptonetworklist[0].mac=aa:bb:cc:dd:ee::ff - requests to use ip 10.10.10.11 in network id=uuid", + "description": "List by keyword", "length": 255, - "name": "iptonetworklist", + "name": "keyword", "required": false, - "type": "map" + "type": "string" }, { - "description": "IOThreads are dedicated event loop threads for supported disk devices to perform block I/O requests in order to improve scalability especially on an SMP host/guest with many LUNs.", + "description": "flag to display the resource icon for VMs", "length": 255, - "name": "iothreadsenabled", + "name": "showicon", "required": false, + "since": "4.16.0.0", "type": "boolean" }, { - "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", + "description": "the security group ID", + "length": 255, + "name": "securitygroupid", + "related": "createSecurityGroup", "required": false, - "type": "string" + "since": "4.15", + "type": "uuid" }, { - "description": "an optional user generated name for the virtual machine", + "description": "the group ID", "length": 255, - "name": "displayname", + "name": "groupid", + "related": "createInstanceGroup", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskOfferingId is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateId parameter passed is from a Template object, the diskOfferingId refers to a DATA Disk Volume created. If the templateId parameter passed is from an ISO object, the diskOfferingId refers to a ROOT Disk Volume created.", + "description": "comma separated list of vm details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, backoff, iso, volume, min, affgrp]. When no parameters are passed, all the details are returned if list.vm.default.details.stats is true (default), otherwise when list.vm.default.details.stats is false the API response will exclude the stats details.", "length": 255, - "name": "diskofferingid", - "related": "", + "name": "details", "required": false, - "type": "uuid" + "type": "list" }, { - "description": "used to specify the parameters values for the variables in userdata.", + "description": "the target hypervisor for the template", "length": 255, - "name": "userdatadetails", + "name": "hypervisor", "required": false, - "since": "4.18", - "type": "map" + "type": "string" }, { - "description": "destination Host ID to deploy the VM to - parameter available for root admin only", + "description": "list vms by iso", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", + "name": "isoid", "required": false, "type": "uuid" }, { - "description": "True by default, security group or network rules (source nat and firewall rules) will be configured for VNF management interfaces. False otherwise. Network rules are configured if management network is an isolated network or shared network with security groups.", + "description": "Whether to return the VMs' user data or not. By default, user data will not be returned.", "length": 255, - "name": "vnfconfiguremanagement", + "name": "userdata", "required": false, + "since": "4.18.0.0", "type": "boolean" }, { - "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter", + "description": "the pod ID", "length": 255, - "name": "affinitygroupids", - "related": "", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "list" + "type": "uuid" }, { - "description": "an optional account for the virtual machine. Must be used with domainId.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, "name": "account", "required": false, "type": "string" }, { - "description": "an optional URL encoded string that can be passed to the virtual machine upon successful deployment", - "length": 5120, - "name": "extraconfig", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", "required": false, - "since": "4.12", - "type": "string" + "type": "boolean" }, { - "description": "used to specify the vApp properties.", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "properties", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "since": "4.15", - "type": "map" + "type": "uuid" }, { - "description": "Boot Mode [Legacy] or [Secure] Applicable when Boot Type Selected is UEFI, otherwise Legacy only for BIOS. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "description": "", "length": 255, - "name": "bootmode", + "name": "pagesize", "required": false, - "since": "4.14.0.0", - "type": "string" + "type": "integer" }, { - "description": "Deploy vm for the project", + "description": "the host ID", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", "required": false, "type": "uuid" }, { - "description": "comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", "length": 255, - "name": "securitygroupids", - "related": "updateSecurityGroup", + "name": "displayvm", "required": false, - "type": "list" + "since": "4.4", + "type": "boolean" }, { - "description": "The number of queues for multiqueue NICs.", + "description": "flag to list vms created from VNF templates (as known as VNF appliances) or not; true if need to list VNF appliances, false otherwise.", "length": 255, - "name": "nicmultiqueuenumber", + "name": "isvnf", "required": false, - "since": "4.18", - "type": "integer" + "since": "4.19.0", + "type": "boolean" }, { - "description": "Boot into hardware setup or not (ignored if startVm = false, only valid for vmware)", + "description": "list by the High Availability offering; true if filtering VMs with HA enabled; false for VMs with HA disabled", "length": 255, - "name": "bootintosetup", + "name": "haenable", "required": false, - "since": "4.15.0.0", + "since": "4.15", "type": "boolean" }, { - "description": "availability zone for the virtual machine", + "description": "the cluster ID", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "clusterid", + "related": "addCluster,updateCluster", + "required": false, + "since": "4.16.0", "type": "uuid" }, { - "description": "used to specify the custom parameters. 'extraconfig' is not allowed to be passed in details", + "description": "", "length": 255, - "name": "details", + "name": "page", "required": false, - "since": "4.3", - "type": "map" + "type": "integer" }, { - "description": "Enable packed virtqueues or not.", + "description": "list vms by template", "length": 255, - "name": "nicpackedvirtqueuesenabled", + "name": "templateid", + "related": "listIsos,registerIso,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, - "since": "4.18", - "type": "boolean" + "type": "uuid" }, { - "description": "Controls specific policies on IO", + "description": "list by the backup offering", "length": 255, - "name": "iodriverpolicy", + "name": "backupofferingid", "required": false, - "type": "string" + "since": "4.17", + "type": "uuid" }, { - "description": "list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "networkids", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", + "name": "isrecursive", "required": false, - "type": "list" - }, + "type": "boolean" + } + ], + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ { - "description": "the mac address for default vm's network", - "length": 255, - "name": "macaddress", - "required": false, + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "an optional field, whether to the display the vm to the end user or not.", - "length": 255, - "name": "displayvm", - "required": false, - "since": "4.2", - "type": "boolean" + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" }, { - "description": "datadisk template to disk-offering mapping; an optional parameter used to create additional data disks from datadisk templates; can't be specified with diskOfferingId parameter", - "length": 255, - "name": "datadiskofferinglist", - "required": false, - "since": "4.11", - "type": "map" + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" }, { - "description": "The password of the virtual machine. If null, a random password will be generated for the VM.", - "length": 255, - "name": "password", - "required": false, - "since": "4.19.0.0", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, + {}, { - "description": "an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us", - "length": 255, - "name": "keyboard", - "required": false, - "type": "string" - } - ], - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" + }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", "type": "list" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", "type": "list" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" } ], "type": "set" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "tag value", - "name": "value", - "type": "string" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" - } - ], - "type": "set" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "the name of the virtual machine", - "name": "name", - "type": "string" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - {}, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" - }, - { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "type": "set" + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" }, { - "description": "the project name of the group", - "name": "project", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the name of the security group", - "name": "name", - "type": "string" + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the ID of the security group", - "name": "id", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the description of the security group", - "name": "description", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - } - ], - "type": "set" + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" }, { - "description": "the account owning the security group", - "name": "account", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" } ], "type": "set" }, - { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" - }, - { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" - }, - { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" - }, - { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" - }, - {}, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, { "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "name": "publicip", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, - { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, { "description": "the project id of the vm", "name": "projectid", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" - }, - { - "description": "User VM type", - "name": "vmtype", - "type": "string" - }, - { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "the memory used by the VM in KiB", + "name": "memorykbs", "type": "long" }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - }, - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, { "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" - }, - { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" - }, - { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" - }, - { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" - }, - { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" - }, - { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" - }, - { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "name": "publicipid", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" }, { @@ -89922,43 +81984,13 @@ "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" - }, - { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" - }, - { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" - }, - { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" - }, - { - "description": "the state of the virtual machine", - "name": "state", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { @@ -89967,55 +81999,40 @@ "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, - { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" - }, {}, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" - }, - { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, { "description": "NICs of the VNF appliance", @@ -90023,479 +82040,742 @@ "type": "list" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the description of the affinity group", - "name": "description", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the account owning the affinity group", + "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "the domain name of the affinity group", + "description": "the domain associated with the tag", "name": "domain", "type": "string" }, { - "description": "the project ID of the affinity group", + "description": "the project id the tag belongs to", "name": "projectid", "type": "string" }, { - "description": "the domain ID of the affinity group", + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], "type": "set" - } - ], - "since": "4.19.0" - }, - { - "description": "Updates a network offering.", - "isasync": false, - "name": "updateNetworkOffering", - "params": [ + }, { - "description": "the tags for the network offering.", - "length": 4096, - "name": "tags", - "required": false, + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.", - "length": 255, - "name": "keepaliveenabled", - "required": false, - "type": "boolean" + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" }, { - "description": "the id of the network offering", - "length": 255, - "name": "id", - "related": "createNetworkOffering,updateNetworkOffering,listNetworkOfferings", - "required": false, - "type": "uuid" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", - "length": 4096, - "name": "zoneid", - "required": false, - "since": "4.13", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "update state for the network offering", - "length": 255, - "name": "state", - "required": false, + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "sort key of the network offering, integer", - "length": 255, - "name": "sortkey", - "required": false, - "type": "integer" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the availability of network offering. The value is Required makes this network offering default for Guest Virtual Networks. Only one network offering can have the value Required ", - "length": 255, - "name": "availability", - "required": false, + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the display text of the network offering", - "length": 255, - "name": "displaytext", - "required": false, + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "maximum number of concurrent connections supported by the network offering", - "length": 255, - "name": "maxconnections", - "required": false, - "type": "integer" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, { - "description": "the name of the network offering", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", - "length": 255, - "name": "domainid", - "required": false, + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" - } - ], - "related": "createNetworkOffering,listNetworkOfferings", - "response": [ + }, { - "description": "the internet protocol of the network offering", - "name": "internetprotocol", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "true if network offering can be used by VPC networks only", - "name": "forvpc", - "type": "boolean" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "true if network offering supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" }, { - "description": "true if network offering supports vlans, false otherwise", - "name": "specifyvlan", - "type": "boolean" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the tags for the network offering", - "name": "tags", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "guest type of the network offering, can be Shared or Isolated", - "name": "guestiptype", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "true if network offering supports network that span multiple zones", - "name": "supportsstrechedl2subnet", - "type": "boolean" + "description": "the user's name who deployed the virtual machine", + "name": "username", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "an alternate display text of the network offering.", - "name": "displaytext", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the ID of the service offering used by virtual router provider", - "name": "serviceofferingid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "true if network offering supports persistent networks, false otherwise", - "name": "ispersistent", - "type": "boolean" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "true if network offering can be used by Tungsten-Fabric networks only", - "name": "fortungsten", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "additional key/value details tied with network offering", + "description": "Vm details in key/value pairs.", "name": "details", "type": "map" }, { - "description": "true if network offering supports public access for guest networks", - "name": "supportspublicaccess", - "type": "boolean" + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" }, { - "description": "true if network offering can be used by NSX networks only", - "name": "fornsx", - "type": "boolean" + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" }, { - "description": "maximum number of concurrents connections to be handled by lb", - "name": "maxconnections", + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" + }, + { + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", + "type": "string" + }, + { + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, - {}, { - "description": "true if network offering is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the routing mode for the network offering, supported types are Static or Dynamic.", - "name": "routingmode", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.", - "name": "traffictype", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the id of the network offering", - "name": "id", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", - "name": "networkmode", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "data transfer rate in megabits per second allowed.", - "name": "networkrate", - "type": "integer" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "true if network offering supports public access for guest networks", - "name": "supportsinternallb", + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" + }, + { + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, + {}, { - "description": "the list of supported services", - "name": "service", + "description": "the state of the virtual machine", + "name": "state", + "type": "string" + }, + { + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" + }, + { + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" + }, + { + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" + }, + { + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "the service name", - "name": "name", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "the list of capabilities", - "name": "capability", + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "the capability name", - "name": "name", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" + "description": "the account associated with the tag", + "name": "account", + "type": "string" }, { - "description": "the capability value", + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", "name": "value", "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the service provider name", - "name": "provider", + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", "response": [ { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "the provider name", - "name": "name", + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" }, { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "services for this provider", - "name": "servicelist", - "type": "list" + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" }, { - "description": "state of the network provider", - "name": "state", + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", "type": "string" }, { - "description": "uuid of the network provider", - "name": "id", + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", "type": "string" } ], - "type": "list" + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" } ], - "type": "list" - }, - { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", - "type": "string" + "type": "set" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "availability of the network offering", - "name": "availability", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the network offering", - "name": "name", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, - { - "description": "the date this network offering was created", - "name": "created", - "type": "date" - }, - {}, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, - { - "description": "true if network offering supports choosing AS numbers", - "name": "specifyasnumber", - "type": "boolean" + { + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "conservemode", - "type": "boolean" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "state of the network offering. Can be Disabled/Enabled/Inactive", - "name": "state", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" } ] }, { - "description": "Changes out-of-band management interface password on the host and updates the interface configuration in CloudStack if the operation succeeds, else reverts the old password", + "description": "Updates the information about Guest OS to Hypervisor specific name mapping", "isasync": true, - "name": "changeOutOfBandManagementPassword", + "name": "updateGuestOsMapping", "params": [ { - "description": "the ID of the host", + "description": "Hypervisor specific name for this Guest OS", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", + "name": "osnameforhypervisor", + "required": true, + "type": "string" + }, + { + "description": "UUID of the Guest OS to hypervisor name Mapping", + "length": 255, + "name": "id", + "related": "updateGuestOsMapping", "required": true, "type": "uuid" }, { - "description": "the new host management interface password of maximum length 16, if none is provided a random password would be used", + "description": "When set to true, checks for the correct guest os mapping name in the provided hypervisor (supports VMware and XenServer only. At least one hypervisor host with the version specified must be available. Default version will not work.)", "length": 255, - "name": "password", + "name": "osmappingcheckenabled", "required": false, - "type": "string" + "since": "4.19.0", + "type": "boolean" } ], - "related": "enableOutOfBandManagementForHost", + "related": "", "response": [ - { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", - "type": "boolean" - }, - {}, - { - "description": "the out-of-band management interface address", - "name": "address", - "type": "string" - }, - { - "description": "the out-of-band management interface password", - "name": "password", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the out-of-band management driver for the host", - "name": "driver", + "description": "is the mapping user defined", + "name": "isuserdefined", "type": "string" }, + {}, { - "description": "the out-of-band management interface username", - "name": "username", + "description": "the ID of the Guest OS mapping", + "name": "id", "type": "string" }, { @@ -90504,73 +82784,62 @@ "type": "string" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "version of the hypervisor for mapping", + "name": "hypervisorversion", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "standard display name for the Guest OS", + "name": "osdisplayname", "type": "string" }, + {}, { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" - }, - { - "description": "the operation result", - "name": "status", - "type": "boolean" + "description": "the hypervisor", + "name": "hypervisor", + "type": "string" }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "the ID of the Guest OS type", + "name": "ostypeid", "type": "string" }, - {}, { - "description": "the operation result description", - "name": "description", + "description": "hypervisor specific name for the Guest OS", + "name": "osnameforhypervisor", "type": "string" } ], - "since": "4.9.0" + "since": "4.4.0" }, { - "description": "List resource detail(s)", + "description": "Lists all available disk offerings.", "isasync": false, - "name": "listResourceDetails", + "name": "listDiskOfferings", "params": [ { - "description": "list only resources belonging to the domain specified", + "description": "The ID of a virtual machine. Pass this in if you want to see the suitable disk offering that can be used to create and add a disk to the virtual machine. Suitability is returned with suitableforvirtualmachine flag in the response", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "virtualmachineid", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, + "since": "4.20.0", "type": "uuid" }, { - "description": "list by key", - "length": 255, - "name": "key", - "required": false, - "type": "string" - }, - { - "description": "List by keyword", + "description": "", "length": 255, - "name": "keyword", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "if set to true, only details marked with display=true, are returned. False by default", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "fordisplay", + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, - "since": "4.3", - "type": "boolean" + "type": "uuid" }, { "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", @@ -90580,18 +82849,18 @@ "type": "boolean" }, { - "description": "list by key, value. Needs to be passed only along with key", + "description": "the storage type of the service offering. Values are local and shared.", "length": 255, - "name": "value", + "name": "storagetype", "required": false, - "since": "4.4", + "since": "4.19", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "ID of the disk offering", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "id", + "related": "createDiskOffering,listDiskOfferings", "required": false, "type": "uuid" }, @@ -90603,1062 +82872,947 @@ "type": "string" }, { - "description": "", + "description": "name of the disk offering", "length": 255, - "name": "page", + "name": "name", "required": false, - "type": "integer" + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "List by keyword", "length": 255, - "name": "listall", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "", + "description": "The ID of the storage pool, tags of the storage pool are used to filter the offerings", "length": 255, - "name": "pagesize", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", "required": false, - "type": "integer" + "since": "4.17", + "type": "uuid" }, { - "description": "list by resource type", + "description": "The ID of the volume, tags of the volume are used to filter the offerings", "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" + "name": "volumeid", + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": false, + "since": "4.17", + "type": "uuid" }, { - "description": "list by resource id", + "description": "listed offerings support disk encryption", "length": 255, - "name": "resourceid", + "name": "encrypt", "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" + "since": "4.18", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "id of zone disk offering is associated with", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "since": "4.13", + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", + "description": "Filter by state of the disk offering. Defaults to 'Active'. If set to 'all' shows both Active & Inactive offerings.", + "length": 255, + "name": "state", + "required": false, + "since": "4.19", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, - {}, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - {}, + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + } + ], + "related": "createDiskOffering", + "response": [ { - "description": "tag value", - "name": "value", - "type": "string" + "description": "length (in second) of the burst", + "name": "diskIopsReadRateMaxLength", + "type": "long" }, { - "description": "tag key name", - "name": "key", - "type": "string" + "description": "burst bytes write rate of the disk offering", + "name": "diskBytesWriteRateMax", + "type": "long" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "name": "cacheMode", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zoneid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" + "description": "bytes write rate of the disk offering", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "since": "4.2" - }, - { - "description": "Dedicate an existing cluster", - "isasync": true, - "name": "dedicateCluster", - "params": [ - { - "description": "the name of the account which needs dedication. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "state of the disk offering", + "name": "state", "type": "string" }, { - "description": "the ID of the containing domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": true, - "type": "uuid" + "description": "whether to display the offering to the end user or not.", + "name": "displayoffering", + "type": "boolean" }, { - "description": "the ID of the Cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - } - ], - "related": "listDedicatedClusters", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the storage type for this disk offering", + "name": "storagetype", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "burst bytes read rate of the disk offering", + "name": "diskBytesReadRateMax", + "type": "long" }, { - "description": "the Account ID of the cluster", - "name": "accountid", + "description": "the vsphere storage policy tagged to the disk offering in case of VMware", + "name": "vspherestoragepolicy", "type": "string" }, { - "description": "the ID of the cluster", - "name": "clusterid", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the ID of the dedicated resource", - "name": "id", + "description": "the tags for the disk offering", + "name": "tags", "type": "string" }, - {}, { - "description": "the name of the cluster", - "name": "clustername", - "type": "string" + "description": "true if disk offering uses custom size, false otherwise", + "name": "iscustomized", + "type": "boolean" }, { - "description": "the Dedication Affinity Group ID of the cluster", - "name": "affinitygroupid", - "type": "string" + "description": "true if disk offering uses custom iops, false otherwise", + "name": "iscustomizediops", + "type": "boolean" }, { - "description": "the domain ID of the cluster", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", "name": "domainid", "type": "string" - } - ] - }, - { - "description": "Creates a network offering.", - "isasync": false, - "name": "createNetworkOffering", - "params": [ - { - "description": "The internet protocol of network offering. Options are ipv4 and dualstack. Default is ipv4. dualstack will create a network offering that supports both IPv4 and IPv6", - "length": 255, - "name": "internetprotocol", - "required": false, - "since": "4.17.0", - "type": "string" }, + {}, { - "description": "true if network offering for NSX network offering supports Load balancer service.", - "length": 255, - "name": "nsxsupportlb", - "required": false, - "since": "4.20.0", - "type": "boolean" + "description": "length (in seconds) of the burst", + "name": "diskBytesReadRateMaxLength", + "type": "long" }, { - "description": "if true keepalive will be turned on in the loadbalancer. At the time of writing this has only an effect on haproxy; the mode http and httpclose options are unset in the haproxy conf file.", - "length": 255, - "name": "keepaliveenabled", - "required": false, - "type": "boolean" + "description": "additional key/value details tied with this disk offering", + "name": "details", + "type": "map" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "length": 255, - "name": "egressdefaultpolicy", - "required": false, + "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", + "name": "disksizestrictness", "type": "boolean" }, { - "description": "true if the network offering is IP conserve mode enabled", - "length": 255, - "name": "conservemode", - "required": false, + "description": "Whether disks using this offering will be encrypted on primary storage", + "name": "encrypt", "type": "boolean" }, { - "description": "the tags for the network offering.", - "length": 4096, - "name": "tags", - "required": false, - "type": "string" + "description": "the size of the disk offering in GB", + "name": "disksize", + "type": "long" }, { - "description": "the traffic type for the network offering. Supported type in current release is GUEST only", - "length": 255, - "name": "traffictype", - "required": true, + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "name": "provisioningtype", "type": "string" }, { - "description": "guest type of the network offering: Shared or Isolated", - "length": 255, - "name": "guestiptype", - "required": true, - "type": "string" + "description": "burst io requests read rate of the disk offering", + "name": "diskIopsReadRateMax", + "type": "long" }, { - "description": "desired service capabilities as part of network offering", - "length": 255, - "name": "servicecapabilitylist", - "required": false, - "type": "map" + "description": "Returns true if the disk offering is suitable for the given virtual machine for disk creation otherwise false", + "name": "suitableforvirtualmachine", + "type": "boolean" }, { - "description": "the display text of the network offering, defaults to the value of 'name'.", - "length": 255, - "name": "displaytext", - "required": false, + "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zone", "type": "string" }, { - "description": "provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network", - "length": 255, - "name": "serviceproviderlist", - "required": false, - "type": "map" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the containing zone(s), null for public offerings", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "since": "4.13", - "type": "list" + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "name": "hypervisorsnapshotreserve", + "type": "integer" }, { - "description": "true if network offering supports vlans", - "length": 255, - "name": "specifyvlan", - "required": false, - "type": "boolean" + "description": "an alternate display text of the disk offering.", + "name": "displaytext", + "type": "string" }, { - "description": "services supported by the network offering", - "length": 255, - "name": "supportedservices", - "required": false, - "type": "list" + "description": "length (in seconds) of the burst", + "name": "diskIopsWriteRateMaxLength", + "type": "long" }, { - "description": "true if network offering is meant to be used for Tungsten-Fabric, false otherwise.", - "length": 255, - "name": "fortungsten", - "required": false, - "type": "boolean" + "description": "unique ID of the disk offering", + "name": "id", + "type": "string" }, { - "description": "Network offering details in key/value pairs. Supported keys are internallbprovider/publiclbprovider with service provider as a value, and promiscuousmode/macaddresschanges/forgedtransmits with true/false as value to accept/reject the security settings if available for a nic/portgroup", - "length": 255, - "name": "details", - "required": false, - "since": "4.2.0", - "type": "map" + "description": "io requests read rate of the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "maximum number of concurrent connections supported by the network offering", - "length": 255, - "name": "maxconnections", - "required": false, - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the routing mode for the network offering. Supported types are: Static or Dynamic.", - "length": 255, - "name": "routingmode", - "required": false, - "since": "4.20.0", - "type": "string" + "description": "burst io requests write rate of the disk offering", + "name": "diskIopsWriteRateMax", + "type": "long" }, { - "description": "true if network offering for NSX network offering supports Internal Load balancer service.", - "length": 255, - "name": "nsxsupportsinternallb", - "required": false, - "since": "4.20.0", - "type": "boolean" + "description": "the min iops of the disk offering", + "name": "miniops", + "type": "long" }, { - "description": "the ID of the containing domain(s), null for public offerings", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "list" + "description": "the date this disk offering was created", + "name": "created", + "type": "date" }, { - "description": "true if network offering supports choosing AS number", - "length": 255, - "name": "specifyasnumber", - "required": false, - "since": "4.20.0", - "type": "boolean" + "description": "io requests write rate of the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "true if network offering is meant to be used for VPC, false otherwise.", - "length": 255, - "name": "forvpc", - "required": false, - "type": "boolean" + "description": "the name of the disk offering", + "name": "name", + "type": "string" }, { - "description": "true if network offering supports persistent networks; defaulted to false if not specified", - "length": 255, - "name": "ispersistent", - "required": false, - "type": "boolean" + "description": "bytes read rate of the disk offering", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "data transfer rate in megabits per second allowed", - "length": 255, - "name": "networkrate", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the availability of network offering. The default value is Optional. Another value is Required, which will make it as the default network offering for new networks ", - "length": 255, - "name": "availability", - "required": false, - "type": "string" + "description": "the max iops of the disk offering", + "name": "maxiops", + "type": "long" }, { - "description": "true if network offering supports specifying ip ranges; defaulted to false if not specified", - "length": 255, - "name": "specifyipranges", - "required": false, - "type": "boolean" + "description": "length (in seconds) of the burst", + "name": "diskBytesWriteRateMaxLength", + "type": "long" }, + {} + ] + }, + { + "description": "Update password of a host/pool on management server.", + "isasync": false, + "name": "updateHostPassword", + "params": [ { - "description": "Indicates the mode with which the network will operate. Valid option: NATTED or ROUTED", + "description": "the username for the host/cluster", "length": 255, - "name": "networkmode", - "required": false, - "since": "4.20.0", + "name": "username", + "required": true, "type": "string" }, { - "description": "true if network offering is meant to be used for NSX, false otherwise.", + "description": "the host ID", "length": 255, - "name": "fornsx", + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", "required": false, - "since": "4.20.0", - "type": "boolean" + "type": "uuid" }, { - "description": "set to true if the offering is to be enabled during creation. Default is false", + "description": "if the password should also be updated on the hosts", "length": 255, - "name": "enable", + "name": "update_passwd_on_host", "required": false, - "since": "4.16", "type": "boolean" }, { - "description": "the name of the network offering", + "description": "the new password for the host/cluster", "length": 255, - "name": "name", + "name": "password", "required": true, "type": "string" }, { - "description": "the service offering ID used by virtual router provider", + "description": "the cluster ID", "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "name": "clusterid", + "related": "addCluster,updateCluster", "required": false, "type": "uuid" } ], - "related": "listNetworkOfferings", "response": [ - { - "description": "the id of the network offering", - "name": "id", - "type": "string" - }, - { - "description": "true if network offering is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the tags for the network offering", - "name": "tags", - "type": "string" - }, - { - "description": "true if network offering supports vlans, false otherwise", - "name": "specifyvlan", - "type": "boolean" - }, - { - "description": "data transfer rate in megabits per second allowed.", - "name": "networkrate", - "type": "integer" - }, - {}, - { - "description": "true if network offering supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" - }, {}, { - "description": "maximum number of concurrents connections to be handled by lb", - "name": "maxconnections", - "type": "integer" - }, - { - "description": "state of the network offering. Can be Disabled/Enabled/Inactive", - "name": "state", - "type": "string" - }, - { - "description": "the routing mode for the network offering, supported types are Static or Dynamic.", - "name": "routingmode", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if network offering can be used by NSX networks only", - "name": "fornsx", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, - { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", - "type": "string" - }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "true if network offering supports public access for guest networks", - "name": "supportsinternallb", - "type": "boolean" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "adds a range of portable public IP's to a region", + "isasync": true, + "name": "createPortableIpRange", + "params": [ { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the beginning IP address in the portable IP range", + "length": 255, + "name": "startip", + "required": true, + "type": "string" }, { - "description": "availability of the network offering", - "name": "availability", + "description": "the gateway for the portable IP range", + "length": 255, + "name": "gateway", + "required": true, "type": "string" }, { - "description": "guest type of the network offering, can be Shared or Isolated", - "name": "guestiptype", + "description": "the ending IP address in the portable IP range", + "length": 255, + "name": "endip", + "required": true, "type": "string" }, { - "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", - "name": "networkmode", + "description": "VLAN id, if not specified defaulted to untagged", + "length": 255, + "name": "vlan", + "required": false, "type": "string" }, { - "description": "an alternate display text of the network offering.", - "name": "displaytext", + "description": "the netmask of the portable IP range", + "length": 255, + "name": "netmask", + "required": true, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "Id of the Region", + "length": 255, + "name": "regionid", + "related": "addRegion,listRegions", + "required": true, "type": "integer" - }, - { - "description": "the ID of the service offering used by virtual router provider", - "name": "serviceofferingid", - "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "true if network offering supports choosing AS numbers", - "name": "specifyasnumber", - "type": "boolean" + "description": "Region Id in which portable ip range is provisioned", + "name": "regionid", + "type": "integer" }, { - "description": "the name of the network offering", - "name": "name", + "description": "the ID or VID of the VLAN.", + "name": "vlan", "type": "string" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "portable IP range ID", + "name": "id", "type": "string" }, + {}, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "the start ip of the portable IP range", + "name": "startip", "type": "string" }, + {}, { - "description": "true if network offering supports network that span multiple zones", - "name": "supportsstrechedl2subnet", - "type": "boolean" - }, - { - "description": "true if network offering supports persistent networks, false otherwise", - "name": "ispersistent", - "type": "boolean" - }, - { - "description": "true if network offering supports public access for guest networks", - "name": "supportspublicaccess", - "type": "boolean" - }, - { - "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.", - "name": "traffictype", + "description": "the netmask of the VLAN IP range", + "name": "netmask", "type": "string" }, { - "description": "the internet protocol of the network offering", - "name": "internetprotocol", + "description": "the end ip of the portable IP range", + "name": "endip", "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the gateway of the VLAN IP range", + "name": "gateway", + "type": "string" }, { - "description": "the list of supported services", - "name": "service", + "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule", + "name": "portableipaddress", "response": [ { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - } - ], - "type": "list" + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "the service name", - "name": "name", + "description": "VPC the ip belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - } - ], - "type": "list" + "description": "the ID of the zone the public IP address belongs to", + "name": "zoneid", + "type": "string" + }, + { + "description": "the ID of the Network where ip belongs to", + "name": "networkid", + "type": "string" + }, + { + "description": "date the portal IP address was acquired", + "name": "allocated", + "type": "date" + }, + { + "description": "the domain ID the portable IP address is associated with", + "name": "domainid", + "type": "string" + }, + { + "description": "Region Id in which global load balancer is created", + "name": "regionid", + "type": "integer" + }, + { + "description": "the account ID the portable IP address is associated with", + "name": "accountid", + "type": "string" + }, + { + "description": "State of the ip address. Can be: Allocating, Allocated, Releasing and Free", + "name": "state", + "type": "string" + }, + { + "description": "public IP address", + "name": "ipaddress", + "type": "string" } ], "type": "list" }, { - "description": "the date this network offering 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 zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ], + "since": "4.2.0" + }, + { + "description": "Deletes Webhook delivery", + "isasync": false, + "name": "deleteWebhookDelivery", + "params": [ + { + "description": "The ID of the Webhook delivery", + "length": 255, + "name": "id", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "additional key/value details tied with network offering", - "name": "details", - "type": "map" + "description": "The start date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having start date equal to or after the specified date will be considered.", + "length": 255, + "name": "startdate", + "required": false, + "type": "date" }, { - "description": "true if network offering can be used by Tungsten-Fabric networks only", - "name": "fortungsten", - "type": "boolean" + "description": "The ID of the management server", + "length": 255, + "name": "managementserverid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "true if network offering can be used by VPC networks only", - "name": "forvpc", - "type": "boolean" + "description": "The end date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having end date equal to or before the specified date will be considered.", + "length": 255, + "name": "enddate", + "required": false, + "type": "date" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "conservemode", - "type": "boolean" + "description": "The ID of the Webhook", + "length": 255, + "name": "webhookid", + "related": "createWebhook,listWebhookDeliveries", + "required": false, + "type": "uuid" } ], - "since": "3.0.0" + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + {}, + { + "description": "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" + }, + {} + ], + "since": "4.20.0" }, { - "description": "Creates an IP forwarding rule", - "isasync": true, - "name": "createIpForwardingRule", + "description": "Updates an existing cluster", + "isasync": false, + "name": "updateCluster", "params": [ { - "description": "the end port for the rule", + "description": "hypervisor type of the cluster", "length": 255, - "name": "endport", + "name": "hypervisor", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the public IP address ID of the forwarding rule, already associated via associateIp", + "description": "the CPU arch of the cluster. Valid options are: x86_64, aarch64", "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" + "name": "arch", + "required": false, + "since": "4.20", + "type": "string" }, { - "description": "the start port for the rule", + "description": "the cluster name", "length": 255, - "name": "startport", + "name": "clustername", + "required": false, + "type": "string" + }, + { + "description": "the ID of the Cluster", + "length": 255, + "name": "id", + "related": "addCluster,updateCluster", "required": true, - "type": "integer" + "type": "uuid" }, { - "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. Has value true by default", + "description": "hypervisor type of the cluster", "length": 255, - "name": "openfirewall", + "name": "clustertype", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "the CIDR list to forward traffic from. Multiple entries must be separated by a single comma character (,). This parameter is deprecated. Do not use.", + "description": "whether this cluster is managed by cloudstack", "length": 255, - "name": "cidrlist", + "name": "managedstate", "required": false, - "type": "list" + "type": "string" }, { - "description": "the protocol for the rule. Valid values are TCP or UDP.", + "description": "Allocation state of this cluster for allocation of new resources", "length": 255, - "name": "protocol", - "required": true, + "name": "allocationstate", + "required": false, "type": "string" } ], - "related": "createPortForwardingRule,updatePortForwardingRule", + "related": "addCluster", "response": [ { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", + "description": "The cpu overcommit ratio of the cluster", + "name": "cpuovercommitratio", "type": "string" }, - {}, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", + "description": "Ovm3 VIP to use for pooling and/or clustering", + "name": "ovm3vip", + "type": "string" + }, + { + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" + }, + { + "description": "the Pod name of the cluster", + "name": "podname", "type": "string" }, - {}, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "description": "the cluster name", + "name": "name", "type": "string" }, { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "the cluster ID", + "name": "id", "type": "string" }, { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the Zone ID of the cluster", + "name": "zoneid", + "type": "string" }, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "the type of the cluster", + "name": "clustertype", "type": "string" }, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "whether this cluster is managed by cloudstack", + "name": "managedstate", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", + "description": "The memory overcommit ratio of the cluster", + "name": "memoryovercommitratio", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "the hypervisor type of the cluster", + "name": "hypervisortype", "type": "string" }, + {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "CPU Arch of the hosts in the cluster", + "name": "arch", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", + "description": "the capacity of the Cluster", + "name": "capacity", "response": [ { - "description": "tag key name", - "name": "key", - "type": "string" + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the Pod name", + "name": "podname", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the Pod ID", + "name": "podid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "The tag for the capacity type", + "name": "tag", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the capacity name", + "name": "name", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the Zone name", + "name": "zonename", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "the capacity type", + "name": "type", + "type": "short" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the Cluster ID", + "name": "clusterid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the Zone ID", + "name": "zoneid", "type": "string" } ], "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", + "description": "the allocation state of the cluster", + "name": "allocationstate", "type": "string" }, + {}, { - "description": "the ID of the port forwarding rule", - "name": "id", + "description": "the Pod ID of the cluster", + "name": "podid", "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the Zone name of the cluster", + "name": "zonename", "type": "string" } ] }, { - "description": "Lists the network Interfaces of elastistor", + "description": "Lists storage providers.", "isasync": false, - "name": "listElastistorInterface", + "name": "listStorageProviders", "params": [ { - "description": "controller id", + "description": "List by keyword", "length": 255, - "name": "controllerid", + "name": "keyword", "required": false, "type": "string" - } - ], - "related": "listElastistorVolume", - "response": [ - { - "description": "synchronization", - "name": "sync", - "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, - {}, { - "description": "the id of the volume", - "name": "id", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "graceallowed", - "name": "graceallowed", + "description": "the type of storage provider: either primary or image", + "length": 255, + "name": "type", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "compression", - "name": "compression", - "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", - "name": "jobid", + "description": "the type of the storage provider: primary or image provider", + "name": "type", "type": "string" }, { - "description": "deduplication", - "name": "deduplication", + "description": "the name of the storage provider", + "name": "name", "type": "string" }, + {}, + {}, { - "description": "the name of the volume", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, - {} + } ] }, { - "description": "Updates load balancer stickiness policy", - "isasync": true, - "name": "updateLBStickinessPolicy", + "description": "List profile in ucs manager", + "isasync": false, + "name": "listUcsProfiles", "params": [ { - "description": "an optional field, whether to the display the policy to the end user or not", + "description": "the id for the ucs manager", "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "name": "ucsmanagerid", + "related": "addUcsManager", + "required": true, + "type": "uuid" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "List by keyword", "length": 255, - "name": "customid", + "name": "keyword", "required": false, - "since": "4.4", "type": "string" }, { - "description": "id of lb stickiness policy", + "description": "", "length": 255, - "name": "id", - "related": "createLBStickinessPolicy,updateLBStickinessPolicy", - "required": true, - "type": "uuid" + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" } ], - "related": "createLBStickinessPolicy", + "related": "", "response": [ + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the name of the Stickiness policy", - "name": "name", - "type": "string" - }, - { - "description": "the account of the Stickiness policy", - "name": "account", - "type": "string" - }, - { - "description": "the list of stickinesspolicies", - "name": "stickinesspolicy", - "response": [ - { - "description": "the LB Stickiness policy ID", - "name": "id", - "type": "string" - }, - { - "description": "the description of the Stickiness policy", - "name": "description", - "type": "string" - }, - { - "description": "the method name of the Stickiness policy", - "name": "methodname", - "type": "string" - }, - { - "description": "is policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the params of the policy", - "name": "params", - "type": "map" - }, - { - "description": "the name of the Stickiness policy", - "name": "name", - "type": "string" - }, - { - "description": "the state of the policy", - "name": "state", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the domain ID of the Stickiness policy", - "name": "domainid", + "description": "ucs profile dn", + "name": "ucsdn", "type": "string" }, { - "description": "the state of the policy", - "name": "state", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, + {} + ] + }, + { + "description": "This command allows the user to query the seceret and API keys for the account", + "isasync": false, + "name": "getUserKeys", + "params": [ { - "description": "the id of the zone the Stickiness policy belongs to", - "name": "zoneid", - "type": "string" - }, - {}, + "description": "ID of the user whose keys are required", + "length": 255, + "name": "id", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": true, + "type": "uuid" + } + ], + "related": "registerUserKeys", + "response": [ { - "description": "the description of the Stickiness policy", - "name": "description", + "description": "the secret key of the registered user", + "name": "secretkey", "type": "string" }, { @@ -91667,88 +83821,60 @@ "type": "string" }, { - "description": "the domain of the Stickiness policy", - "name": "domain", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "the api key of the registered user", + "name": "apikey", "type": "string" - } + }, + {}, + {} ], - "since": "4.4" + "since": "4.10.0" }, { - "description": "Lists all Pods.", - "isasync": false, - "name": "listPods", + "description": "update global load balancer rules.", + "isasync": true, + "name": "updateGlobalLoadBalancerRule", "params": [ { - "description": "list pods by allocation state", - "length": 255, - "name": "allocationstate", + "description": "the description of the load balancer rule", + "length": 4096, + "name": "description", "required": false, "type": "string" }, { - "description": "list Pods by name", + "description": "session sticky method (sourceip) if not specified defaults to sourceip", "length": 255, - "name": "name", + "name": "gslbstickysessionmethodname", "required": false, "type": "string" }, { - "description": "List by keyword", + "description": "load balancer algorithm (roundrobin, leastconn, proximity) that is used to distributed traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'", "length": 255, - "name": "keyword", + "name": "gslblbmethod", "required": false, "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list Pods by Zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "flag to display the capacity of the pods", - "length": 255, - "name": "showcapacities", - "required": false, - "type": "boolean" - }, - { - "description": "list Pods by ID", + "description": "the ID of the global load balancer rule", "length": 255, "name": "id", - "related": "listPods,createManagementNetworkIpRange", - "required": false, + "related": "updateGlobalLoadBalancerRule", + "required": true, "type": "uuid" } ], - "related": "createManagementNetworkIpRange", + "related": "", "response": [ - {}, { - "description": "the gateway of the Pod", - "name": "gateway", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { @@ -91757,248 +83883,355 @@ "type": "string" }, { - "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": "global load balancer rule ID", + "name": "id", + "type": "string" }, { - "description": "the allocation state of the Pod", - "name": "allocationstate", + "description": "GSLB service type", + "name": "gslbservicetype", "type": "string" }, { - "description": "the name of the Pod", + "description": "name of the global load balancer rule", "name": "name", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the project id of the load balancer", + "name": "projectid", + "type": "string" + }, + { + "description": "session persistence method used for the global load balancer", + "name": "gslbstickysessionmethodname", + "type": "string" + }, + { + "description": "Region Id in which global load balancer is created", + "name": "regionid", "type": "integer" }, + {}, + {}, { - "description": "the IP ranges for the Pod", - "name": "ipranges", + "description": "the description of the global load balancer rule", + "name": "description", + "type": "string" + }, + { + "description": "the account of the load balancer rule", + "name": "account", + "type": "string" + }, + { + "description": "List of load balancer rules that are part of GSLB rule", + "name": "loadbalancerrule", "response": [ { - "description": "indicates Vlan ID for the range", - "name": "vlanid", + "description": "the id of the zone the rule belongs to", + "name": "zoneid", "type": "string" }, { - "description": "indicates if range is dedicated for CPVM and SSVM", - "name": "forsystemvms", + "description": "the name of the load balancer", + "name": "name", "type": "string" }, { - "description": "the gateway for the range", - "name": "gateway", + "description": "the description of the load balancer", + "name": "description", "type": "string" }, { - "description": "the CIDR for the range", - "name": "cidr", + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the starting IP for the range", - "name": "startip", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { - "description": "the ending IP for the range", - "name": "endip", + "description": "the project id of the load balancer", + "name": "projectid", "type": "string" - } - ], - "type": "list" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the netmask of the Pod", - "name": "netmask", - "type": "string" - }, - { - "description": "the capacity of the Pod", - "name": "capacity", - "response": [ + }, { - "description": "the Zone ID", - "name": "zoneid", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" + "description": "the id of the guest network the lb rule belongs to", + "name": "networkid", + "type": "string" }, { - "description": "the Cluster ID", - "name": "clusterid", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "The tag for the capacity type", - "name": "tag", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" + "description": "the account of the load balancer rule", + "name": "account", + "type": "string" }, { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" + "description": "the protocol of the loadbalanacer rule", + "name": "protocol", + "type": "string" }, { - "description": "the Pod ID", - "name": "podid", + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the Cluster name", - "name": "clustername", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" }, { - "description": "the Zone name", - "name": "zonename", + "description": "the private port", + "name": "privateport", "type": "string" }, { - "description": "the percentage of capacity currently in use", - "name": "percentused", + "description": "the domain of the load balancer rule", + "name": "domain", "type": "string" }, { - "description": "the Pod name", - "name": "podname", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the capacity name", - "name": "name", + "description": "the load balancer rule ID", + "name": "id", "type": "string" }, { - "description": "the capacity type", - "name": "type", - "type": "short" + "description": "the list of resource tags associated with load balancer", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the project name of the load balancer", + "name": "project", + "type": "string" + }, + { + "description": "the name of the zone the load balancer rule belongs to", + "name": "zonename", + "type": "string" } ], "type": "list" }, { - "description": "the Zone ID of the Pod", - "name": "zoneid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the Zone name of the Pod", - "name": "zonename", + "description": "DNS domain name given for the global load balancer", + "name": "gslbdomainname", "type": "string" }, { - "description": "the ID of the Pod", - "name": "id", + "description": "the project name of the load balancer", + "name": "project", "type": "string" }, - {}, { - "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", - "name": "vlanid", - "type": "list" + "description": "Load balancing method used for the global load balancer", + "name": "gslblbmethod", + "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 domain of the load balancer rule", + "name": "domain", + "type": "string" }, { - "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", - "name": "endip", - "type": "list" + "description": "the domain ID of the load balancer rule", + "name": "domainid", + "type": "string" } ] }, { - "description": "delete Tungsten-Fabric address group", + "description": "Creates a condition for VM auto scaling", "isasync": true, - "name": "deleteTungstenFabricAddressGroup", + "name": "createCondition", "params": [ { - "description": "the ID of zone", + "description": "an optional project for condition", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "Value for which the Counter will be evaluated with the Operator selected.", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "threshold", + "required": true, + "type": "long" + }, + { + "description": "ID of the Counter.", + "length": 255, + "name": "counterid", + "related": "createCounter,listCounters", "required": true, "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric address group", + "description": "Relational Operator to be used with threshold. Valid values are EQ, GT, LT, GE, LE.", "length": 255, - "name": "addressgroupuuid", + "name": "relationaloperator", "required": true, "type": "string" + }, + { + "description": "the account of the condition. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "the domain ID of the account.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" } ], + "related": "", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "Threshold Value for the counter.", + "name": "threshold", + "type": "long" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "Relational Operator to be used with threshold.", + "name": "relationaloperator", "type": "string" }, - {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Details of the Counter.", + "name": "counter", + "type": "counterresponse" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Id of the Counter.", + "name": "counterid", "type": "string" - } - ] - }, - { - "description": "Stops a running CloudManaged Kubernetes cluster", - "isasync": true, - "name": "stopKubernetesCluster", - "params": [ + }, { - "description": "the ID of the Kubernetes cluster", - "length": 255, + "description": "the Name of the Counter.", + "name": "countername", + "type": "string" + }, + { + "description": "the domain id of the Condition owner", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the domain to which the Condition owner belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "the id of the Condition", "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", - "required": true, - "type": "uuid" - } - ], - "response": [ + "type": "string" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the domain name of the owner.", + "name": "domain", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name of the Condition", + "name": "project", + "type": "string" }, {}, { @@ -92007,16 +84240,32 @@ "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "zone id of counter", + "name": "zoneid", + "type": "string" + }, + {}, + { + "description": "the project id of the Condition.", + "name": "projectid", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the owner of the Condition.", + "name": "account", + "type": "string" } ] }, { - "description": "Lists IPv4 subnets for zone.", + "description": "Lists projects and provides detailed information for listed projects", "isasync": false, - "name": "listIpv4SubnetsForZone", + "name": "listProjects", "params": [ { "description": "", @@ -92026,27 +84275,32 @@ "type": "integer" }, { - "description": "UUID of zone to which the IPv4 subnet belongs to.", + "description": "", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "page", + "name": "listall", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "project who which the IPv4 subnet is dedicated to", + "description": "list projects by display text", "length": 255, - "name": "projectid", - "related": "createProject", + "name": "displaytext", "required": false, - "type": "uuid" + "type": "string" + }, + { + "description": "list projects by name", + "length": 255, + "name": "name", + "required": false, + "type": "string" }, { "description": "List by keyword", @@ -92056,74 +84310,103 @@ "type": "string" }, { - "description": "the account which the IPv4 subnet is dedicated to. Must be used with the domainId parameter.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, "name": "account", "required": false, "type": "string" }, { - "description": "CIDR of the IPv4 subnet.", + "description": "List projects by username", "length": 255, - "name": "subnet", + "name": "username", "required": false, "type": "string" }, { - "description": "the domain ID which the IPv4 subnet is dedicated to.", + "description": "list projects by project ID", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "id", + "related": "listProjectAccounts,activateProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "UUID of the IPv4 subnet.", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "id", - "related": "listIpv4SubnetsForZone,dedicateIpv4SubnetForZone", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" - } - ], - "related": "dedicateIpv4SubnetForZone", - "response": [ + }, { - "description": "the domain ID of the IPv4 subnet", - "name": "domainid", + "description": "list projects by state", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "the domain name of the IPv4 subnet", - "name": "domain", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", + "description": "comma separated list of project details requested, value can be a list of [ all, resource, min]", + "length": 255, + "name": "details", + "required": false, + "type": "list" + }, + { + "description": "flag to display the resource icon for projects", + "length": 255, + "name": "showicon", + "required": false, + "type": "boolean" + }, + { + "description": "List projects by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" + } + ], + "related": "listProjectAccounts,activateProject,suspendProject,updateProject", + "response": [ + { + "description": "the total number of virtual machines that can be deployed by this project", + "name": "vmlimit", "type": "string" }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, { - "description": "guest IPv4 subnet", - "name": "subnet", + "description": "the total number of vpcs available to be created for this project", + "name": "vpcavailable", "type": "string" }, { - "description": "date when this IPv4 subnet was created.", + "description": "the date this project was created", "name": "created", "type": "date" }, - {}, - {}, { - "description": "the project name of the IPv4 subnet", - "name": "project", - "type": "string" + "description": "the total number of networks owned by project", + "name": "networktotal", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the domain id the project belongs to", + "name": "domainid", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -92131,311 +84414,218 @@ "type": "string" }, { - "description": "the account of the IPv4 subnet", - "name": "account", + "description": "the total primary storage space (in GiB) the project can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the project id of the IPv4 subnet", - "name": "projectid", + "description": "the project account name of the project", + "name": "projectaccountname", "type": "string" }, { - "description": "name of zone to which the IPv4 subnet belongs to.", - "name": "zonename", + "description": "the total number of public ip addresses this project can acquire", + "name": "iplimit", "type": "string" }, { - "description": "id of the guest IPv4 subnet", - "name": "id", + "description": "the total memory (in MB) the project can own", + "name": "memorylimit", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Adds account to a project", - "isasync": true, - "name": "addAccountToProject", - "params": [ - { - "description": "ID of the project to add the account to", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": true, - "type": "uuid" }, { - "description": "Project role type to be assigned to the user - Admin/Regular; default: Regular", - "length": 255, - "name": "roletype", - "required": false, + "description": "the domain name where the project belongs to", + "name": "domain", "type": "string" }, { - "description": "ID of the project role", - "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", - "required": false, - "type": "uuid" + "description": "the total memory (in MB) available to be created for this project", + "name": "memoryavailable", + "type": "string" }, { - "description": "email to which invitation to the project is going to be sent", - "length": 255, - "name": "email", - "required": false, - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "name of the account to be added to the project", - "length": 255, - "name": "account", - "required": false, - "type": "string" - } - ], - "response": [ - {}, + "description": "the total number of vpcs owned by project", + "name": "vpctotal", + "type": "long" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "The tagged resource limit and count for the project", + "name": "taggedresources", + "type": "list" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the total number of templates which can be created by this project", + "name": "templatelimit", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the total number of virtual machines running for this project", + "name": "vmrunning", "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total primary storage space (in GiB) available to be used for this project", + "name": "primarystorageavailable", "type": "string" - } - ], - "since": "3.0.0" - }, - { - "description": "Lists all available snapshots for the account.", - "isasync": false, - "name": "listSnapshots", - "params": [ + }, { - "description": "the ID of the disk volume", - "length": 255, - "name": "volumeid", - "related": "createVolume,updateVolume,listVolumes,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": false, - "type": "uuid" + "description": "the total secondary storage space (in GiB) the project can own", + "name": "secondarystoragelimit", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the total secondary storage space (in GiB) owned by project", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the total number of virtual machines deployed by this project", + "name": "vmtotal", + "type": "long" }, + {}, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "the total primary storage space (in GiB) owned by project", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "valid values are HOURLY, DAILY, WEEKLY, and MONTHLY.", - "length": 255, - "name": "intervaltype", - "required": false, + "description": "the total number of networks available to be created for this project", + "name": "networkavailable", "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the total number of cpu cores available to be created for this project", + "name": "cpuavailable", + "type": "string" }, { - "description": "list snapshots by zone id", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the total volume which can be used by this project", + "name": "volumelimit", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the name of the project", + "name": "name", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the state of the project", + "name": "state", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "the total number of networks the project can own", + "name": "networklimit", + "type": "string" }, { - "description": "lists snapshot by snapshot ID", - "length": 255, + "description": "the id of the project", "name": "id", - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,listSnapshots", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "If set to false, list templates across zones and their storages", - "length": 255, - "name": "showunique", - "required": false, - "since": "4.19.0", - "type": "boolean" + "description": "the total secondary storage space (in GiB) available to be used for this project", + "name": "secondarystorageavailable", + "type": "string" }, { - "description": "lists snapshot by snapshot name", - "length": 255, - "name": "name", - "required": false, + "description": "the displaytext of the project", + "name": "displaytext", "type": "string" }, { - "description": "list snapshots by location type. Used only when showunique=false. Valid location types: 'primary', 'secondary'. Default is empty", - "length": 255, - "name": "locationtype", - "required": false, - "since": "4.19.0", - "type": "string" + "description": "the total number of cpu cores owned by project", + "name": "cputotal", + "type": "long" }, { - "description": "valid values are MANUAL or RECURRING.", - "length": 255, - "name": "snapshottype", - "required": false, + "description": "the total number of public ip addresses available for this project to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "ID of the image or image cache store", - "length": 255, - "name": "imagestoreid", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": false, - "since": "4.19", - "type": "uuid" + "description": "the total memory (in MB) owned by project", + "name": "memorytotal", + "type": "long" }, { - "description": "the IDs of the snapshots, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots,listSnapshots", - "required": false, - "since": "4.9", - "type": "list" + "description": "the total number of templates available to be created by this project", + "name": "templateavailable", + "type": "string" }, { - "description": "ID of the storage pool", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "required": false, - "since": "4.19", - "type": "uuid" + "description": "the total number of cpu cores the project can own", + "name": "cpulimit", + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, - "type": "string" + "description": "the total number of public ip addresses allocated for this project", + "name": "iptotal", + "type": "long" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots", - "response": [ + "description": "the total volume being used by this project", + "name": "volumetotal", + "type": "long" + }, { - "description": "ID of the snapshot", - "name": "id", + "description": "the total volume available for this project", + "name": "volumeavailable", "type": "string" }, { - "description": "type of the datastore for the snapshot entry", - "name": "datastoretype", + "description": "the total number of snapshots available for this project", + "name": "snapshotavailable", "type": "string" }, - {}, { - "description": "type of the disk volume", - "name": "volumetype", + "description": "the total number of virtual machines available for this project to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the domain name of the snapshot's account", - "name": "domain", + "description": "the total number of snapshots which can be stored by this project", + "name": "snapshotlimit", "type": "string" }, { - "description": "virtual size of backedup snapshot on image store", - "name": "virtualsize", + "description": "the total number of snapshots stored by this project", + "name": "snapshottotal", "type": "long" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the account name of the project's owners", + "name": "owner", + "type": "list" }, { - "description": "state of the snapshot on the datastore", - "name": "datastorestate", - "type": "string" + "description": "the total number of templates which have been created by this project", + "name": "templatetotal", + "type": "long" }, { - "description": "the list of resource tags associated", + "description": "the total number of virtual machines stopped for this project", + "name": "vmstopped", + "type": "integer" + }, + { + "description": "the list of resource tags associated with vm", "name": "tags", "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, { "description": "tag key name", "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -92449,13 +84639,8 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -92464,8 +84649,8 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -92473,1426 +84658,771 @@ "name": "account", "type": "string" }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, { "description": "customer associated with the tag", "name": "customer", "type": "string" } ], - "type": "set" - }, - { - "description": " the date the snapshot was created", - "name": "created", - "type": "date" + "type": "list" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "the total number of vpcs the project can own", + "name": "vpclimit", "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Creates an account", + "isasync": false, + "name": "createAccount", + "params": [ + { + "description": "details for account used to store specific parameters", + "length": 255, + "name": "accountdetails", + "required": false, + "type": "map" }, { - "description": "the project id of the snapshot", - "name": "projectid", + "description": "lastname", + "length": 255, + "name": "lastname", + "required": true, "type": "string" }, { - "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", - "name": "state", - "type": "state" + "description": "Creates the user under the specified domain.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "id of the os on volume", - "name": "ostypeid", + "description": "Name of the account to be created. The user will be added to this newly created account. If no account is specified, the username will be used as the account name.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "valid location types are primary and secondary.", - "name": "locationtype", + "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.", + "length": 255, + "name": "password", + "required": true, "type": "string" }, { - "description": "physical size of backedup snapshot on image store", - "name": "physicalsize", - "type": "long" + "description": "Creates the account under the specified role.", + "length": 255, + "name": "roleid", + "related": "importRole,listRoles,updateRole", + "required": false, + "type": "uuid" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Network domain for the account's networks", + "length": 255, + "name": "networkdomain", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "name of the disk volume", - "name": "volumename", + "description": "User UUID, required for adding account from external provisioning system", + "length": 255, + "name": "userid", + "required": false, "type": "string" }, { - "description": "display name of the os on volume", - "name": "osdisplayname", + "description": "firstname", + "length": 255, + "name": "firstname", + "required": true, "type": "string" }, { - "description": "path of the Domain the snapshot's account belongs to", - "name": "domainpath", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "length": 255, + "name": "timezone", + "required": false, "type": "string" }, { - "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", - "name": "revertable", - "type": "boolean" + "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": "integer" }, { - "description": "the project name of the snapshot", - "name": "project", + "description": "email", + "length": 255, + "name": "email", + "required": true, "type": "string" }, { - "description": "the type of the snapshot", - "name": "snapshottype", + "description": "Unique username.", + "length": 255, + "name": "username", + "required": true, "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "Account UUID, required for adding account from external provisioning system", + "length": 255, + "name": "accountid", + "required": false, "type": "string" - }, + } + ], + "related": "enableAccount,listAccounts,listAccounts", + "response": [ { - "description": "the account associated with the snapshot", - "name": "account", - "type": "string" + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "name of the datastore for the snapshot entry", - "name": "datastorename", - "type": "string" + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" }, { - "description": "state of the disk volume", - "name": "volumestate", + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", "type": "string" }, { - "description": "ID of the datastore for the snapshot entry", - "name": "datastoreid", - "type": "string" + "description": "the date when this account was created", + "name": "created", + "type": "date" }, { - "description": "the domain ID of the snapshot's account", - "name": "domainid", + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", "type": "string" }, { - "description": "ID of the disk volume", - "name": "volumeid", + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, - {}, { - "description": "name of the snapshot", - "name": "name", + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "id of the availability zone", - "name": "zoneid", - "type": "string" + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" }, { - "description": "valid types are hourly, daily, weekly, monthy, template, and none.", - "name": "intervaltype", + "description": "the id of the account", + "name": "id", "type": "string" }, { - "description": "download progress of a snapshot", - "name": "downloaddetails", - "type": "map" - } - ] - }, - { - "description": "migrates resources from one secondary storage to destination image store", - "isasync": true, - "name": "migrateResourceToAnotherSecondaryStorage", - "params": [ - { - "description": "id(s) of the templates to be migrated", - "length": 255, - "name": "templates", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "list" - }, - { - "description": "id(s) of the snapshots to be migrated", - "length": 255, - "name": "snapshots", - "related": "createSnapshotFromVMSnapshot,copySnapshot,archiveSnapshot,listSnapshots", - "required": false, - "type": "list" - }, - { - "description": "id of the image store from where the data is to be migrated", - "length": 255, - "name": "srcpool", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": true, - "type": "uuid" - }, - { - "description": "id of the destination secondary storage pool to which the resources are to be migrated", - "length": 255, - "name": "destpool", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": true, - "type": "uuid" - } - ], - "related": "migrateSecondaryStorageData", - "response": [ - { - "description": "Response message from migration of secondary storage data objects", - "name": "message", + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", + "type": "integer" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, - {}, { - "description": "Type of migration requested for", - "name": "migrationtype", + "description": "the name of the account", + "name": "name", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the default zone of the account", + "name": "defaultzoneid", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Deletes a keypair by name", - "isasync": false, - "name": "deleteSSHKeyPair", - "params": [ - { - "description": "the domain ID associated with the keypair", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" }, { - "description": "the project associated with keypair", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" }, { - "description": "Name of the keypair", - "length": 255, - "name": "name", - "required": true, + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the account associated with the keypair. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the state of the account", + "name": "state", "type": "string" - } - ], - "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", + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", "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": "Searches LDAP based on the username attribute", - "isasync": false, - "name": "searchLdap", - "params": [ { - "description": "query to search using", - "length": 255, - "name": "query", - "related": "searchLdap", - "required": true, + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "The user's principle", - "name": "principal", + "description": "the total number of networks the account can own", + "name": "networklimit", "type": "string" }, { - "description": "The user's lastname", - "name": "lastname", + "description": "the total volume available for this account", + "name": "volumeavailable", "type": "string" }, + {}, { - "description": "The user's domain", - "name": "domain", - "type": "string" + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" }, - {}, { - "description": "The user's username", - "name": "username", + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", "type": "string" }, { - "description": "The user's email", - "name": "email", + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", "type": "string" }, { - "description": "The user's firstname", - "name": "firstname", + "description": "id of the Domain the account belongs to", + "name": "domainid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "path of the Domain the account belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "The authentication source for this user as known to the system or empty if the user is not yet in cloudstack.", - "name": "conflictingusersource", + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Returns the status of CloudStack, whether a shutdown has been triggered and if ready to shutdown", - "isasync": false, - "name": "readyForShutdown", - "params": [ - { - "description": "the uuid of the management server", - "length": 255, - "name": "managementserverid", - "related": "listManagementServers", - "required": false, - "type": "uuid" - } - ], - "related": "prepareForShutdown", - "response": [ - { - "description": "Indicates whether CloudStack is ready to shutdown", - "name": "readyforshutdown", - "type": "boolean" }, - {}, { - "description": "The number of jobs in progress", - "name": "pendingjobscount", - "type": "long" + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", + "type": "string" }, { - "description": "The id of the management server", - "name": "managementserverid", + "description": "the total number of vpcs owned by account", + "name": "vpctotal", "type": "long" }, { - "description": "Indicates whether a shutdown has been triggered", - "name": "shutdowntriggered", - "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", + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", "type": "integer" - } - ], - "since": "4.19.0" - }, - { - "description": "create Tungsten-Fabric logical router", - "isasync": true, - "name": "createTungstenFabricLogicalRouter", - "params": [ - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" }, { - "description": "Tungsten-Fabric logical router name", - "length": 255, - "name": "name", - "required": true, + "description": "the ID of the role", + "name": "roleid", "type": "string" - } - ], - "related": "removeTungstenFabricNetworkGatewayFromLogicalRouter", - "response": [ - { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "name of the Domain the account belongs to", + "name": "domain", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" }, - {}, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "Tungsten-Fabric logical router uuid", - "name": "uuid", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "Tungsten-Fabric logical router name", - "name": "name", - "type": "string" - } - ] - }, - { - "description": "Start a Shared FileSystem", - "isasync": true, - "name": "startSharedFileSystem", - "params": [ - { - "description": "the ID of the shared filesystem", - "length": 255, - "name": "id", - "related": "listSharedFileSystems,startSharedFileSystem,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": true, - "type": "uuid" - } - ], - "related": "listSharedFileSystems,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "response": [ - { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", + "type": "boolean" }, { - "description": "the bytes allocated", - "name": "virtualsize", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", + "description": "the total number of projects the account can own", + "name": "projectlimit", "type": "string" }, { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", + "description": "the total number of networks owned by account", + "name": "networktotal", "type": "long" }, { - "description": "Name of the availability zone", - "name": "zonename", + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" + }, + { + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", "type": "string" }, { - "description": "the filesystem format", - "name": "filesystem", + "description": "details for the account", + "name": "accountdetails", + "type": "map" + }, + { + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the project ID of the shared filesystem", - "name": "projectid", + "description": "the total volume which can be used by this account", + "name": "volumelimit", "type": "string" }, { - "description": "the list of nics associated with the shared filesystem", - "name": "nic", + "description": "the list of users associated with account", + "name": "user", "response": [ { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", + "description": "true if user is default, false otherwise", "name": "isdefault", "type": "boolean" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the type of the role", + "name": "roletype", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", + "description": "the account type of the user", + "name": "accounttype", "type": "integer" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the shared filesystem provider", - "name": "provider", - "type": "string" - }, - { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", - "type": "string" - }, - { - "description": "the shared filesystem's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", - "type": "string" - }, - {}, - { - "description": "name of the storage pool hosting the data volume", - "name": "storage", - "type": "string" - }, - { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "Network name of the shared filesystem", - "name": "networkname", - "type": "string" - }, - { - "description": "the disk utilization", - "name": "utilization", - "type": "string" - }, - { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", - "type": "string" - }, - { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", - "type": "string" - }, - { - "description": "ID of the storage fs vm", - "name": "vmstate", - "type": "string" - }, - { - "description": "Network ID of the shared filesystem", - "name": "networkid", - "type": "string" - }, - { - "description": "the project name of the shared filesystem", - "name": "project", - "type": "string" - }, - { - "description": "service offering ID for the shared filesystem", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "ID of the storage fs data volume", - "name": "volumeid", - "type": "string" - }, - { - "description": "ID of the shared filesystem", - "name": "id", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", - "type": "string" + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" }, { - "description": "tag value", - "name": "value", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the user state", + "name": "state", "type": "string" } ], - "type": "set" - }, - { - "description": "name of the storage fs data volume", - "name": "volumename", - "type": "string" - }, - { - "description": "the account associated with the shared filesystem", - "name": "account", - "type": "string" + "type": "list" }, { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", "type": "string" }, + {}, { - "description": "path to mount the shared filesystem", - "name": "path", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", "type": "string" }, { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" }, - {}, { - "description": "disk offering for the shared filesystem", - "name": "diskofferingname", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "description of the shared filesystem", - "name": "description", + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "size of the shared filesystem", - "name": "size", + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", "type": "long" }, { - "description": "the state of the shared filesystem", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the domain associated with the shared filesystem", - "name": "domain", + "description": "the total number of vpcs the account can own", + "name": "vpclimit", "type": "string" }, { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", - "type": "string" + "description": "true if account is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "name of the shared filesystem", - "name": "name", + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", "type": "string" } - ], - "since": "4.20.0" + ] }, { - "description": "create Tungsten-Fabric firewall", + "description": "Revert VM from a vmsnapshot.", "isasync": true, - "name": "createTungstenFabricFirewallRule", + "name": "revertToVMSnapshot", "params": [ { - "description": "Tungsten-Fabric firewall rule source address group uuid", - "length": 255, - "name": "srcaddressgroupuuid", - "required": false, - "type": "string" - }, - { - "description": "the uuid of Tungsten-Fabric destination network", - "length": 255, - "name": "destnetworkuuid", - "required": false, - "type": "string" - }, - { - "description": "the uuid of Tungsten-Fabric firewall policy", - "length": 255, - "name": "firewallpolicyuuid", - "required": true, - "type": "string" - }, - { - "description": "the sequence of Tungsten-Fabric firewall rule", - "length": 255, - "name": "sequence", - "required": true, - "type": "integer" - }, - { - "description": "Tungsten-Fabric firewall rule service group uuid", - "length": 255, - "name": "servicegroupuuid", - "required": true, - "type": "string" - }, - { - "description": "the ID of zone", + "description": "The ID of the vm snapshot", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "vmsnapshotid", + "related": "listVMSnapshot,createVMSnapshot", "required": true, "type": "uuid" - }, - { - "description": "Tungsten-Fabric firewall rule source tag uuid", - "length": 255, - "name": "srctaguuid", - "required": false, - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule tag type uuid", - "length": 255, - "name": "tagtypeuuid", - "required": false, - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule action", - "length": 255, - "name": "action", - "required": true, - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule name", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule destination address group uuid", - "length": 255, - "name": "destaddressgroupuuid", - "required": false, - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule destination tag uuid", - "length": 255, - "name": "desttaguuid", - "required": false, - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule direction", - "length": 255, - "name": "direction", - "required": true, - "type": "string" - }, - { - "description": "the uuid of Tungsten-Fabric source network", - "length": 255, - "name": "srcnetworkuuid", - "required": false, - "type": "string" } ], - "related": "listTungstenFabricFirewallRule", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,deployVirtualMachine,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "response": [ { - "description": "Tungsten-Fabric firewall rule source tag", - "name": "srctag", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, - {}, - { - "description": "Tungsten-Fabric firewall rule destination tag", - "name": "desttag", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule destination address group", - "name": "destaddressgroup", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule destination network", - "name": "destnetwork", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule source address group", - "name": "srcaddressgroup", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule source network", - "name": "srcnetwork", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "Tungsten-Fabric firewall rule direction", - "name": "direction", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, + {}, { - "description": "Tungsten-Fabric firewall rule action", - "name": "action", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "Tungsten-Fabric firewall rule tag type", - "name": "tagtype", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "Tungsten-Fabric firewall rule uuid", - "name": "uuid", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "Tungsten-Fabric firewall rule name", - "name": "name", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", + "description": "the read (IO) of disk on the VM", + "name": "diskioread", "type": "long" }, - {}, { - "description": "Tungsten-Fabric firewall rule service group", - "name": "servicegroup", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Lists all configurations.", - "isasync": false, - "name": "listConfigurations", - "params": [ - { - "description": "lists configurations by category", - "length": 255, - "name": "category", - "required": false, + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the ID of the Cluster to update the parameter value for corresponding cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Image Store to update the parameter value for corresponding image store", - "length": 255, - "name": "imagestoreuuid", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": false, - "type": "uuid" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "the ID of the Zone to update the parameter value for corresponding zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Account to update the parameter value for corresponding account", - "length": 255, - "name": "accountid", - "related": "disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Domain to update the parameter value for corresponding domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" - }, - { - "description": "lists configuration by subgroup name (primarily used for UI)", - "length": 255, - "name": "subgroup", - "required": false, - "since": "4.18.0", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the memory allocated for the virtual machine", + "name": "memory", "type": "integer" }, { - "description": "lists configuration by parent name (primarily used for UI)", - "length": 255, - "name": "parent", - "required": false, - "since": "4.18.0", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "lists configuration by name", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "lists configuration by group name (primarily used for UI)", - "length": 255, - "name": "group", - "required": false, - "since": "4.18.0", - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the possible options of the configuration value", - "name": "options", - "type": "string" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, - {}, { - "description": "the default value of the configuration", - "name": "defaultvalue", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the type of the configuration value", - "name": "type", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "the subgroup of the configuration", - "name": "subgroup", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the display text of the configuration", - "name": "displaytext", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the category of the configuration", - "name": "category", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the description of the configuration", - "name": "description", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the group of the configuration", - "name": "group", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated", - "name": "scope", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the value of the configuration", - "name": "value", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "true if the configuration is dynamic", - "name": "isdynamic", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the name of the configuration", - "name": "name", - "type": "string" - }, - { - "description": "the name of the parent configuration", - "name": "parent", - "type": "string" - }, - { - "description": "the component of the configuration", - "name": "component", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the value of the configuration", - "name": "id", - "type": "long" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Scales a created, running or stopped CloudManaged Kubernetes cluster", - "isasync": true, - "name": "scaleKubernetesCluster", - "params": [ - { - "description": "the IDs of the nodes to be removed", - "length": 255, - "name": "nodeids", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "list" - }, - { - "description": "Whether autoscaling is enabled for the cluster", - "length": 255, - "name": "autoscalingenabled", - "required": false, - "type": "boolean" - }, - { - "description": "Maximum number of worker nodes in the cluster", - "length": 255, - "name": "maxsize", - "required": false, - "type": "long" - }, - { - "description": "Minimum number of worker nodes in the cluster", - "length": 255, - "name": "minsize", - "required": false, - "type": "long" - }, - { - "description": "number of Kubernetes cluster nodes", - "length": 255, - "name": "size", - "required": false, - "type": "long" - }, - { - "description": "the ID of the Kubernetes cluster", - "length": 255, - "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", - "required": true, - "type": "uuid" - }, - { - "description": "the ID of the service offering for the virtual machines in the cluster.", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": false, - "type": "uuid" - } - ], - "related": "createKubernetesCluster,startKubernetesCluster", - "response": [ - { - "description": "path of the domain to which the Kubernetes cluster belongs", - "name": "domainpath", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the state of the Kubernetes cluster", - "name": "state", - "type": "string" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the control nodes count for the Kubernetes cluster", - "name": "controlnodes", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "the ID of the network of the Kubernetes cluster", - "name": "networkid", - "type": "string" - }, - { - "description": "the date when this Kubernetes cluster was created", - "name": "created", - "type": "date" - }, - { - "description": "the id of the Kubernetes cluster", - "name": "id", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the ID of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionid", - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the size (worker nodes count) of the Kubernetes cluster", - "name": "size", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { @@ -93901,333 +85431,647 @@ "type": "integer" }, { - "description": "the account associated with the Kubernetes cluster", - "name": "account", - "type": "string" - }, - { - "description": "URL end point for the Kubernetes cluster dashboard UI", - "name": "consoleendpoint", - "type": "string" - }, - { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain in which the Kubernetes cluster exists", - "name": "domainid", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the ID of the service offering of the Kubernetes cluster", - "name": "serviceofferingid", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "Public IP Address ID of the cluster", - "name": "ipaddressid", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "Whether autoscaling is enabled for the cluster", - "name": "autoscalingenabled", - "type": "boolean" - }, - { - "description": "the list of virtualmachine associated with this Kubernetes cluster", - "name": "virtualmachines", - "type": "list" - }, - { - "description": "the ID of the template of the Kubernetes cluster", - "name": "templateid", - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "the name of the domain in which the Kubernetes cluster exists", - "name": "domain", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "the name of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionname", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" }, { - "description": "the name of the service offering of the Kubernetes cluster", - "name": "serviceofferingname", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, { - "description": "the memory the Kubernetes cluster", - "name": "memory", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "keypair details", - "name": "keypair", - "type": "string" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + } + ], + "type": "set" }, { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zoneid", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zonename", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "URL end point for the Kubernetes cluster", - "name": "endpoint", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, + {}, { - "description": "the cpu cores of the Kubernetes cluster", - "name": "cpunumber", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, - {}, { - "description": "Maximum size of the cluster", - "name": "maxsize", - "type": "long" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the name of the network of the Kubernetes cluster", - "name": "associatednetworkname", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "Public IP Address of the cluster", - "name": "ipaddress", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "Minimum size of the cluster", - "name": "minsize", - "type": "long" - }, - { - "description": "the project name of the Kubernetes cluster", - "name": "project", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the name of the Kubernetes cluster", - "name": "name", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", - "name": "masternodes", - "type": "long" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, { - "description": "the type of the cluster", - "name": "clustertype", - "type": "clustertype" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the description of the Kubernetes cluster", - "name": "description", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" - } - ] - }, - { - "description": "Stops a NetScalervm.", - "isasync": true, - "name": "stopNetScalerVpx", - "params": [ - { - "description": "the ID of the NetScaler vm", - "length": 255, - "name": "id", - "related": "listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs,stopNetScalerVpx", - "required": true, - "type": "uuid" }, { - "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" - } - ], - "related": "listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", - "response": [ - { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - }, - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - } - ], + "description": "NICs of the VNF appliance", + "name": "vnfnics", "type": "list" }, { - "description": "the domain associated with the router", - "name": "domain", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" - }, - {}, - { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" - }, - { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the first DNS for the router", - "name": "dns1", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "role of the domain router", - "name": "role", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the public IP address for the router", - "name": "publicip", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, - {}, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the gateway for the router", - "name": "gateway", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the hostname for the router", - "name": "hostname", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" + }, + { + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the list of nics associated with the router", + "description": "the list of nics associated with vm", "name": "nic", "response": [ { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the type of the nic", + "name": "type", + "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { @@ -94236,24 +86080,29 @@ "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" }, { "description": "Type of adapter if available", @@ -94261,8 +86110,8 @@ "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { @@ -94271,63 +86120,78 @@ "type": "string" }, { - "description": "the type of the nic", - "name": "type", - "type": "string" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, { "description": "public IP address associated with this nic via Static nat rule", "name": "publicip", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", "type": "list" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { @@ -94336,339 +86200,383 @@ "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + } + ], + "type": "set" + }, + { + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" } ], "type": "set" }, { - "description": "the project name of the address", + "description": "the project name of the vm", "name": "project", "type": "string" }, { - "description": "the id of the router", - "name": "id", - "type": "string" - }, - { - "description": "the host ID for the router", + "description": "the ID of the host for the virtual machine", "name": "hostid", "type": "string" }, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the second DNS for the router", - "name": "dns2", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the version of template", - "name": "version", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, + {} + ], + "since": "4.2.0" + }, + { + "description": "Lists host tags", + "isasync": false, + "name": "listHostTags", + "params": [ { - "description": "the Zone ID for the router", - "name": "zoneid", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", - "type": "string" - }, - { - "description": "the state of the router", - "name": "state", - "type": "state" - }, - { - "description": "the Pod ID for the router", - "name": "podid", - "type": "string" + "description": "the host ID of the host tag", + "name": "hostid", + "type": "long" }, + {}, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", + "description": "the ID of the host tag", + "name": "id", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "true if the host tag is implicit", + "name": "isimplicit", + "type": "boolean" }, { - "description": "the template name for the router", - "name": "templatename", + "description": "the name of the host tag", + "name": "name", "type": "string" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", - "type": "string" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Add a new guest OS type", + "isasync": true, + "name": "addGuestOs", + "params": [ { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", + "description": "Unique display name for Guest OS", + "length": 255, + "name": "osdisplayname", + "required": true, "type": "string" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", - "type": "string" + "description": "Map of (key/value pairs)", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the Zone name for the router", - "name": "zonename", - "type": "string" + "description": "whether this guest OS is available for end users", + "length": 255, + "name": "forDisplay", + "required": false, + "type": "boolean" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "ID of Guest OS category", + "length": 255, + "name": "oscategoryid", + "related": "listOsCategories", + "required": true, + "type": "uuid" }, { - "description": "the name of the router", + "description": "Optional name for Guest OS", + "length": 255, "name": "name", + "required": false, "type": "string" - }, - { - "description": "the date and time the router was created", - "name": "created", - "type": "date" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, + } + ], + "related": "", + "response": [ + {}, { - "description": "the domain ID associated with the router", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the name of the OS type", + "name": "name", "type": "string" }, { - "description": "path of the Domain the router belongs to", - "name": "domainpath", + "description": "the ID of the OS type", + "name": "id", "type": "string" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", - "type": "string" + "description": "is the guest OS user defined", + "name": "isuserdefined", + "type": "boolean" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "the name/description of the OS type", + "name": "description", "type": "string" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", - "type": "string" - } - ] - }, - { - "description": "Deletes a vm group", - "isasync": false, - "name": "deleteInstanceGroup", - "params": [ - { - "description": "the ID of the instance group", - "length": 255, - "name": "id", - "related": "updateInstanceGroup", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "is the guest OS visible for the users", + "name": "fordisplay", + "type": "boolean" + }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the OS category", + "name": "oscategoryid", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the name of the OS category", + "name": "oscategoryname", "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" } - ] + ], + "since": "4.4.0" }, { - "description": "Updates traffic type of a physical network", - "isasync": true, - "name": "updateTrafficType", + "description": "add an annotation.", + "isasync": false, + "name": "addAnnotation", "params": [ { - "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host", - "length": 255, - "name": "hypervnetworklabel", - "required": false, - "type": "string" - }, - { - "description": "The network name label of the physical device dedicated to this traffic on a VMware host", + "description": "the annotation is visible for admins only", "length": 255, - "name": "vmwarenetworklabel", + "name": "adminsonly", "required": false, - "type": "string" + "since": "4.16.0", + "type": "boolean" }, { - "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", + "description": "The following entity types are allowed VM, VOLUME, SNAPSHOT, VM_SNAPSHOT, INSTANCE_GROUP, SSH_KEYPAIR, USER_DATA, NETWORK, VPC, PUBLIC_IP_ADDRESS, VPN_CUSTOMER_GATEWAY, TEMPLATE, ISO, KUBERNETES_CLUSTER, SERVICE_OFFERING, DISK_OFFERING, NETWORK_OFFERING, ZONE, POD, CLUSTER, HOST, DOMAIN, PRIMARY_STORAGE, SECONDARY_STORAGE, VR, SYSTEM_VM, AUTOSCALE_VM_GROUP, MANAGEMENT_SERVER", "length": 255, - "name": "xennetworklabel", + "name": "entitytype", "required": false, "type": "string" }, { - "description": "traffic type id", - "length": 255, - "name": "id", - "related": "addTrafficType,updateTrafficType", - "required": true, - "type": "uuid" - }, - { - "description": "The network name label of the physical device dedicated to this traffic on a KVM host", + "description": "the annotation text", "length": 255, - "name": "kvmnetworklabel", + "name": "annotation", "required": false, "type": "string" }, { - "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", + "description": "the id of the entity to annotate", "length": 255, - "name": "ovm3networklabel", + "name": "entityid", "required": false, "type": "string" } ], - "related": "addTrafficType", + "related": "removeAnnotation,updateAnnotationVisibility", "response": [ - {}, { - "description": "the trafficType to be added to the physical network", - "name": "traffictype", - "type": "string" + "description": "the creation timestamp for this annotation", + "name": "created", + "type": "date" }, { - "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", - "name": "ovm3networklabel", + "description": "the removal timestamp for this annotation", + "name": "removed", + "type": "date" + }, + { + "description": "the (uu)id of the annotation", + "name": "id", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "True if the annotation is available for admins only", + "name": "adminsonly", + "type": "boolean" }, { - "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", - "name": "xennetworklabel", + "description": "The username of the user that entered the annotation", + "name": "username", "type": "string" }, + {}, { - "description": "The network name label of the physical device dedicated to this traffic on a HyperV host", - "name": "hypervnetworklabel", + "description": "the type of the annotated entity", + "name": "entitytype", "type": "string" }, { - "description": "The network name label of the physical device dedicated to this traffic on a KVM host", - "name": "kvmnetworklabel", + "description": "the contents of the annotation", + "name": "annotation", "type": "string" }, { - "description": "The network name label of the physical device dedicated to this traffic on a VMware host", - "name": "vmwarenetworklabel", + "description": "The (uu)id of the user that entered the annotation", + "name": "userid", "type": "string" }, { - "description": "id of the network provider", - "name": "id", + "description": "the name of the entity to which this annotation pertains", + "name": "entityname", "type": "string" }, { @@ -94677,487 +86585,482 @@ "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the (uu)id of the entity to which this annotation pertains", + "name": "entityid", "type": "string" }, - {} + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } ], - "since": "3.0.0" + "since": "4.11" }, { - "description": "List Conditions for VM auto scaling", - "isasync": false, - "name": "listConditions", + "description": "Removes a Guest OS Mapping.", + "isasync": true, + "name": "removeGuestOsMapping", "params": [ { - "description": "list only resources belonging to the domain specified", + "description": "ID of the guest OS mapping", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, + "name": "id", + "related": "", + "required": true, "type": "uuid" - }, + } + ], + "response": [ { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "Counter-id of the condition.", - "length": 255, - "name": "counterid", - "related": "createCounter", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the policy", - "length": 255, - "name": "policyid", - "related": "listAutoScalePolicies", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "createProject", - "required": false, - "type": "uuid" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, + {} + ], + "since": "4.4.0" + }, + { + "description": "Recover a Shared FileSystem by id", + "isasync": false, + "name": "recoverSharedFileSystem", + "params": [ { - "description": "ID of the Condition.", + "description": "the ID of the shared filesystem to recover", "length": 255, "name": "id", - "related": "listConditions", + "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", "required": false, "type": "uuid" } ], - "related": "", "response": [ - {}, - { - "description": "Threshold Value for the counter.", - "name": "threshold", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "path of the domain to which the Condition owner belongs", - "name": "domainpath", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the Id of the Counter.", - "name": "counterid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the project name of the Condition", - "name": "project", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, {}, { - "description": "the id of the Condition", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {} + ], + "since": "4.20.0" + }, + { + "description": "Registers an existing ISO into the CloudStack Cloud.", + "isasync": false, + "name": "registerIso", + "params": [ { - "description": "the domain id of the Condition owner", - "name": "domainid", - "type": "string" + "description": "true if the ISO or its derivatives are extractable; default is false", + "length": 255, + "name": "isextractable", + "required": false, + "type": "boolean" }, { - "description": "zone id of counter", - "name": "zoneid", + "description": "the CPU arch of the ISO. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", "type": "string" }, { - "description": "Relational Operator to be used with threshold.", - "name": "relationaloperator", + "description": "the URL to where the ISO is currently being hosted", + "length": 2048, + "name": "url", + "required": true, "type": "string" }, { - "description": "the Name of the Counter.", - "name": "countername", - "type": "string" + "description": "the ID of the zone you wish to register the ISO to.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" }, { - "description": "the owner of the Condition.", - "name": "account", + "description": "Image store UUID", + "length": 255, + "name": "imagestoreuuid", + "required": false, "type": "string" }, { - "description": "Details of the Counter.", - "name": "counter", - "type": "counterresponse" - }, - { - "description": "the domain name of the owner.", - "name": "domain", + "description": "the name of the ISO", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the project id of the Condition.", + "description": "Register ISO for the project", + "length": 255, "name": "projectid", - "type": "string" - } - ] - }, - { - "description": "migrates data objects from one secondary storage to destination image store(s)", - "isasync": true, - "name": "migrateSecondaryStorageData", - "params": [ + "related": "listProjectAccounts,activateProject,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, { - "description": "id(s) of the destination secondary storage pool(s) to which the templates are to be migrated", + "description": "true if you want this ISO to be featured", "length": 255, - "name": "destpools", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": true, - "type": "list" + "name": "isfeatured", + "required": false, + "type": "boolean" }, { - "description": "Balance: if you want data to be distributed evenly among the destination stores, Complete: If you want to migrate the entire data from source image store to the destination store(s). Default: Complete", + "description": "the ID of the OS type that best represents the OS of this ISO. If the ISO is bootable this parameter needs to be passed", "length": 255, - "name": "migrationtype", + "name": "ostypeid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "an optional account name. Must be used with domainId.", + "length": 255, + "name": "account", "required": false, "type": "string" }, { - "description": "id of the image store from where the data is to be migrated", + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "srcpool", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": true, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, "type": "uuid" - } - ], - "related": "", - "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", + "description": "the checksum value of this ISO. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "length": 255, + "name": "checksum", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if this ISO is bootable. If not passed explicitly its assumed to be true", + "length": 255, + "name": "bootable", + "required": false, + "type": "boolean" }, { - "description": "Response message from migration of secondary storage data objects", - "name": "message", - "type": "string" + "description": "true if ISO contains XS/VMWare tools inorder to support dynamic scaling of VM CPU/memory", + "length": 255, + "name": "isdynamicallyscalable", + "required": false, + "type": "boolean" }, { - "description": "Type of migration requested for", - "name": "migrationtype", - "type": "string" + "description": "true if ISO should bypass Secondary Storage and be downloaded to Primary Storage on deployment", + "length": 255, + "name": "directdownload", + "required": false, + "type": "boolean" }, - {} - ], - "since": "4.15.0" - }, - { - "description": "Destroys a Volume.", - "isasync": true, - "name": "destroyVolume", - "params": [ { - "description": "The ID of the volume", + "description": "true if password reset feature is supported; default is false", "length": 255, - "name": "id", - "related": "createVolume,updateVolume,listVolumes,destroyVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" + "name": "passwordenabled", + "required": false, + "type": "boolean" }, { - "description": "If true is passed, the volume is expunged immediately. False by default.", + "description": "true if you want to register the ISO to be publicly available to all users, false otherwise.", "length": 255, - "name": "expunge", + "name": "ispublic", "required": false, - "since": "4.6.0", "type": "boolean" + }, + { + "description": "the display text of the ISO, defaults to the 'name'", + "length": 4096, + "name": "displaytext", + "required": false, + "type": "string" } ], - "related": "createVolume,updateVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", + "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" + }, + { + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "shared or local storage", - "name": "storagetype", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "the URL which the template/iso is registered from", + "name": "url", + "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "the type of the template", + "name": "templatetype", + "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", "type": "boolean" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "path of the Domain the template belongs to", + "name": "domainpath", "type": "string" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" + }, + { + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, { - "description": "name of the disk volume", - "name": "name", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "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": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the id of userdata linked to this template", + "name": "userdataid", + "type": "string" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "name of the disk offering", - "name": "diskofferingname", - "type": "string" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the ID of the secondary storage host for the template", + "name": "hostid", "type": "string" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "the name of the zone for this template", + "name": "zonename", + "type": "string" }, { - "description": "the status of the volume", - "name": "status", + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" + "description": "the ID of the OS type for this template.", + "name": "ostypeid", + "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the path of the volume", - "name": "path", - "type": "string" + "description": "the date this template was created", + "name": "created", + "type": "date" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, { - "description": "name of the availability zone", - "name": "zonename", - "type": "string" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "the size of the template", + "name": "size", "type": "long" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", "type": "map" }, - {}, { - "description": "the project name of the vpn", - "name": "project", + "description": "the ID of the zone for this template", + "name": "zoneid", "type": "string" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" + }, + {}, + { + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the date this template was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, { @@ -95165,35 +87068,29 @@ "name": "hasannotations", "type": "boolean" }, - {}, { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "pod id of the volume", - "name": "podid", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { @@ -95201,8 +87098,8 @@ "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -95211,8 +87108,8 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -95221,8 +87118,8 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag key name", + "name": "key", "type": "string" }, { @@ -95231,8 +87128,8 @@ "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { @@ -95241,13 +87138,13 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -95257,275 +87154,368 @@ } ], "type": "set" - }, + } + ] + }, + { + "description": "Creates new NS Vpx", + "isasync": true, + "name": "deployNetscalerVpx", + "params": [ { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" + "description": "The network this ip address should be associated to.", + "length": 255, + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the ID of the service offering for the virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "the ID of the template for the virtual machine", + "length": 255, + "name": "templateid", + "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "the state of the disk volume", - "name": "state", - "type": "string" - }, + "description": "availability zone for the virtual machine", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter", + "response": [ { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the physical network to which this netscaler device belongs to", + "name": "physicalnetworkid", "type": "string" }, + {}, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "private IP of the NetScaler representing GSLB site", + "name": "gslbproviderprivateip", + "type": "string" }, + {}, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", + "description": "true if device is dedicated for an account", + "name": "lbdevicededicated", "type": "boolean" }, { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" - }, - { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "public IP of the NetScaler representing GSLB site", + "name": "gslbproviderpublicip", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "device name", + "name": "lbdevicename", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "device state", + "name": "lbdevicestate", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "name of the provider", + "name": "provider", "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", + "description": "true if NetScaler device is provisioned to be a GSLB service provider", + "name": "gslbprovider", "type": "boolean" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", + "name": "isexclusivegslbprovider", + "type": "boolean" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "the public interface of the load balancer", + "name": "publicinterface", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "device id of the netscaler load balancer", + "name": "lbdeviceid", + "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", + "description": "device capacity", + "name": "lbdevicecapacity", "type": "long" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the private interface of the load balancer", + "name": "privateinterface", "type": "string" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "the management IP address of the external load balancer", + "name": "ipaddress", "type": "string" + }, + { + "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "name": "podids", + "type": "list" } - ], - "since": "4.14.0" + ] }, { - "description": "Adds traffic type to a physical network", - "isasync": true, - "name": "addTrafficType", + "description": "Lists the volumes of elastistor", + "isasync": false, + "name": "listElastistorVolume", "params": [ { - "description": "Used if physical network has multiple isolation types and traffic type is public. Choose which isolation method. Valid options currently 'vlan' or 'vxlan', defaults to 'vlan'.", + "description": "the ID of the account", "length": 255, - "name": "isolationmethod", - "required": false, + "name": "id", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "deduplication", + "name": "deduplication", "type": "string" }, { - "description": "the trafficType to be added to the physical network", - "length": 255, - "name": "traffictype", - "required": true, + "description": "compression", + "name": "compression", "type": "string" }, { - "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", - "length": 255, - "name": "ovm3networklabel", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "The VLAN id to be used for Management traffic by VMware host", - "length": 255, - "name": "vlan", - "required": false, + "description": "synchronization", + "name": "sync", "type": "string" }, + {}, { - "description": "The network name label of the physical device dedicated to this traffic on a Hyperv host", + "description": "graceallowed", + "name": "graceallowed", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the id of the volume", + "name": "id", + "type": "string" + }, + {}, + { + "description": "the name of the volume", + "name": "name", + "type": "string" + } + ] + }, + { + "description": "add a baremetal pxe server", + "isasync": true, + "name": "addBaremetalPxeKickStartServer", + "params": [ + { + "description": "Pod Id", "length": 255, - "name": "hypervnetworklabel", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, + "type": "uuid" + }, + { + "description": "type of pxe device", + "length": 255, + "name": "pxeservertype", + "required": true, "type": "string" }, { - "description": "The network name label of the physical device dedicated to this traffic on a KVM host", + "description": "Credentials to reach external pxe device", "length": 255, - "name": "kvmnetworklabel", - "required": false, + "name": "username", + "required": true, "type": "string" }, { - "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", + "description": "Tftp root directory of PXE server", "length": 255, - "name": "xennetworklabel", - "required": false, + "name": "tftpdir", + "required": true, "type": "string" }, { - "description": "The network name label of the physical device dedicated to this traffic on a VMware host", + "description": "Credentials to reach external pxe device", "length": 255, - "name": "vmwarenetworklabel", - "required": false, + "name": "password", + "required": true, "type": "string" }, { "description": "the Physical Network ID", "length": 255, "name": "physicalnetworkid", - "related": "updatePhysicalNetwork", + "related": "createPhysicalNetwork", "required": true, "type": "uuid" + }, + { + "description": "URL of the external pxe device", + "length": 255, + "name": "url", + "required": true, + "type": "string" } ], "related": "", "response": [ { - "description": "the trafficType to be added to the physical network", - "name": "traffictype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "The network name label of the physical device dedicated to this traffic on a XenServer host", - "name": "xennetworklabel", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "The network name label of the physical device dedicated to this traffic on a VMware host", - "name": "vmwarenetworklabel", + "description": "device id of ", + "name": "id", "type": "string" }, { - "description": "The network name of the physical device dedicated to this traffic on an OVM3 host", - "name": "ovm3networklabel", + "description": "url", + "name": "url", "type": "string" }, - {}, { - "description": "the physical network this belongs to", + "description": "the physical network to which this external dhcp device belongs to", "name": "physicalnetworkid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "name of the provider", + "name": "provider", + "type": "string" }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Tftp root directory of PXE server", + "name": "tftpdir", "type": "string" - }, + } + ] + }, + { + "description": "deletes a range of portable public IP's associated with a region", + "isasync": true, + "name": "deletePortableIpRange", + "params": [ { - "description": "id of the network provider", + "description": "Id of the portable ip range", + "length": 255, "name": "id", - "type": "string" + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "The network name label of the physical device dedicated to this traffic on a KVM host", - "name": "kvmnetworklabel", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "The network name label of the physical device dedicated to this traffic on a HyperV host", - "name": "hypervnetworklabel", + "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": "3.0.0" + }, + {}, + {} + ] }, { - "description": "Lists the secondary storage selectors and their rules.", + "description": "Lists Nicira NVP devices", "isasync": false, - "name": "listSecondaryStorageSelectors", + "name": "listNiciraNvpDevices", "params": [ { - "description": "The zone ID to be used in the search filter.", + "description": "nicira nvp device ID", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "nvpdeviceid", + "related": "addNiciraNvpDevice,listNiciraNvpDevices", + "required": false, "type": "uuid" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "Show removed heuristics.", + "description": "the Physical Network ID", "length": 255, - "name": "showremoved", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": false, - "type": "boolean" + "type": "uuid" }, { "description": "List by keyword", @@ -95533,32 +87523,24 @@ "name": "keyword", "required": false, "type": "string" - }, - { - "description": "Whether to filter the selectors by type and, if so, which one. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", - "length": 255, - "name": "type", - "required": false, - "type": "string" } ], - "related": "", + "related": "addNiciraNvpDevice", "response": [ - {}, { - "description": "When the heuristic was removed.", - "name": "removed", - "type": "date" + "description": "the physical network to which this Nirica Nvp belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "ID of the heuristic.", - "name": "id", + "description": "this L3 gateway service Uuid", + "name": "l3gatewayserviceuuid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "device id of the Nicire Nvp", + "name": "nvpdeviceid", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -95566,59 +87548,52 @@ "type": "string" }, { - "description": "Name of the heuristic.", - "name": "name", + "description": "name of the provider", + "name": "provider", "type": "string" }, { - "description": "The heuristic rule, in JavaScript language, used to select a secondary storage to be directed.", - "name": "heuristicrule", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "Description of the heuristic.", - "name": "description", + "description": "the controller Ip address", + "name": "hostname", "type": "string" }, { - "description": "The zone which the heuristic is valid upon.", - "name": "zoneid", + "description": "the transport zone Uuid", + "name": "transportzoneuuid", "type": "string" }, { - "description": "When the heuristic was created.", - "name": "created", - "type": "date" + "description": "device name", + "name": "niciradevicename", + "type": "string" }, + {}, { - "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", - "name": "type", + "description": "this L2 gateway service Uuid", + "name": "l2gatewayserviceuuid", "type": "string" - } - ], - "since": "4.19.0" + }, + {} + ] }, { - "description": "List all virtual machine instances that are assigned to a load balancer rule.", + "description": "Lists all alerts.", "isasync": false, - "name": "listLoadBalancerRuleInstances", + "name": "listAlerts", "params": [ { - "description": "List by keyword", + "description": "list by alert name", "length": 255, - "name": "keyword", + "name": "name", "required": false, + "since": "4.3", "type": "string" }, - { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "id", - "related": "createPortForwardingRule,updatePortForwardingRule", - "required": true, - "type": "uuid" - }, { "description": "", "length": 255, @@ -95627,18 +87602,19 @@ "type": "integer" }, { - "description": "true if listing all virtual machines currently applied to the load balancer rule; default is true", + "description": "list by alert type", "length": 255, - "name": "applied", + "name": "type", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "true if load balancer rule VM IP information to be included; default is false", + "description": "the ID of the alert", "length": 255, - "name": "lbvmips", + "name": "id", + "related": "listAlerts", "required": false, - "type": "boolean" + "type": "uuid" }, { "description": "", @@ -95646,490 +87622,1059 @@ "name": "pagesize", "required": false, "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" } ], - "related": "listLoadBalancerRuleInstances", + "related": "", "response": [ - {}, {}, { - "description": "IP addresses of the vm set of lb rule", - "name": "lbvmipaddresses", - "type": "list" + "description": "One of the following alert types: MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, SECONDARY_STORAGE = 6, HOST = 7, USERVM = 8, DOMAIN_ROUTER = 9, CONSOLE_PROXY = 10, ROUTING = 11: lost connection to default route (to the gateway), STORAGE_MISC = 12, USAGE_SERVER = 13, MANAGMENT_NODE = 14, DOMAIN_ROUTER_MIGRATE = 15, CONSOLE_PROXY_MIGRATE = 16, USERVM_MIGRATE = 17, VLAN = 18, SSVM = 19, USAGE_SERVER_RESULT = 20, STORAGE_DELETE = 21, UPDATE_RESOURCE_COUNT = 22, USAGE_SANITY_RESULT = 23, DIRECT_ATTACHED_PUBLIC_IP = 24, LOCAL_STORAGE = 25, RESOURCE_LIMIT_EXCEEDED = 26, SYNC = 27, UPLOAD_FAILED = 28, OOBM_AUTH_ERROR = 29", + "name": "type", + "type": "short" + }, + { + "description": "the id of the alert", + "name": "id", + "type": "string" + }, + { + "description": "the date and time the alert was sent", + "name": "sent", + "type": "date" + }, + { + "description": "description of the alert", + "name": "description", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + { + "description": "the name of the alert", + "name": "name", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - { - "description": "the user vm set for lb rule", - "name": "loadbalancerruleinstance", - "type": "uservmresponse" - } + {} ] }, { - "description": "Removes a condition for VM auto scaling", + "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", "isasync": true, - "name": "deleteCondition", + "name": "deployVirtualMachine", "params": [ { - "description": "the ID of the condition.", + "description": "an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us", "length": 255, - "name": "id", - "related": "", + "name": "keyboard", + "required": false, + "type": "string" + }, + { + "description": "true if virtual machine needs to be dynamically scalable", + "length": 255, + "name": "dynamicscalingenabled", + "required": false, + "since": "4.16", + "type": "boolean" + }, + { + "description": "Boot into hardware setup or not (ignored if startVm = false, only valid for vmware)", + "length": 255, + "name": "bootintosetup", + "required": false, + "since": "4.15.0.0", + "type": "boolean" + }, + { + "description": "list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter", + "length": 255, + "name": "networkids", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "list" + }, + { + "description": "the ID of the template for the virtual machine", + "length": 255, + "name": "templateid", + "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": true, "type": "uuid" - } - ], - "response": [ - {}, + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "host name for the virtual machine", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the ID of the Userdata", + "length": 255, + "name": "userdataid", + "related": "", + "required": false, + "since": "4.18", + "type": "uuid" + }, + { + "description": "used to specify the custom parameters. 'extraconfig' is not allowed to be passed in details", + "length": 255, + "name": "details", + "required": false, + "since": "4.3", + "type": "map" + }, + { + "description": "the hypervisor on which to deploy the virtual machine. The parameter is required and respected only when hypervisor info is not set on the ISO/Template passed to the call", + "length": 255, + "name": "hypervisor", + "required": false, + "type": "string" + }, + { + "description": "destination Pod ID to deploy the VM to - parameter available for root admin only", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, + "since": "4.13", + "type": "uuid" + }, + { + "description": "The number of queues for multiqueue NICs.", + "length": 255, + "name": "nicmultiqueuenumber", + "required": false, + "since": "4.18", "type": "integer" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "Enable packed virtqueues or not.", + "length": 255, + "name": "nicpackedvirtqueuesenabled", + "required": false, + "since": "4.18", + "type": "boolean" + }, + { + "description": "Controls specific policies on IO", + "length": 255, + "name": "iodriverpolicy", + "required": false, + "type": "string" + }, + { + "description": "an optional account for the virtual machine. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "type": "string" + }, + { + "description": "used to specify the parameters values for the variables in userdata.", + "length": 255, + "name": "userdatadetails", + "required": false, + "since": "4.18", + "type": "map" + }, + { + "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", + "length": 255, + "name": "securitygroupnames", + "related": "createSecurityGroup", + "required": false, + "type": "list" + }, + { + "description": "Boot Mode [Legacy] or [Secure] Applicable when Boot Type Selected is UEFI, otherwise Legacy only for BIOS. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "length": 255, + "name": "bootmode", + "required": false, + "since": "4.14.0.0", + "type": "string" + }, + { + "description": "the arbitrary size for the DATADISK volume. Mutually exclusive with diskOfferingId", + "length": 255, + "name": "size", + "required": false, + "type": "long" + }, + { + "description": "VMware only: used to specify network mapping of a vApp VMware template registered \"as-is\". Example nicnetworklist[0].ip=Nic-101&nicnetworklist[0].network=uuid", + "length": 255, + "name": "nicnetworklist", + "required": false, + "since": "4.15", + "type": "map" + }, + { + "description": "availability zone for the virtual machine", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + }, + { + "description": "if true the image tags (if any) will be copied to the VM, default value is false", + "length": 255, + "name": "copyimagetags", + "required": false, + "since": "4.13", + "type": "boolean" + }, + { + "description": "destination Host ID to deploy the VM to - parameter available for root admin only", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", + "required": false, + "type": "uuid" + }, + { + "description": "the ipv6 address for default vm's network", + "length": 255, + "name": "ip6address", + "required": false, + "type": "string" + }, + { + "description": "datadisk template to disk-offering mapping; an optional parameter used to create additional data disks from datadisk templates; can't be specified with diskOfferingId parameter", + "length": 255, + "name": "datadiskofferinglist", + "required": false, + "since": "4.11", + "type": "map" + }, + { + "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", + "required": false, + "type": "string" + }, + { + "description": "the mac address for default vm's network", + "length": 255, + "name": "macaddress", + "required": false, + "type": "string" + }, + { + "description": "the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskOfferingId is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateId parameter passed is from a Template object, the diskOfferingId refers to a DATA Disk Volume created. If the templateId parameter passed is from an ISO object, the diskOfferingId refers to a ROOT Disk Volume created.", + "length": 255, + "name": "diskofferingid", + "related": "createDiskOffering", + "required": false, + "type": "uuid" + }, + { + "description": "an optional user generated name for the virtual machine", + "length": 255, + "name": "displayname", + "required": false, + "type": "string" + }, + { + "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used. If account is NOT provided then virtual machine will be assigned to the caller account and domain.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com", + "length": 255, + "name": "dhcpoptionsnetworklist", + "required": false, + "type": "map" + }, + { + "description": "comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter", + "length": 255, + "name": "securitygroupids", + "related": "createSecurityGroup", + "required": false, + "type": "list" + }, + { + "description": "Deploy vm for the project", + "length": 255, + "name": "projectid", + "related": "listProjectAccounts,activateProject,suspendProject,updateProject", + "required": false, + "type": "uuid" + }, + { + "description": "an optional group for the virtual machine", + "length": 255, + "name": "group", + "required": false, + "type": "string" + }, + { + "description": "Guest VM Boot option either custom[UEFI] or default boot [BIOS]. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "length": 255, + "name": "boottype", + "required": false, + "since": "4.14.0.0", + "type": "string" + }, + { + "description": "IOThreads are dedicated event loop threads for supported disk devices to perform block I/O requests in order to improve scalability especially on an SMP host/guest with many LUNs.", + "length": 255, + "name": "iothreadsenabled", + "required": false, + "type": "boolean" + }, + { + "description": "an optional URL encoded string that can be passed to the virtual machine upon successful deployment", + "length": 5120, + "name": "extraconfig", + "required": false, + "since": "4.12", + "type": "string" + }, + { + "description": "destination Cluster ID to deploy the VM to - parameter available for root admin only", + "length": 255, + "name": "clusterid", + "related": "addCluster", + "required": false, + "since": "4.13", + "type": "uuid" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "Updates a physical network", - "isasync": true, - "name": "updatePhysicalNetwork", - "params": [ + "description": "true if start vm after creating; defaulted to true if not specified", + "length": 255, + "name": "startvm", + "required": false, + "type": "boolean" + }, { - "description": "Tag the physical network", + "description": "names of the ssh key pairs used to login to the virtual machine", "length": 255, - "name": "tags", + "name": "keypairs", "required": false, + "since": "4.17", "type": "list" }, { - "description": "physical network id", + "description": "used to specify the vApp properties.", "length": 255, - "name": "id", - "related": "updatePhysicalNetwork", - "required": true, - "type": "uuid" + "name": "properties", + "required": false, + "since": "4.15", + "type": "map" }, { - "description": "Enabled/Disabled", + "description": "an optional field, whether to the display the vm to the end user or not.", "length": 255, - "name": "state", + "name": "displayvm", "required": false, - "type": "string" + "since": "4.2", + "type": "boolean" }, { - "description": "the VLAN for the physical network", + "description": "Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided", "length": 255, - "name": "vlan", + "name": "rootdisksize", "required": false, - "type": "string" + "since": "4.4", + "type": "long" }, { - "description": "the speed for the physical network[1G/10G]", + "description": "the ip address for default vm's network", "length": 255, - "name": "networkspeed", + "name": "ipaddress", "required": false, "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "zone name of the physical network", - "name": "zonename", - "type": "string" }, { - "description": "zone id of the physical network", - "name": "zoneid", - "type": "string" + "description": "the ID of the disk offering for the virtual machine to be used for root volume instead of the disk offering mapped in service offering.In case of virtual machine deploying from ISO, then the diskofferingid specified for root volume is ignored and uses this override disk offering id", + "length": 255, + "name": "overridediskofferingid", + "related": "createDiskOffering", + "required": false, + "since": "4.17", + "type": "uuid" }, { - "description": "comma separated tag", - "name": "tags", + "description": "Deployment planner to use for vm allocation. Available to ROOT admin only", + "length": 255, + "name": "deploymentplanner", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "the domain id of the physical network owner", - "name": "domainid", - "type": "string" + "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter", + "length": 255, + "name": "affinitygroupids", + "related": "", + "required": false, + "type": "list" }, { - "description": "isolation methods", - "name": "isolationmethods", - "type": "string" + "description": "the ID of the service offering for the virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, - {}, { - "description": "state of the physical network", - "name": "state", - "type": "string" + "description": "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid&iptonetworklist[0].mac=aa:bb:cc:dd:ee::ff - requests to use ip 10.10.10.11 in network id=uuid", + "length": 255, + "name": "iptonetworklist", + "required": false, + "type": "map" }, { - "description": "the uuid of the physical network", - "name": "id", + "description": "The password of the virtual machine. If null, a random password will be generated for the VM.", + "length": 255, + "name": "password", + "required": false, + "since": "4.19.0.0", "type": "string" }, { - "description": "the speed of the physical network", - "name": "networkspeed", + "description": "name of the ssh key pair used to login to the virtual machine", + "length": 255, + "name": "keypair", + "required": false, "type": "string" }, { - "description": "the vlan of the physical network", - "name": "vlan", + "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter", + "length": 255, + "name": "affinitygroupnames", + "related": "", + "required": false, + "type": "list" + } + ], + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "name of the physical network", - "name": "name", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "Broadcast domain range of the physical network", - "name": "broadcastdomainrange", - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, - {} - ], - "since": "3.0.0" - }, - { - "description": "Stop a Shared FileSystem", - "isasync": true, - "name": "stopSharedFileSystem", - "params": [ { - "description": "Force stop the shared filesystem.", - "length": 255, - "name": "forced", - "required": false, - "type": "boolean" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the ID of the shared filesystem", - "length": 255, - "name": "id", - "related": "listSharedFileSystems,stopSharedFileSystem,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": true, - "type": "uuid" - } - ], - "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "response": [ + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" + }, { - "description": "name of the shared filesystem", - "name": "name", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", - "type": "string" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", - "type": "string" + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + } + ], + "type": "set" }, { - "description": "the account associated with the tag", - "name": "account", - "type": "string" + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" }, { - "description": "the project name where tag belongs to", + "description": "the project name of the group", "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the account owning the security group", + "name": "account", "type": "string" } ], "type": "set" }, - { - "description": "Network name of the shared filesystem", - "name": "networkname", - "type": "string" - }, - { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", - "type": "string" - }, - { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the project ID of the shared filesystem", - "name": "projectid", - "type": "string" - }, - { - "description": "the shared filesystem's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, {}, { - "description": "the state of the shared filesystem", - "name": "state", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", - "type": "string" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "Network ID of the shared filesystem", - "name": "networkid", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the shared filesystem provider", - "name": "provider", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "disk offering for the shared filesystem", - "name": "diskofferingname", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, + {}, { - "description": "ID of the shared filesystem", - "name": "id", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "path to mount the shared filesystem", - "name": "path", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", + "description": "device ID of the root volume", + "name": "rootdeviceid", "type": "long" }, { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" - }, - { - "description": "service offering ID for the shared filesystem", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "ID of the storage fs vm", - "name": "vmstate", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the domain associated with the shared filesystem", - "name": "domain", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the list of nics associated with the shared filesystem", - "name": "nic", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" - }, + } + ], + "type": "set" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" + }, + { + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" + }, + { + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { @@ -96138,19 +88683,24 @@ "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" }, { "description": "name of the vpc to which the nic belongs", @@ -96159,17 +88709,32 @@ }, { "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "name": "macaddress", + "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { @@ -96178,1828 +88743,1272 @@ "type": "list" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the account associated with the shared filesystem", - "name": "account", - "type": "string" - }, - { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", - "type": "string" - }, - { - "description": "the filesystem format", - "name": "filesystem", - "type": "string" - }, - { - "description": "Name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "ID of the storage fs data volume", - "name": "volumeid", - "type": "string" - }, - { - "description": "name of the storage pool hosting the data volume", - "name": "storage", - "type": "string" - }, - { - "description": "name of the storage fs data volume", - "name": "volumename", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - {}, - { - "description": "the project name of the shared filesystem", - "name": "project", - "type": "string" - }, - { - "description": "description of the shared filesystem", - "name": "description", - "type": "string" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "size of the shared filesystem", - "name": "size", - "type": "long" - }, - { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", - "type": "string" - }, - { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", - "type": "string" - }, - { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", - "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "create Tungsten-Fabric management network", - "isasync": false, - "name": "createTungstenFabricManagementNetwork", - "params": [ - { - "description": "the ID of pod", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "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" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {}, - {} - ] - }, - { - "description": "list Tungsten-Fabric firewall rule", - "isasync": false, - "name": "listTungstenFabricFirewallRule", - "params": [ - { - "description": "the uuid of Tungsten-Fabric firewall rule", - "length": 255, - "name": "firewallruleuuid", - "required": false, - "type": "string" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" - }, - { - "description": "the uuid of Tungsten-Fabric firewall policy", - "length": 255, - "name": "firewallpolicyuuid", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "Tungsten-Fabric firewall rule destination address group", - "name": "destaddressgroup", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule tag type", - "name": "tagtype", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule source network", - "name": "srcnetwork", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric firewall rule uuid", - "name": "uuid", - "type": "string" + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + } + ], + "type": "set" }, + {}, { - "description": "Tungsten-Fabric provider zone name", + "description": "the name of the availability zone for the virtual machine", "name": "zonename", "type": "string" }, - { - "description": "Tungsten-Fabric firewall rule source tag", - "name": "srctag", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule direction", - "name": "direction", - "type": "string" - }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "Tungsten-Fabric firewall rule source address group", - "name": "srcaddressgroup", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule name", - "name": "name", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule action", - "name": "action", - "type": "string" - }, - {}, - { - "description": "Tungsten-Fabric firewall rule service group", - "name": "servicegroup", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule destination tag", - "name": "desttag", - "type": "string" - }, - { - "description": "Tungsten-Fabric firewall rule destination network", - "name": "destnetwork", - "type": "string" - } - ] - }, - { - "description": "Creates a project", - "isasync": true, - "name": "createProject", - "params": [ - { - "description": "user ID of the account to be assigned as owner of the project i.e., Project Admin", - "length": 255, - "name": "userid", - "related": "disableUser,getUser,listUsers,lockUser", - "required": false, - "since": "4.15.0", - "type": "uuid" - }, - { - "description": "ID of the account owning a project", - "length": 255, - "name": "accountid", - "related": "disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts", - "required": false, - "type": "uuid" - }, - { - "description": "name of the project", - "length": 255, - "name": "name", - "required": true, - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "domain ID of the account owning a project", - "length": 255, + "description": "the ID of the domain in which the virtual machine exists", "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "account who will be Admin for the project", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "The display text of the project, defaults to the 'name´.", - "length": 255, - "name": "displaytext", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the project account name of the project", - "name": "projectaccountname", - "type": "string" - }, - { - "description": "the total volume which can be used by this project", - "name": "volumelimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the date this project was created", - "name": "created", - "type": "date" - }, - { - "description": "the total number of networks owned by project", - "name": "networktotal", - "type": "long" - }, - { - "description": "the total number of snapshots available for this project", - "name": "snapshotavailable", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the total number of snapshots stored by this project", - "name": "snapshottotal", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "the state of the project", - "name": "state", - "type": "string" - }, - { - "description": "the total number of virtual machines available for this project to acquire", - "name": "vmavailable", - "type": "string" - }, - { - "description": "the total number of cpu cores the project can own", - "name": "cpulimit", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the total number of vpcs the project can own", - "name": "vpclimit", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this project", - "name": "vmlimit", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the total primary storage space (in GiB) owned by project", - "name": "primarystoragetotal", + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", "type": "long" }, { - "description": "the id of the project", - "name": "id", - "type": "string" - }, - { - "description": "the total number of snapshots which can be stored by this project", - "name": "snapshotlimit", - "type": "string" - }, - { - "description": "the total memory (in MB) the project can own", - "name": "memorylimit", - "type": "string" - }, - { - "description": "the total number of networks available to be created for this project", - "name": "networkavailable", - "type": "string" - }, - { - "description": "the total secondary storage space (in GiB) available to be used for this project", - "name": "secondarystorageavailable", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, - {}, { - "description": "the total number of vpcs available to be created for this project", - "name": "vpcavailable", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "the total memory (in MB) owned by project", - "name": "memorytotal", + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", "type": "long" }, { - "description": "the total number of templates which have been created by this project", - "name": "templatetotal", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", "type": "long" }, { - "description": "the total number of vpcs owned by project", - "name": "vpctotal", - "type": "long" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the total number of public ip addresses this project can acquire", - "name": "iplimit", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this project", - "name": "memoryavailable", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by project", - "name": "secondarystoragetotal", - "type": "float" - }, - { - "description": "the total number of public ip addresses available for this project to acquire", - "name": "ipavailable", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the total number of virtual machines deployed by this project", - "name": "vmtotal", - "type": "long" - }, - {}, - { - "description": "the total volume being used by this project", - "name": "volumetotal", + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "the account name of the project's owners", - "name": "owner", - "type": "list" - }, - { - "description": "the total number of cpu cores available to be created for this project", - "name": "cpuavailable", - "type": "string" - }, - { - "description": "the total volume available for this project", - "name": "volumeavailable", - "type": "string" - }, - { - "description": "the total number of virtual machines stopped for this project", - "name": "vmstopped", - "type": "integer" - }, - { - "description": "the list of resource tags associated with vm", - "name": "tags", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "tag key name", - "name": "key", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "the ID of the domain associated with the tag", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the domain ID of the affinity group", "name": "domainid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "tag value", - "name": "value", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" } ], - "type": "list" - }, - { - "description": "the total number of virtual machines running for this project", - "name": "vmrunning", - "type": "integer" + "type": "set" }, { - "description": "the total primary storage space (in GiB) available to be used for this project", - "name": "primarystorageavailable", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this project", - "name": "iptotal", - "type": "long" - }, - { - "description": "the name of the project", - "name": "name", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "the domain name where the project belongs to", - "name": "domain", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the domain id the project belongs to", - "name": "domainid", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the total number of templates available to be created by this project", - "name": "templateavailable", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the total secondary storage space (in GiB) the project can own", - "name": "secondarystoragelimit", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "The tagged resource limit and count for the project", - "name": "taggedresources", - "type": "list" - }, - { - "description": "the total number of networks the project can own", - "name": "networklimit", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the displaytext of the project", - "name": "displaytext", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the total primary storage space (in GiB) the project can own", - "name": "primarystoragelimit", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the total number of templates which can be created by this project", - "name": "templatelimit", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the total number of cpu cores owned by project", - "name": "cputotal", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" - } - ], - "since": "3.0.0" - }, - { - "description": "Assigns a certificate to a load balancer rule", - "isasync": true, - "name": "assignCertToLoadBalancer", - "params": [ - { - "description": "the ID of the certificate", - "length": 255, - "name": "certid", - "related": "", - "required": true, - "type": "uuid" }, { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "lbruleid", - "related": "createPortForwardingRule,updatePortForwardingRule", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Adds a Cisco Vnmc Controller", - "isasync": false, - "name": "addCiscoVnmcResource", - "params": [ - { - "description": "Hostname or ip address of the Cisco VNMC Controller.", - "length": 255, - "name": "hostname", - "required": true, - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "Credentials to access the Cisco VNMC Controller API", - "length": 255, - "name": "password", - "required": true, + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "Credentials to access the Cisco VNMC Controller API", - "length": 255, - "name": "username", - "required": true, + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" - } - ], - "related": "listCiscoVnmcResources", - "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", + "description": "the project id of the vm", + "name": "projectid", "type": "string" - } - ] - }, - { - "description": "Marks a default zone for this account", - "isasync": true, - "name": "markDefaultZoneForAccount", - "params": [ - { - "description": "Marks the account that belongs to the specified domain.", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": true, - "type": "uuid" }, { - "description": "Name of the account that is to be marked.", - "length": 255, - "name": "account", - "related": "disableAccount,enableAccount,updateAccount,markDefaultZoneForAccount,listAccounts", - "required": true, + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "The Zone ID with which the account is to be marked.", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - } - ], - "related": "disableAccount,enableAccount,updateAccount,listAccounts", - "response": [ - { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" - }, - { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", - "type": "long" - }, - {}, - { - "description": "details for the account", - "name": "accountdetails", - "type": "map" - }, - { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" - }, - { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" - }, - { - "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 ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "name of the Domain the account belongs to", - "name": "domain", - "type": "string" - }, - { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the total number of projects the account can own", - "name": "projectlimit", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the total number of networks the account can own", - "name": "networklimit", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", - "type": "integer" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the date when this account was created", + "description": "the date when this virtual machine was created", "name": "created", "type": "date" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" - }, - { - "description": "the id of the account", - "name": "id", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "the default zone of the account", - "name": "defaultzoneid", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" + } + ] + }, + { + "description": "Upgrades router to use newer template", + "isasync": false, + "name": "upgradeRouterTemplate", + "params": [ + { + "description": "upgrades all routers within the specified zone", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", - "type": "string" + "description": "upgrades router with the specified Id", + "length": 255, + "name": "id", + "related": "destroyRouter,listRouters", + "required": false, + "type": "uuid" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "upgrades all routers owned by the specified domain", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "upgrades all routers owned by the specified account", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", - "type": "string" + "description": "upgrades all routers within the specified pod", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, + "type": "uuid" }, { - "description": "the name of the account", - "name": "name", + "description": "upgrades all routers within the specified cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Lists IPv4 subnets for guest networks.", + "isasync": false, + "name": "listIpv4SubnetsForGuestNetwork", + "params": [ + { + "description": "UUID of zone Ipv4 subnet which the IPv4 subnet belongs to.", + "length": 255, + "name": "parentid", + "related": "createIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "required": false, + "type": "uuid" }, { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", + "description": "The CIDR of the Ipv4 subnet.", + "length": 255, + "name": "subnet", + "required": false, "type": "string" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "UUID of network to which the IPv4 subnet is associated to.", + "length": 255, + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the state of the account", - "name": "state", - "type": "string" + "description": "UUID of VPC to which the IPv4 subnet is associated to.", + "length": 255, + "name": "vpcid", + "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", + "description": "UUID of the IPv4 subnet for guest network.", + "length": 255, + "name": "id", + "related": "listIpv4SubnetsForGuestNetwork", + "required": false, + "type": "uuid" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", - "type": "integer" + "description": "UUID of zone to which the IPv4 subnet belongs to.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" - }, + } + ], + "related": "", + "response": [ { - "description": "id of the Domain the account belongs to", - "name": "domainid", + "description": "id of the IPv4 subnet for guest network", + "name": "id", "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", + "description": "subnet of the IPv4 network", + "name": "subnet", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" }, { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", + "description": "id of network which the IPv4 subnet is associated with.", + "name": "networkid", "type": "string" }, { - "description": "the total volume available for this account", - "name": "volumeavailable", + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", "type": "string" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "state of subnet of the IPv4 network", + "name": "state", + "type": "string" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" + "description": "date when this IPv4 subnet was allocated.", + "name": "allocated", + "type": "date" }, { - "description": "path of the Domain the account belongs to", - "name": "domainpath", + "description": "id of the data center IPv4 subnet", + "name": "parentid", "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "Name of the VPC which the IPv4 subnet is associated with.", + "name": "vpcname", + "type": "string" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", + "description": "Id of the VPC which the IPv4 subnet is associated with.", + "name": "vpcid", "type": "string" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", + "description": "subnet of the data center IPv4 subnet", + "name": "parentsubnet", "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "name of network which the IPv4 subnet is associated with.", + "name": "networkname", "type": "string" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", - "type": "boolean" - }, - { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of acl groups that account belongs to", - "name": "groups", - "type": "list" - }, - { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zonename", "type": "string" }, { - "description": "the list of users associated with account", - "name": "user", - "response": [ - { - "description": "the timezone user was created in", - "name": "timezone", - "type": "string" - }, - { - "description": "the ID of the role", - "name": "roleid", - "type": "string" - }, - { - "description": "the user email address", - "name": "email", - "type": "string" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, - { - "description": "the account name of the user", - "name": "account", - "type": "string" - }, - { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", - "type": "string" - }, - { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the user name", - "name": "username", - "type": "string" - }, - { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the user firstname", - "name": "firstname", - "type": "string" - }, - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the name of the role", - "name": "rolename", - "type": "string" - }, - { - "description": "the domain ID of the user", - "name": "domainid", - "type": "string" - }, - { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" - }, - { - "description": "the domain name of the user", - "name": "domain", - "type": "string" - }, - { - "description": "the user ID", - "name": "id", - "type": "string" - }, - { - "description": "the type of the role", - "name": "roletype", - "type": "string" - }, - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, - { - "description": "the user lastname", - "name": "lastname", - "type": "string" - }, - { - "description": "the api key of the user", - "name": "apikey", - "type": "string" - }, - { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - } - ], - "type": "list" + "description": "date when this IPv4 subnet was removed.", + "name": "removed", + "type": "date" } ], - "since": "4.0" + "since": "4.20.0" }, { - "description": "Deletes a routing firewall rule", + "description": "Cancels host maintenance.", "isasync": true, - "name": "deleteRoutingFirewallRule", + "name": "cancelHostMaintenance", "params": [ { - "description": "the ID of the Routing firewall rule", + "description": "the host ID", "length": 255, "name": "id", - "related": "createPortForwardingRule,updatePortForwardingRule", + "related": "addBaremetalHost,addHost,cancelHostMaintenance,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", "required": true, "type": "uuid" } ], + "related": "addBaremetalHost,addHost,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", "response": [ - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the Zone name of the host", + "name": "zonename", + "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" + }, + { + "description": "the host version", + "name": "version", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Revokes certificate using configured CA plugin", - "isasync": true, - "name": "revokeCertificate", - "params": [ + }, { - "description": "The certificate serial number, as a hex value", - "length": 255, - "name": "serial", - "required": true, + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, { - "description": "The certificate CN", - "length": 255, - "name": "cn", - "required": false, + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", "type": "string" }, { - "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", - "length": 255, - "name": "provider", - "required": false, + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" - } - ], - "response": [ - {}, + }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" + }, + { + "description": "CPU Arch of the host", + "name": "arch", + "type": "string" }, { "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": "the amount of the host's memory currently allocated", + "name": "memoryallocated", + "type": "long" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "GPU cards present in the host", + "name": "gpugroup", + "response": [ + { + "description": "GPU cards present in the host", + "name": "gpugroupname", + "type": "string" + }, + { + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + }, + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + } + ], + "type": "list" + } + ], + "type": "list" + }, + { + "description": "the Pod ID of the host", + "name": "podid", "type": "string" - } - ], - "since": "4.11.0" - }, - { - "description": "Changes the service offering for a system vm (console proxy or secondary storage). The system vm must be in a \"Stopped\" state for this command to take effect.", - "isasync": false, - "name": "changeServiceForSystemVm", - "params": [ + }, { - "description": "the service offering ID to apply to the system vm", - "length": 255, - "name": "serviceofferingid", - "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" }, { - "description": "The ID of the system vm", - "length": 255, - "name": "id", - "related": "startSystemVm,changeServiceForSystemVm", - "required": true, - "type": "uuid" + "description": "the IP address of the host", + "name": "ipaddress", + "type": "string" }, { - "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", - "length": 255, - "name": "details", - "required": false, - "type": "map" - } - ], - "related": "startSystemVm", - "response": [ + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", + "type": "string" + }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the last annotation set on this host by an admin", + "name": "annotation", + "type": "string" }, - {}, { - "description": "the first DNS for the system VM", - "name": "dns1", + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, - {}, { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobstatus", - "type": "integer" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the link local IP address for the system vm", - "name": "linklocalip", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" }, { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" }, { - "description": "the public netmask for the system VM", - "name": "publicnetmask", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "the hostname for the system VM", - "name": "hostname", - "type": "string" + "description": "the state of the host", + "name": "state", + "type": "status" }, { - "description": "the Pod name for the system VM", - "name": "podname", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", - "type": "string" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the date and time the system VM was created", + "description": "the date and time the host was created", "name": "created", "type": "date" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" }, { - "description": "the Pod ID for the system VM", - "name": "podid", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "the template ID for the system VM", - "name": "templateid", + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, { - "description": "the Zone name for the system VM", - "name": "zonename", - "type": "string" + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the agent state of the system VM", - "name": "agentstate", - "type": "string" + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" }, { - "description": "the ID of the system VM", - "name": "id", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, + {}, + {}, { - "description": "the private IP address for the system VM", - "name": "privateip", - "type": "string" + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" }, { - "description": "the systemvm agent version", - "name": "version", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", "type": "string" }, { - "description": "the gateway for the system VM", - "name": "gateway", + "description": "the amount of the host's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, { - "description": "the system VM type", - "name": "systemvmtype", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, { - "description": "the host ID for the system VM", - "name": "hostid", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", - "type": "string" + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" }, { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "the template name for the system VM", - "name": "templatename", + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" + }, + { + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "the network domain for the system VM", - "name": "networkdomain", + "description": "the Pod name of the host", + "name": "podname", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the state of the system VM", - "name": "state", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the private netmask for the system VM", - "name": "privatenetmask", + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" }, { - "description": "the second DNS for the system VM", - "name": "dns2", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "guest vlan range", - "name": "guestvlan", - "type": "string" + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", + "type": "long" }, { - "description": "the name of the system VM", - "name": "name", + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" + }, + { + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" + }, + { + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" + }, + { + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", + "type": "boolean" + }, + { + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" + }, + { + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" } ] }, { - "description": "Update SIOC info", + "description": "Lists all VLAN IP ranges.", "isasync": false, - "name": "updateSiocInfo", + "name": "listVlanIpRanges", "params": [ { - "description": "Storage Pool ID", + "description": "true if VLAN is of Virtual type, false if Direct", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "required": true, - "type": "uuid" + "name": "forvirtualnetwork", + "required": false, + "type": "boolean" }, { - "description": "Limit IOPS per GB", + "description": "", "length": 255, - "name": "limitiopspergb", - "required": true, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "Shares per GB", + "description": "network id of the VLAN IP range", "length": 255, - "name": "sharespergb", - "required": true, - "type": "integer" + "name": "networkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "Zone ID", + "description": "the Zone ID of the VLAN IP range", "length": 255, "name": "zoneid", - "related": "listZones", - "required": true, + "related": "createZone,updateZone,listZones,listZones", + "required": false, "type": "uuid" }, { - "description": "Notify if IOPS above this value", + "description": "project who will own the VLAN", "length": 255, - "name": "iopsnotifythreshold", - "required": true, - "type": "integer" - } - ], - "related": "", - "response": [ - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "name": "projectid", + "related": "listProjectAccounts,activateProject,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "The return message from the operation ('Success' if successful)", - "name": "msg", + "description": "the account with which the VLAN IP range is associated. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "physical network id of the VLAN IP range", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": false, + "type": "uuid" + }, + { + "description": "the ID or VID of the VLAN. Default is an \"untagged\" VLAN.", + "length": 255, + "name": "vlan", + "required": false, "type": "string" }, - {} - ], - "since": "4.11.0" - }, - { - "description": "Deletes a vmsnapshot.", - "isasync": true, - "name": "deleteVMSnapshot", - "params": [ { - "description": "The ID of the VM snapshot", + "description": "the ID of the VLAN IP range", "length": 255, - "name": "vmsnapshotid", - "related": "listVMSnapshot,createVMSnapshot", - "required": true, + "name": "id", + "related": "updateVlanIpRange,listVlanIpRanges,dedicatePublicIpRange", + "required": false, "type": "uuid" - } - ], - "response": [ - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "the domain ID with which the VLAN IP range is associated. If used with the account parameter, returns all VLAN IP ranges for that account in the specified domain.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the Pod ID of the VLAN IP range", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, + "type": "uuid" }, - {} - ], - "since": "4.2.0" - }, - { - "description": "Unmanage a guest virtual machine.", - "isasync": true, - "name": "unmanageVirtualMachine", - "params": [ { - "description": "The ID of the virtual machine to unmanage", + "description": "List by keyword", "length": 255, - "name": "id", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" + "name": "keyword", + "required": false, + "type": "string" } ], - "related": "", + "related": "updateVlanIpRange,dedicatePublicIpRange", "response": [ { - "description": "details of the unmanage VM operation", - "name": "details", + "description": "the gateway of the VLAN IP range", + "name": "gateway", "type": "string" }, - {}, - { - "description": "result of the unmanage VM operation", - "name": "success", - "type": "boolean" - }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the cidr of the VLAN IP range", + "name": "cidr", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.15.0" - }, - { - "description": "Starts a router.", - "isasync": true, - "name": "rebootRouter", - "params": [ - { - "description": "Force reboot the router (Router is force Stopped and then Started)", - "length": 255, - "name": "forced", - "required": false, - "since": "4.16.0", + "description": "indicates whether IP range is dedicated to NSX resources or not", + "name": "fornsx", "type": "boolean" }, { - "description": "the ID of the router", - "length": 255, - "name": "id", - "related": "listRouters,rebootRouter,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", - "required": true, - "type": "uuid" - } - ], - "related": "listRouters,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", - "response": [ - { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the state of the router", - "name": "state", - "type": "state" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "the start ip of the VLAN IP range", + "name": "startip", "type": "string" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "the account of the VLAN IP range", + "name": "account", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the netmask of the VLAN IP range", + "name": "netmask", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the virtual network for the VLAN IP range", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "the ID or VID of the VLAN.", + "name": "vlan", "type": "string" }, { - "description": "the name of the router", - "name": "name", + "description": "the Pod ID for the VLAN IP range", + "name": "podid", "type": "string" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", + "description": "path of the domain to which the VLAN IP range belongs", + "name": "domainpath", "type": "string" }, { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "the start ipv6 of the VLAN IP range", + "name": "startipv6", "type": "string" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the Pod name for the VLAN IP range", + "name": "podname", "type": "string" }, { - "description": "the date and time the router was created", - "name": "created", - "type": "date" + "description": "the description of the VLAN IP range", + "name": "description", + "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" + "description": "the ID of the VLAN IP range", + "name": "id", + "type": "string" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", + "description": "the domain ID of the VLAN IP range", + "name": "domainid", "type": "string" }, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - }, - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - }, - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - } - ], - "type": "list" + "description": "the end ipv6 of the VLAN IP range", + "name": "endipv6", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -98007,1937 +90016,2052 @@ "type": "integer" }, { - "description": "the host ID for the router", - "name": "hostid", + "description": "the domain name of the VLAN IP range", + "name": "domain", "type": "string" }, { - "description": "role of the domain router", - "name": "role", + "description": "the project id of the vlan range", + "name": "projectid", "type": "string" }, { - "description": "the hostname for the router", - "name": "hostname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", + "description": "indicates whether VLAN IP range is dedicated to system vms or not", + "name": "forsystemvms", "type": "boolean" }, + {}, { - "description": "the second DNS for the router", - "name": "dns2", + "description": "the Zone ID of the VLAN IP range", + "name": "zoneid", "type": "string" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "the end ip of the VLAN IP range", + "name": "endip", "type": "string" }, { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "the project name of the vlan range", + "name": "project", "type": "string" }, + {}, { - "description": "the state of redundant virtual router", - "name": "redundantstate", + "description": "the network id of vlan range", + "name": "networkid", "type": "string" }, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" - }, + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + } + ] + }, + { + "description": "Updates a Zone.", + "isasync": false, + "name": "updateZone", + "params": [ { - "description": "path of the Domain the router belongs to", - "name": "domainpath", + "description": "the second DNS for the Zone", + "length": 255, + "name": "dns2", + "required": false, "type": "string" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "the first DNS for IPv6 network in the Zone", + "length": 255, + "name": "ip6dns1", + "required": false, "type": "string" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", + "description": "sort key of the zone, integer", + "length": 255, + "name": "sortkey", + "required": false, + "type": "integer" + }, + { + "description": "Network domain name for the networks in the zone; empty string will update domain with NULL value", + "length": 255, + "name": "domain", + "required": false, "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the dns search order list", + "length": 255, + "name": "dnssearchorder", + "required": false, + "type": "list" + }, + { + "description": "updates a private zone to public if set, but not vice-versa", + "length": 255, + "name": "ispublic", + "required": false, + "type": "boolean" + }, + { + "description": "the guest CIDR address for the Zone", + "length": 255, + "name": "guestcidraddress", + "required": false, "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "the ID of the Zone", + "length": 255, + "name": "id", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + }, + { + "description": "the dhcp Provider for the Zone", + "length": 255, + "name": "dhcpprovider", + "required": false, "type": "string" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "the first DNS for the Zone", + "length": 255, + "name": "dns1", + "required": false, "type": "string" }, { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "the name of the Zone", + "length": 255, + "name": "name", + "required": false, "type": "string" }, - {}, { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", + "description": "the first internal DNS for the Zone", + "length": 255, + "name": "internaldns1", + "required": false, "type": "string" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "the details for the Zone", + "length": 255, + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "true if local storage offering enabled, false otherwise", + "length": 255, + "name": "localstorageenabled", + "required": false, + "type": "boolean" + }, + { + "description": "Allocation state of this cluster for allocation of new resources", + "length": 255, + "name": "allocationstate", + "required": false, "type": "string" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "the second internal DNS for the Zone", + "length": 255, + "name": "internaldns2", + "required": false, "type": "string" }, { - "description": "the id of the router", - "name": "id", + "description": "the second DNS for IPv6 network in the Zone", + "length": 255, + "name": "ip6dns2", + "required": false, + "type": "string" + } + ], + "related": "createZone,listZones,listZones", + "response": [ + { + "description": "the network type of the zone; can be Basic or Advanced", + "name": "networktype", "type": "string" }, { - "description": "the domain associated with the router", - "name": "domain", + "description": "the name of the containing domain, null for public zones", + "name": "domainname", "type": "string" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "the dhcp Provider for the Zone", + "name": "dhcpprovider", "type": "string" }, - {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the second internal DNS for the Zone", + "name": "internaldns2", "type": "string" }, { - "description": "the Zone name for the router", - "name": "zonename", + "description": "Zone Token", + "name": "zonetoken", "type": "string" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "Zone name", + "name": "name", "type": "string" }, { - "description": "the template name for the router", - "name": "templatename", + "description": "The maximum value the MTU can have on the VR's private interfaces", + "name": "routerprivateinterfacemaxmtu", + "type": "integer" + }, + { + "description": "the display text of the zone", + "name": "displaytext", "type": "string" }, { - "description": "the version of template", - "name": "version", + "description": "The maximum value the MTU can have on the VR's public interfaces", + "name": "routerpublicinterfacemaxmtu", + "type": "integer" + }, + { + "description": "the first internal DNS for the Zone", + "name": "internaldns1", "type": "string" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", + "description": "the allocation state of the cluster", + "name": "allocationstate", "type": "string" }, { - "description": "the Pod ID for the router", - "name": "podid", + "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", "type": "string" }, { - "description": "the domain ID associated with the router", - "name": "domainid", + "description": "the first DNS for the Zone", + "name": "dns1", "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", + "description": "Allow end users to specify VR MTU", + "name": "allowuserspecifyvrmtu", + "type": "boolean" + }, + { + "description": "the first IPv6 DNS for the Zone", + "name": "ip6dns1", "type": "string" }, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", + "description": "Network domain name for the networks in the zone", + "name": "domain", "type": "string" }, { - "description": "the public IP address for the router", - "name": "publicip", + "description": "true, if zone contains clusters and hosts from different CPU architectures", + "name": "ismultiarch", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Zone description", + "name": "description", "type": "string" }, { - "description": "the list of nics associated with the router", - "name": "nic", + "description": "the list of resource tags associated with zone.", + "name": "tags", "response": [ { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + { + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "tag value", + "name": "value", + "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" + } + ], + "type": "set" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the type of the zone - core or edge", + "name": "type", + "type": "string" + }, + { + "description": "true if security groups support is enabled, false otherwise", + "name": "securitygroupsenabled", + "type": "boolean" + }, + {}, + { + "description": "the capacity of the Zone", + "name": "capacity", + "response": [ + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the percentage of capacity currently in use", + "name": "percentused", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "the capacity type", + "name": "type", + "type": "short" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the Pod ID", + "name": "podid", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the Zone name", + "name": "zonename", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "The tag for the capacity type", + "name": "tag", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the capacity name", + "name": "name", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the Pod name", + "name": "podname", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "the Cluster ID", + "name": "clusterid", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", - "type": "string" + "description": "true, if zone is NSX enabled", + "name": "isnsxenabled", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the guest CIDR address for the Zone", + "name": "guestcidraddress", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "AS Number Range", + "name": "asnrange", + "type": "string" }, + {}, { - "description": "the first DNS for the router", - "name": "dns1", + "description": "the second DNS for the Zone", + "name": "dns2", "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", + "description": "the UUID of the containing domain, null for public zones", + "name": "domainid", "type": "string" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "true if local storage offering enabled, false otherwise", + "name": "localstorageenabled", + "type": "boolean" + }, + { + "description": "Zone id", + "name": "id", "type": "string" }, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", + "description": "the second IPv6 DNS for the Zone", + "name": "ip6dns2", "type": "string" + }, + { + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" } ] }, { - "description": "list the vm nics IP to NIC", - "isasync": false, - "name": "listNics", + "description": "Extracts volume", + "isasync": true, + "name": "extractVolume", "params": [ { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "the ID of the vm", + "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "name": "mode", "required": true, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", + "description": "the url to which the volume would be extracted", + "length": 2048, + "name": "url", "required": false, "type": "string" }, { - "description": "list nic of the specific vm's network", + "description": "the ID of the volume", "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, + "name": "id", + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": true, "type": "uuid" }, { - "description": "the ID of the nic to list IPs", + "description": "the ID of the zone where the volume is located", "length": 255, - "name": "nicid", - "related": "listNics", - "required": false, + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": true, "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" } ], - "related": "", + "related": "extractSnapshot,extractTemplate,downloadImageStoreObject", "response": [ { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "type of the storage", + "name": "storagetype", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the mode of extraction - upload or download", + "name": "extractMode", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "", + "name": "resultstring", "type": "string" }, - {}, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "the name of the extracted object", + "name": "name", + "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "zone name the object was extracted from", + "name": "zonename", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", + "name": "url", "type": "string" }, {}, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the id of extracted object", + "name": "id", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the upload id of extracted object", + "name": "extractId", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "the percentage of the entity uploaded to the specified location", + "name": "uploadpercentage", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "zone ID the object was extracted from", + "name": "zoneid", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the account id to which the extracted object belongs", + "name": "accountid", "type": "string" }, + {}, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the state of the extracted object", + "name": "state", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the status of the extraction", + "name": "status", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, + "description": "the time and date the object was created", + "name": "created", + "type": "date" + } + ] + }, + { + "description": "Releases an existing dedicated IPv4 subnet for a zone.", + "isasync": true, + "name": "releaseIpv4SubnetForZone", + "params": [ { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, + "description": "Id of the guest network IPv4 subnet", + "length": 255, + "name": "id", + "related": "createIpv4SubnetForZone,dedicateIpv4SubnetForZone,releaseIpv4SubnetForZone", + "required": true, + "type": "uuid" + } + ], + "related": "createIpv4SubnetForZone,dedicateIpv4SubnetForZone", + "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "id of the guest IPv4 subnet", + "name": "id", + "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "the project name of the IPv4 subnet", + "name": "project", "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the project id of the IPv4 subnet", + "name": "projectid", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "name of zone to which the IPv4 subnet belongs to.", + "name": "zonename", "type": "string" }, + {}, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the domain ID of the IPv4 subnet", + "name": "domainid", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", "type": "string" }, + {}, { - "description": "the type of the nic", - "name": "type", - "type": "string" + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the domain name of the IPv4 subnet", + "name": "domain", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the account of the IPv4 subnet", + "name": "account", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "guest IPv4 subnet", + "name": "subnet", "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" } - ] + ], + "since": "4.20.0" }, { - "description": "Lists Bgp Peers.", + "description": "Lists project's accounts", "isasync": false, - "name": "listBgpPeers", + "name": "listProjectAccounts", "params": [ { - "description": "UUID of the Bgp Peer.", + "description": "List by keyword", "length": 255, - "name": "id", - "related": "listBgpPeers,releaseBgpPeer", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "UUID of zone to which the Bgp Peer belongs to.", + "description": "list accounts of the project by project role id", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "projectroleid", + "related": "updateProjectRole", "required": false, "type": "uuid" }, { - "description": "", + "description": "list invitation by user ID", "length": 255, - "name": "page", + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the domain ID which the Bgp Peer is dedicated to.", + "description": "list accounts of the project by account name", "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "name": "account", "required": false, - "type": "uuid" + "type": "string" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "project who which the Bgp Peer is dedicated to", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the account which the Bgp Peer is dedicated to. Must be used with the domainId parameter.", + "description": "list accounts of the project by role", "length": 255, - "name": "account", + "name": "role", "required": false, "type": "string" }, { - "description": "Lists only dedicated or non-dedicated Bgp Peers. If not set, lists all dedicated and non-dedicated BGP peers the domain/account can access.", + "description": "", "length": 255, - "name": "isdedicated", + "name": "pagesize", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "AS number of the Bgp Peer.", + "description": "ID of the project", "length": 255, - "name": "asnumber", - "required": false, - "type": "long" + "name": "projectid", + "related": "listProjectAccounts,activateProject,suspendProject,updateProject", + "required": true, + "type": "uuid" } ], - "related": "releaseBgpPeer", + "related": "activateProject,suspendProject,updateProject", "response": [ { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", + "description": "the total memory (in MB) the project can own", + "name": "memorylimit", "type": "string" }, - {}, - {}, { - "description": "the project id of the bgp peer", - "name": "projectid", + "description": "the total number of templates which can be created by this project", + "name": "templatelimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of vpcs the project can own", + "name": "vpclimit", + "type": "string" }, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", + "description": "the total primary storage space (in GiB) the project can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the account of the bgp peer", - "name": "account", + "description": "the total primary storage space (in GiB) available to be used for this project", + "name": "primarystorageavailable", "type": "string" }, { - "description": "date when this bgp peer was created.", + "description": "the total number of virtual machines stopped for this project", + "name": "vmstopped", + "type": "integer" + }, + { + "description": "the date this project was created", "name": "created", "type": "date" }, { - "description": "the project name of the bgp peer", - "name": "project", + "description": "the total number of cpu cores available to be created for this project", + "name": "cpuavailable", "type": "string" }, { - "description": "password of bgp peer", - "name": "password", + "description": "the total volume available for this project", + "name": "volumeavailable", "type": "string" }, { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", + "description": "the displaytext of the project", + "name": "displaytext", "type": "string" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", - "type": "string" + "description": "the total number of cpu cores owned by project", + "name": "cputotal", + "type": "long" }, { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" + "description": "the total number of public ip addresses available for this project to acquire", + "name": "ipavailable", + "type": "string" }, { - "description": "the domain ID of the bgp peer", - "name": "domainid", + "description": "the total number of networks available to be created for this project", + "name": "networkavailable", "type": "string" }, { - "description": "id of the bgp peer", - "name": "id", - "type": "string" + "description": "the total primary storage space (in GiB) owned by project", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "AS number of bgp peer", - "name": "asnumber", + "description": "the total memory (in MB) owned by project", + "name": "memorytotal", "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total number of snapshots stored by this project", + "name": "snapshottotal", + "type": "long" }, { - "description": "the domain name of the bgp peer", + "description": "the domain name where the project belongs to", "name": "domain", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Creates an instant snapshot of a volume from existing vm snapshot.", - "isasync": true, - "name": "createSnapshotFromVMSnapshot", - "params": [ + }, { - "description": "the name of the snapshot", - "length": 255, - "name": "name", - "required": false, + "description": "the domain id the project belongs to", + "name": "domainid", "type": "string" }, { - "description": "The ID of the VM snapshot", - "length": 255, - "name": "vmsnapshotid", - "related": "listVMSnapshot,createVMSnapshot", - "required": true, - "type": "uuid" + "description": "the total number of virtual machines deployed by this project", + "name": "vmtotal", + "type": "long" }, { - "description": "The ID of the disk volume", - "length": 255, - "name": "volumeid", - "related": "createVolume,updateVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" - } - ], - "related": "copySnapshot,archiveSnapshot,listSnapshots", - "response": [ + "description": "the list of resource tags associated with vm", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "list" + }, { - "description": "state of the disk volume", - "name": "volumestate", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "valid types are hourly, daily, weekly, monthy, template, and none.", - "name": "intervaltype", - "type": "string" + "description": "the total volume being used by this project", + "name": "volumetotal", + "type": "long" }, { - "description": "the status of the template", - "name": "status", + "description": "the total number of networks the project can own", + "name": "networklimit", "type": "string" }, { - "description": "path of the Domain the snapshot's account belongs to", - "name": "domainpath", - "type": "string" + "description": "the total number of virtual machines running for this project", + "name": "vmrunning", + "type": "integer" }, { - "description": "id of the os on volume", - "name": "ostypeid", + "description": "the total number of cpu cores the project can own", + "name": "cpulimit", "type": "string" }, { - "description": "the type of the snapshot", - "name": "snapshottype", + "description": "the total number of templates available to be created by this project", + "name": "templateavailable", "type": "string" }, { - "description": "type of the datastore for the snapshot entry", - "name": "datastoretype", + "description": "the total number of snapshots available for this project", + "name": "snapshotavailable", "type": "string" }, { - "description": "ID of the disk volume", - "name": "volumeid", + "description": "the project account name of the project", + "name": "projectaccountname", "type": "string" }, { - "description": " the date the snapshot was created", - "name": "created", - "type": "date" + "description": "the total number of networks owned by project", + "name": "networktotal", + "type": "long" }, { - "description": "name of the datastore for the snapshot entry", - "name": "datastorename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the account associated with the snapshot", - "name": "account", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by project", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "virtual size of backedup snapshot on image store", - "name": "virtualsize", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the total number of public ip addresses allocated for this project", + "name": "iptotal", "type": "long" }, { - "description": "ID of the datastore for the snapshot entry", - "name": "datastoreid", + "description": "the total number of virtual machines that can be deployed by this project", + "name": "vmlimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of vpcs available to be created for this project", + "name": "vpcavailable", + "type": "string" }, { - "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "description": "the total number of virtual machines available for this project to acquire", + "name": "vmavailable", + "type": "string" + }, + { + "description": "The tagged resource limit and count for the project", + "name": "taggedresources", + "type": "list" + }, + { + "description": "the state of the project", "name": "state", - "type": "state" + "type": "string" }, { - "description": "the domain ID of the snapshot's account", - "name": "domainid", + "description": "the total number of snapshots which can be stored by this project", + "name": "snapshotlimit", "type": "string" }, { - "description": "type of the disk volume", - "name": "volumetype", + "description": "the total volume which can be used by this project", + "name": "volumelimit", "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "the total number of templates which have been created by this project", + "name": "templatetotal", + "type": "long" + }, + { + "description": "the total secondary storage space (in GiB) available to be used for this project", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "display name of the os on volume", - "name": "osdisplayname", + "description": "the total secondary storage space (in GiB) the project can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "download progress of a snapshot", - "name": "downloaddetails", - "type": "map" + "description": "the total number of public ip addresses this project can acquire", + "name": "iplimit", + "type": "string" }, { - "description": "the project name of the snapshot", - "name": "project", + "description": "the id of the project", + "name": "id", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total memory (in MB) available to be created for this project", + "name": "memoryavailable", "type": "string" }, { - "description": "id of the availability zone", - "name": "zoneid", + "description": "the account name of the project's owners", + "name": "owner", + "type": "list" + }, + { + "description": "the name of the project", + "name": "name", "type": "string" }, - {}, { - "description": "the domain name of the snapshot's account", + "description": "the total number of vpcs owned by project", + "name": "vpctotal", + "type": "long" + } + ], + "since": "3.0.0" + }, + { + "description": "Updates an existing autoscale policy.", + "isasync": true, + "name": "updateAutoScalePolicy", + "params": [ + { + "description": "the cool down period in which the policy should not be evaluated after the action has been taken", + "length": 255, + "name": "quiettime", + "required": false, + "type": "integer" + }, + { + "description": "the list of IDs of the conditions that are being evaluated on every interval", + "length": 255, + "name": "conditionids", + "related": "", + "required": false, + "type": "list" + }, + { + "description": "the ID of the autoscale policy", + "length": 255, + "name": "id", + "related": "listAutoScalePolicies,updateAutoScalePolicy", + "required": true, + "type": "uuid" + }, + { + "description": "the name of the autoscale policy", + "length": 255, + "name": "name", + "required": false, + "since": "4.18.0", + "type": "string" + }, + { + "description": "the duration in which the conditions have to be true before action is taken", + "length": 255, + "name": "duration", + "required": false, + "type": "integer" + } + ], + "related": "listAutoScalePolicies", + "response": [ + { + "description": "the domain name of the autoscale policy", "name": "domain", "type": "string" }, { - "description": "valid location types are primary and secondary.", - "name": "locationtype", + "description": "the domain ID of the autoscale policy", + "name": "domainid", "type": "string" }, - {}, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" + "description": "the cool down period for which the policy should not be evaluated after the action has been taken", + "name": "quiettime", + "type": "integer" }, { - "description": "ID of the snapshot", - "name": "id", + "description": "the project id autoscale policy", + "name": "projectid", "type": "string" }, { - "description": "name of the disk volume", - "name": "volumename", + "description": "name of the autoscale policy", + "name": "name", "type": "string" }, { - "description": "physical size of backedup snapshot on image store", - "name": "physicalsize", - "type": "long" + "description": "path of the domain to which the autoscale policy belongs", + "name": "domainpath", + "type": "string" }, { - "description": "name of the snapshot", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the duration for which the conditions have to be true before action is taken", + "name": "duration", + "type": "integer" }, + {}, { - "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", - "name": "revertable", - "type": "boolean" + "description": "the list of IDs of the conditions that are being evaluated on every interval", + "name": "conditions", + "type": "list" }, { - "description": "state of the snapshot on the datastore", - "name": "datastorestate", + "description": "the account owning the autoscale policy", + "name": "account", "type": "string" }, { - "description": "the project id of the snapshot", - "name": "projectid", + "description": "the project name of the autoscale policy", + "name": "project", "type": "string" - } - ], - "since": "4.10.0" + }, + { + "description": "the autoscale policy ID", + "name": "id", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", + "name": "action", + "type": "string" + }, + {} + ] }, { - "description": "Lists objects at specified path on an image store.", - "isasync": false, - "name": "listImageStoreObjects", + "description": "Creates a IPv4 subnet for a zone.", + "isasync": true, + "name": "createIpv4SubnetForZone", "params": [ { - "description": "id of the image store", + "description": "project who will own the IPv4 subnet", "length": 255, - "name": "id", - "related": "addSecondaryStorage,listSwifts,addImageStore", - "required": true, + "name": "projectid", + "related": "activateProject,suspendProject,updateProject", + "required": false, "type": "uuid" }, { - "description": "List by keyword", + "description": "The CIDR of the IPv4 subnet.", "length": 255, - "name": "keyword", - "required": false, + "name": "subnet", + "required": true, "type": "string" }, { - "description": "", + "description": "account who will own the IPv4 subnet", "length": 255, - "name": "pagesize", + "name": "account", "required": false, - "type": "integer" + "type": "string" }, { - "description": "path to list on image store", + "description": "domain ID of the account owning the IPv4 subnet", "length": 255, - "name": "path", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "UUID of the zone which the IPv4 subnet belongs to.", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": true, + "type": "uuid" } ], - "related": "", + "related": "dedicateIpv4SubnetForZone", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Volume ID associated with the data store object.", - "name": "volumeid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Format of template associated with the data store object.", - "name": "format", + "description": "the domain ID of the IPv4 subnet", + "name": "domainid", "type": "string" }, {}, { - "description": "Template Name associated with the data store object.", - "name": "templatename", - "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", - "name": "jobid", + "description": "guest IPv4 subnet", + "name": "subnet", "type": "string" }, { - "description": "Is it a directory.", - "name": "isdirectory", - "type": "boolean" + "description": "name of zone to which the IPv4 subnet belongs to.", + "name": "zonename", + "type": "string" }, + {}, { - "description": "Last modified date of the file/directory.", - "name": "lastupdated", - "type": "date" + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", + "type": "string" }, { - "description": "Snapshot Name associated with the data store object.", - "name": "snapshotname", + "description": "the domain name of the IPv4 subnet", + "name": "domain", "type": "string" }, { - "description": "Size is in Bytes.", - "name": "size", - "type": "long" + "description": "the account of the IPv4 subnet", + "name": "account", + "type": "string" }, { - "description": "Template ID associated with the data store object.", - "name": "templateid", - "type": "string" + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" }, - {}, { - "description": "Volume Name associated with the data store object.", - "name": "volumename", + "description": "the project id of the IPv4 subnet", + "name": "projectid", "type": "string" }, { - "description": "Snapshot ID associated with the data store object.", - "name": "snapshotid", + "description": "the project name of the IPv4 subnet", + "name": "project", "type": "string" }, { - "description": "Name of the data store object.", - "name": "name", + "description": "id of the guest IPv4 subnet", + "name": "id", "type": "string" } ], - "since": "4.19.0" + "since": "4.20.0" }, { - "description": "Dedicates a guest vlan range to an account", + "description": "Creates a disk offering.", "isasync": false, - "name": "dedicateGuestVlanRange", + "name": "createDiskOffering", "params": [ { - "description": "guest vlan range to be dedicated", + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", "length": 255, - "name": "vlanrange", - "required": true, - "type": "string" + "name": "hypervisorsnapshotreserve", + "required": false, + "type": "integer" }, { - "description": "domain ID of the account owning a VLAN", + "description": "the ID of the containing domain(s), null for public offerings", "length": 255, "name": "domainid", - "related": "createDomain,listDomains,listDomains", + "related": "listDomainChildren,listDomains", "required": false, - "type": "uuid" + "type": "list" }, { - "description": "project who will own the VLAN", + "description": "burst bytes read rate of the disk offering", "length": 255, - "name": "projectid", - "related": "", + "name": "bytesreadratemax", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "physical network ID of the vlan", + "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" + "name": "disksizestrictness", + "required": false, + "since": "4.17", + "type": "boolean" }, { - "description": "account who will own the VLAN", + "description": "whether disk offering size is custom or not", "length": 255, - "name": "account", + "name": "customized", "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the project id of the guest vlan range", - "name": "projectid", - "type": "string" + "type": "boolean" }, { - "description": "the zone of the guest vlan range", - "name": "zoneid", + "description": "length (in seconds) of the burst", + "length": 255, + "name": "iopsreadratemaxlength", + "required": false, "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "An alternate display text of the disk offering, defaults to 'name'.", + "length": 4096, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "the physical network of the guest vlan range", - "name": "physicalnetworkid", + "description": "min iops of the disk offering", + "length": 255, + "name": "miniops", + "required": false, "type": "long" }, { - "description": "the domain name of the guest VLAN range", - "name": "domain", - "type": "string" + "description": "max iops of the disk offering", + "length": 255, + "name": "maxiops", + "required": false, + "type": "long" }, { - "description": "the account of the guest VLAN range", - "name": "account", - "type": "string" + "description": "Name of the storage policy defined at vCenter, this is applicable only for VMware", + "length": 255, + "name": "storagepolicy", + "required": false, + "since": "4.15", + "type": "uuid" }, - {}, { - "description": "path of the domain to which the guest VLAN range belongs", - "name": "domainpath", + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "length": 255, + "name": "cachemode", + "required": false, + "since": "4.14", "type": "string" }, { - "description": "the guest VLAN range", - "name": "guestvlanrange", + "description": "burst io requests write rate of the disk offering", + "length": 255, + "name": "iopswriteratemax", + "required": false, + "type": "long" + }, + { + "description": "the storage type of the disk offering. Values are local and shared.", + "length": 255, + "name": "storagetype", + "required": false, "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "details to specify disk offering parameters", + "length": 255, + "name": "details", + "required": false, + "since": "4.16", + "type": "map" }, { - "description": "the domain ID of the guest VLAN range", - "name": "domainid", - "type": "string" + "description": "whether disk offering iops is custom or not", + "length": 255, + "name": "customizediops", + "required": false, + "type": "boolean" }, { - "description": "the project name of the guest vlan range", - "name": "project", - "type": "string" + "description": "bytes write rate of the disk offering", + "length": 255, + "name": "byteswriterate", + "required": false, + "type": "long" }, { - "description": "the ID of the guest VLAN range", - "name": "id", + "description": "name of the disk offering", + "length": 255, + "name": "name", + "required": true, "type": "string" - } - ] - }, - { - "description": "Updates an ISO file.", - "isasync": false, - "name": "updateIso", - "params": [ + }, { - "description": "the name of the image file", + "description": "size of the disk offering in GB (1GB = 1,073,741,824 bytes)", "length": 255, - "name": "name", + "name": "disksize", "required": false, - "type": "string" + "type": "long" }, { - "description": "the display text of the image", + "description": "tags for the disk offering", "length": 4096, - "name": "displaytext", + "name": "tags", "required": false, "type": "string" }, { - "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "description": "Volumes using this offering should be encrypted", "length": 255, - "name": "cleanupdetails", + "name": "encrypt", "required": false, + "since": "4.18", "type": "boolean" }, { - "description": "sort key of the template, integer", - "length": 255, - "name": "sortkey", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the OS type that best represents the OS of this image.", + "description": "length (in seconds) of the burst", "length": 255, - "name": "ostypeid", - "related": "addGuestOs", + "name": "byteswriteratemaxlength", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "true if the template supports the sshkey upload feature; default is false", + "description": "an optional field, whether to display the offering to the end user or not.", "length": 255, - "name": "sshkeyenabled", + "name": "displayoffering", "required": false, "type": "boolean" }, { - "description": "true if the template requires HVM, false otherwise; available only for updateTemplate API", + "description": "length (in seconds) of the burst", "length": 255, - "name": "requireshvm", + "name": "iopswriteratemaxlength", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", + "description": "the ID of the containing zone(s), null for public offerings", "length": 255, - "name": "details", + "name": "zoneid", + "related": "createZone,listZones,listZones", "required": false, - "type": "map" + "since": "4.13", + "type": "list" }, { - "description": "true if the template type is routing i.e., if template is used to deploy router", + "description": "length (in seconds) of the burst", "length": 255, - "name": "isrouting", + "name": "bytesreadratemaxlength", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "description": "burst bytes write rate of the disk offering", "length": 255, - "name": "isdynamicallyscalable", + "name": "byteswriteratemax", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "true if image is bootable, false otherwise; available only for updateIso API", + "description": "burst requests read rate of the disk offering", "length": 255, - "name": "bootable", + "name": "iopsreadratemax", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "the CPU arch of the template/ISO. Valid options are: x86_64, aarch64", + "description": "io requests read rate of the disk offering", "length": 255, - "name": "arch", + "name": "iopsreadrate", "required": false, - "since": "4.20", - "type": "string" + "type": "long" }, { - "description": "the format for the image", + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", "length": 255, - "name": "format", + "name": "provisioningtype", "required": false, "type": "string" }, { - "description": "true if the image supports the password reset feature; default is false", + "description": "io requests write rate of the disk offering", "length": 255, - "name": "passwordenabled", + "name": "iopswriterate", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "the ID of the image file", + "description": "bytes read rate of the disk offering", "length": 255, - "name": "id", - "related": "prepareTemplate,listIsos,updateIso,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "name": "bytesreadrate", + "required": false, + "type": "long" } ], - "related": "prepareTemplate,listIsos,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "", "response": [ { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" - }, - { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", + "description": "true if disk offering uses custom size, false otherwise", + "name": "iscustomized", "type": "boolean" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", + "description": "Returns true if the disk offering is suitable for the given virtual machine for disk creation otherwise false", + "name": "suitableforvirtualmachine", "type": "boolean" }, { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" - }, - { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "name": "cacheMode", "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", - "type": "string" + "description": "io requests read rate of the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", - "type": "string" + "description": "To allow or disallow the resize operation on the disks created from this disk offering, if the flag is true then resize is not allowed", + "name": "disksizestrictness", + "type": "boolean" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" + "description": "burst bytes write rate of the disk offering", + "name": "diskBytesWriteRateMax", + "type": "long" }, { - "description": "the project id of the template", - "name": "projectid", - "type": "string" + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "name": "hypervisorsnapshotreserve", + "type": "integer" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", + "description": "Whether disks using this offering will be encrypted on primary storage", + "name": "encrypt", "type": "boolean" }, { - "description": "the project name of the template", - "name": "project", - "type": "string" + "description": "length (in seconds) of the burst", + "name": "diskBytesReadRateMaxLength", + "type": "long" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" + "description": "length (in second) of the burst", + "name": "diskIopsReadRateMaxLength", + "type": "long" }, { - "description": "the template display text", - "name": "displaytext", + "description": "state of the disk offering", + "name": "state", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "length (in seconds) of the burst", + "name": "diskBytesWriteRateMaxLength", + "type": "long" }, + {}, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "bytes write rate of the disk offering", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "additional key/value details tied with this disk offering", + "name": "details", + "type": "map" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "bytes read rate of the disk offering", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", + "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 domain to which the template belongs", - "name": "domain", + "description": "an alternate display text of the disk offering.", + "name": "displaytext", "type": "string" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the min iops of the disk offering", + "name": "miniops", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "name": "provisioningtype", "type": "string" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "the name of the disk offering", + "name": "name", "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", + "description": "the date this disk offering was created", + "name": "created", "type": "date" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "the max iops of the disk offering", + "name": "maxiops", + "type": "long" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "the vsphere storage policy tagged to the disk offering in case of VMware", + "name": "vspherestoragepolicy", "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", - "name": "deployasis", + "description": "true if disk offering uses custom iops, false otherwise", + "name": "iscustomizediops", "type": "boolean" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "burst io requests write rate of the disk offering", + "name": "diskIopsWriteRateMax", + "type": "long" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the size of the disk offering in GB", + "name": "disksize", + "type": "long" }, - {}, { - "description": "the name of the zone for this template", - "name": "zonename", - "type": "string" + "description": "length (in seconds) of the burst", + "name": "diskIopsWriteRateMaxLength", + "type": "long" }, { - "description": "the template ID", - "name": "id", + "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 type of the template", - "name": "templatetype", - "type": "string" + "description": "whether to display the offering to the end user or not.", + "name": "displayoffering", + "type": "boolean" }, { - "description": "the physical size of the template", - "name": "physicalsize", + "description": "burst io requests read rate of the disk offering", + "name": "diskIopsReadRateMax", "type": "long" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "unique ID of the disk offering", + "name": "id", "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the storage type for this disk offering", + "name": "storagetype", + "type": "string" }, + {}, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" + "description": "burst bytes read rate of the disk offering", + "name": "diskBytesReadRateMax", + "type": "long" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "io requests write rate of the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the tags for the disk offering", + "name": "tags", "type": "string" - }, + } + ] + }, + { + "description": "Lists all volumes.", + "isasync": false, + "name": "listVolumes", + "params": [ { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "state of the volume. Possible values are: Ready, Allocated, Destroy, Expunging, Expunged.", + "length": 255, + "name": "state", + "required": false, + "type": "string" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "list volumes on specified host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", + "required": false, + "type": "uuid" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", - "type": "string" + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "list system VMs; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "listsystemvms", + "required": false, + "since": "4.18", "type": "boolean" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" + "description": "list volumes by disk offering of a service offering. If both service offering and disk offering are passed, service offering is ignored", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": false, + "since": "4.19.1", + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the cluster id the disk volume belongs to", + "length": 255, + "name": "clusterid", + "related": "addCluster", + "required": false, + "type": "uuid" }, { - "description": "the template name", - "name": "name", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the ID of the availability zone", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "checksum of the template", - "name": "checksum", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "displayvolume", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "list volumes by disk offering", + "length": 255, + "name": "diskofferingid", + "related": "", + "required": false, + "since": "4.4", + "type": "uuid" }, - {}, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "makes the API's response contains only the resource count", + "length": 255, + "name": "retrieveonlyresourcecount", + "required": false, + "type": "boolean" }, { - "description": "the size of the template", - "name": "size", - "type": "long" - } - ] - }, - { - "description": "Deletes a counter for VM auto scaling", - "isasync": true, - "name": "deleteCounter", - "params": [ + "description": "the ID of the virtual machine", + "length": 255, + "name": "virtualmachineid", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "uuid" + }, { - "description": "the ID of the counter", + "description": "the ID of the disk volume", "length": 255, "name": "id", - "related": "createCounter", - "required": true, + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": false, "type": "uuid" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the disk volume", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the IDs of the volumes, mutually exclusive with id", + "length": 255, + "name": "ids", + "related": "attachVolume,createVolume,listVolumes,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": false, + "since": "4.9", + "type": "list" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the type of disk volume", + "length": 255, + "name": "type", + "required": false, + "type": "string" }, - {} - ] - }, - { - "description": "Issues a client certificate using configured or provided CA plugin", - "isasync": true, - "name": "issueCertificate", - "params": [ { - "description": "The certificate signing request (in pem format), if CSR is not provided then configured/provided options are considered", - "length": 65535, - "name": "csr", + "description": "the pod id the disk volume belongs to", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Comma separated list of domains, the certificate should be issued for. When csr is not provided, the first domain is used as a subject/CN", + "description": "", "length": 255, - "name": "domain", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", + "description": "list only volumes that are encrypted", "length": 255, - "name": "provider", + "name": "isencrypted", "required": false, - "type": "string" + "since": "4.19.1", + "type": "boolean" }, { - "description": "Comma separated list of IP addresses, the certificate should be issued for", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "ipaddress", + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the storage pool, available to ROOT admin only", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", "required": false, + "since": "4.3", "type": "string" }, { - "description": "Certificate validity duration in number of days, when not provided the default configured value will be used", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "duration", + "name": "account", "required": false, - "type": "integer" + "type": "string" } ], - "related": "listCaCertificate", + "related": "attachVolume,createVolume,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" + }, + { + "description": "pod name of the volume", + "name": "podname", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "Private key for the certificate", - "name": "privatekey", - "type": "string" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "The client certificate", - "name": "certificate", + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, { - "description": "The CA certificate(s)", - "name": "cacertificates", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, - {} - ], - "since": "4.11.0" - }, - { - "description": "Creates a port forwarding rule", - "isasync": true, - "name": "createPortForwardingRule", - "params": [ { - "description": "the starting port of port forwarding rule's private port range", - "length": 255, - "name": "privateport", - "required": true, - "type": "integer" + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "length": 255, - "name": "publicendport", - "required": false, - "type": "integer" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the ending port of port forwarding rule's private port range", - "length": 255, - "name": "privateendport", - "required": false, - "type": "integer" + "description": "display name of the virtual machine", + "name": "vmdisplayname", + "type": "string" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", "type": "boolean" }, { - "description": "the IP address id of the port forwarding rule", - "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries must be separated by a single comma character (,). This parameter is deprecated. Do not use.", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" + "description": "size of the disk volume", + "name": "size", + "type": "long" }, { - "description": "if true, firewall rule for source/end public port is automatically created; if false - firewall rule has to be created explicitly. If not specified 1) defaulted to false when PF rule is being created for VPC guest network 2) in all other cases defaulted to true", - "length": 255, - "name": "openfirewall", - "required": false, - "type": "boolean" + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", + "type": "string" }, { - "description": "the starting port of port forwarding rule's public port range", - "length": 255, - "name": "publicport", - "required": true, - "type": "integer" + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" }, { - "description": "the protocol for the port forwarding rule. Valid values are TCP or UDP.", - "length": 255, - "name": "protocol", - "required": true, + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "VM guest nic secondary IP address for the port forwarding rule", - "length": 255, - "name": "vmguestip", - "required": false, + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the ID of the virtual machine for the port forwarding rule", - "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" + "description": "the status of the volume", + "name": "status", + "type": "string" }, + {}, { - "description": "the network of the virtual machine the port forwarding rule will be created for. Required when public IP address is not associated with any guest network yet (VPC case).", - "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "type": "uuid" - } - ], - "related": "updatePortForwardingRule", - "response": [ + "description": "name of the virtual machine", + "name": "vmname", + "type": "string" + }, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the list of resource tags associated with the rule", + "description": "cluster id of the volume", + "name": "clusterid", + "type": "string" + }, + { + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { @@ -99946,8 +92070,8 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { @@ -99956,707 +92080,879 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" } ], - "type": "list" - }, - { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", - "type": "string" - }, - { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - {}, - { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", - "type": "string" - }, - {}, - { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", - "type": "string" - }, - { - "description": "the ID of the port forwarding rule", - "name": "id", - "type": "string" - }, - { - "description": "the protocol of the port forwarding rule", - "name": "protocol", - "type": "string" + "type": "set" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" + }, + { + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] - }, - { - "description": "Dedicates a zones.", - "isasync": true, - "name": "dedicateZone", - "params": [ + }, { - "description": "the name of the account which needs dedication. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the ID of the zone", - "length": 255, + "description": "ID of the availability zone", "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "type": "string" }, { - "description": "the ID of the containing domain", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - {}, - { - "description": "the ID of the Zone", - "name": "zoneid", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "the Dedication Affinity Group ID of the zone", - "name": "affinitygroupid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", + "type": "string" }, + {}, { - "description": "the Account Id to which the Zone is dedicated", - "name": "accountid", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "the Name of the Zone", - "name": "zonename", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the domain ID to which the Zone is dedicated", - "name": "domainid", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the ID of the dedicated resource", - "name": "id", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, - {} - ] - }, - { - "description": "load template into primary storage", - "isasync": false, - "name": "prepareTemplate", - "params": [ { - "description": "storage pool ID of the primary storage pool to which the template should be prepared. If it is not provided the template is prepared on all the available primary storage pools.", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "zone ID of the template to be prepared in primary storage(s).", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "type of the virtual machine", + "name": "vmtype", + "type": "string" }, { - "description": "template ID of the template to be prepared in primary storage(s).", - "length": 255, - "name": "templateid", - "related": "prepareTemplate,listIsos,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" - } - ], - "related": "listIsos,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "response": [ + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" + }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", "type": "boolean" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, - {}, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the domain associated with the disk volume", + "name": "domain", "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": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the chain info of the volume", + "name": "chaininfo", + "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", "type": "string" }, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" }, { - "description": "the status of the template", - "name": "status", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", - "type": "string" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the template name", - "name": "name", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "checksum of the template", - "name": "checksum", - "type": "string" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", - "type": "string" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the date this template was created", + "description": "the date the disk volume was created", "name": "created", "type": "date" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" + }, + { + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" + }, + { + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, { - "description": "the size of the template", - "name": "size", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the template display text", - "name": "displaytext", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the path of the volume", + "name": "path", + "type": "string" + } + ] + }, + { + "description": "Creates a load balancer health check policy", + "isasync": true, + "name": "createLBHealthCheckPolicy", + "params": [ + { + "description": "HTTP ping path", + "length": 255, + "name": "pingpath", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "Number of consecutive health check failures before declaring an instance unhealthy", + "length": 255, + "name": "unhealthythreshold", + "required": false, "type": "integer" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "the description of the load balancer health check policy", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" + "description": "the ID of the load balancer rule", + "length": 255, + "name": "lbruleid", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule", + "required": true, + "type": "uuid" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "Amount of time between health checks (1 sec - 20940 sec)", + "length": 255, + "name": "intervaltime", + "required": false, + "type": "integer" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" + "description": "Time to wait when receiving a response from the health check (2sec - 60 sec)", + "length": 255, + "name": "responsetimeout", + "required": false, + "type": "integer" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" - }, + "description": "Number of consecutive health check success before declaring an instance healthy", + "length": 255, + "name": "healthythreshold", + "required": false, + "type": "integer" + } + ], + "related": "listLBHealthCheckPolicies", + "response": [ { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the LB rule ID", + "name": "lbruleid", + "type": "string" }, - {}, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "the list of healthcheckpolicies", + "name": "healthcheckpolicy", + "response": [ + { + "description": "Number of consecutive health check failures before declaring an instance unhealthy.", + "name": "unhealthcheckthresshold", + "type": "int" + }, + { + "description": "the description of the healthcheck policy", + "name": "description", + "type": "string" + }, + { + "description": "Time to wait when receiving a response from the health check", + "name": "responsetime", + "type": "int" + }, + { + "description": "Number of consecutive health check success before declaring an instance healthy", + "name": "healthcheckthresshold", + "type": "int" + }, + { + "description": "the state of the policy", + "name": "state", + "type": "string" + }, + { + "description": "is policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the LB HealthCheck policy ID", + "name": "id", + "type": "string" + }, + { + "description": "the pingpath of the healthcheck policy", + "name": "pingpath", + "type": "string" + }, + { + "description": "Amount of time between health checks", + "name": "healthcheckinterval", + "type": "int" + } + ], + "type": "list" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", - "type": "boolean" + "description": "the account of the HealthCheck policy", + "name": "account", + "type": "string" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the id of the zone the HealthCheck policy belongs to", + "name": "zoneid", + "type": "string" }, { - "description": "the ID of the domain to which the template belongs", + "description": "the domain ID of the HealthCheck policy", "name": "domainid", "type": "string" }, + {}, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the domain of the HealthCheck policy", + "name": "domain", + "type": "string" }, { - "description": "the template ID", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.2.0" + }, + { + "description": "Lists details of network protocols", + "isasync": false, + "name": "listNetworkProtocols", + "params": [ + { + "description": "The option of network protocols. Supported values are: protocolnumber, icmptype.", + "length": 255, + "name": "option", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "the name of the protocol parameter", + "name": "name", "type": "string" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the project name of the template", - "name": "project", + "description": "the index (ID, Value, Code, Type, Option, etc) of the protocol parameter", + "name": "index", + "type": "integer" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the description of the protocol parameter", + "name": "description", "type": "string" }, { - "description": "additional key/value details tied with template", + "description": "the details of the protocol parameter", "name": "details", "type": "map" + } + ], + "since": "4.19.0" + }, + { + "description": "Change Service offering of a Shared FileSystem", + "isasync": true, + "name": "changeSharedFileSystemServiceOffering", + "params": [ + { + "description": "the offering to use for the shared filesystem instance", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the ID of the shared filesystem", + "length": 255, + "name": "id", + "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", + "required": true, + "type": "uuid" + } + ], + "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering", + "response": [ + { + "description": "ID of the shared filesystem", + "name": "id", + "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", + "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "name of the storage fs data volume", + "name": "volumename", + "type": "string" + }, + { + "description": "the list of nics associated with the shared filesystem", + "name": "nic", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" } ], - "type": "set" + "type": "list" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "name of the shared filesystem", + "name": "name", "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "ID of the storage fs vm", + "name": "virtualmachineid", "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" - } - ] - }, - { - "description": "Lists all Buckets.", - "isasync": false, - "name": "listBuckets", - "params": [ + "description": "description of the shared filesystem", + "name": "description", + "type": "string" + }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the disk utilization", + "name": "utilization", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the shared filesystem provider", + "name": "provider", + "type": "string" }, + {}, { - "description": "the IDs of the Buckets, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "listBuckets", - "required": false, - "type": "list" + "description": "path of the domain to which the shared filesystem", + "name": "domainpath", + "type": "string" }, { - "description": "the name of the bucket", - "length": 255, - "name": "name", - "required": false, + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "name of the storage pool hosting the data volume", + "name": "storage", + "type": "string" }, { - "description": "the ID of the bucket", - "length": 255, - "name": "id", - "related": "listBuckets", - "required": false, - "type": "uuid" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "the account associated with the shared filesystem", + "name": "account", "type": "string" }, { - "description": "the ID of the object storage pool, available to ROOT admin only", - "length": 255, - "name": "objectstorageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "required": false, - "type": "uuid" + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "ID of the storage fs vm", + "name": "vmstate", + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the project ID of the shared filesystem", + "name": "projectid", + "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" - } - ], - "related": "", - "response": [ + "description": "the project name of the shared filesystem", + "name": "project", + "type": "string" + }, { - "description": "Object storage provider", - "name": "provider", + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain associated with the shared filesystem", + "name": "domain", "type": "string" }, { - "description": "the date the Bucket was created", - "name": "created", - "type": "date" + "description": "the read (IO) of disk on the shared filesystem", + "name": "diskioread", + "type": "long" }, { - "description": "the project name of the bucket", - "name": "project", + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", "type": "string" }, { - "description": "State of the Bucket", + "description": "the state of the shared filesystem", "name": "state", "type": "string" }, { - "description": "Name of the object storage hosting the Bucket; returned to admin user only", - "name": "objectstore", + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "ID of the storage fs data volume", + "name": "volumeid", + "type": "string" + }, + { + "description": "Name of the availability zone", + "name": "zonename", + "type": "string" + }, + { + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", + "type": "string" + }, + { + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", + "type": "boolean" + }, + { + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", + "type": "string" + }, + { + "description": "size of the shared filesystem", + "name": "size", + "type": "long" + }, + { + "description": "size of the shared filesystem in GiB", + "name": "sizegb", + "type": "string" + }, + { + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", + "type": "string" + }, + { + "description": "Network ID of the shared filesystem", + "name": "networkid", + "type": "string" + }, + { + "description": "Network name of the shared filesystem", + "name": "networkname", "type": "string" }, { @@ -100669,28 +92965,28 @@ "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -100699,697 +92995,791 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "set" }, + {}, { - "description": "id of the object storage hosting the Bucket; returned to admin user only", - "name": "objectstorageid", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "Bucket Access Policy", - "name": "policy", + "description": "path to mount the shared filesystem", + "name": "path", "type": "string" }, { - "description": "Bucket Object Locking", - "name": "objectlocking", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the account associated with the Bucket", - "name": "account", + "description": "the filesystem format", + "name": "filesystem", + "type": "string" + } + ], + "since": "4.20.0" + }, + { + "description": "Locks a user account", + "isasync": false, + "name": "lockUser", + "params": [ + { + "description": "Locks user by user ID.", + "length": 255, + "name": "id", + "related": "createUser,disableUser,enableUser,getUser,listUsers,lockUser,updateUser", + "required": true, + "type": "uuid" + } + ], + "related": "createUser,disableUser,enableUser,getUser,listUsers,updateUser", + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Bucket Versioning", - "name": "versioning", + "description": "the account ID of the user", + "name": "accountid", + "type": "string" + }, + { + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", "type": "boolean" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", "type": "boolean" }, { - "description": "Bucket Access Key", - "name": "accesskey", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the domain associated with the bucket", - "name": "domain", + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "Bucket Quota in GB", - "name": "quota", - "type": "integer" + "description": "the type of the role", + "name": "roletype", + "type": "string" }, { - "description": "path of the domain to which the bucket belongs", - "name": "domainpath", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "Total size of objects in Bucket", - "name": "size", - "type": "long" + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" }, { - "description": "the project id of the bucket", - "name": "projectid", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, - {}, { - "description": "Bucket URL", - "name": "url", + "description": "the name of the role", + "name": "rolename", "type": "string" }, {}, { - "description": "Bucket Secret Key", - "name": "usersecretkey", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "ID of the Bucket", - "name": "id", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "Bucket Encryption", - "name": "encryption", - "type": "boolean" + "description": "the ID of the role", + "name": "roleid", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "name of the Bucket", - "name": "name", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the ID of the domain associated with the bucket", - "name": "domainid", + "description": "the user state", + "name": "state", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Stops an Internal LB vm.", - "isasync": true, - "name": "stopInternalLoadBalancerVM", - "params": [ + }, { - "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). To be used if the caller knows the VM is stopped and should be marked as such.", - "length": 255, - "name": "forced", - "required": false, + "description": "true if user is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "the ID of the internal lb vm", - "length": 255, + "description": "the user firstname", + "name": "firstname", + "type": "string" + }, + { + "description": "the user ID", "name": "id", - "related": "listRouters,changeServiceForRouter,stopInternalLoadBalancerVM,listInternalLoadBalancerVMs", - "required": true, - "type": "uuid" - } - ], - "related": "listRouters,changeServiceForRouter,listInternalLoadBalancerVMs", - "response": [ + "type": "string" + }, { - "description": "the host ID for the router", - "name": "hostid", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "the date and time the router was created", - "name": "created", - "type": "date" + "description": "the domain name of the user", + "name": "domain", + "type": "string" }, - {}, { - "description": "path of the Domain the router belongs to", - "name": "domainpath", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "the domain ID associated with the router", - "name": "domainid", + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "the template name for the router", - "name": "templatename", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" + } + ] + }, + { + "description": "Checks if the Cloudian Connector is enabled", + "isasync": false, + "name": "cloudianIsEnabled", + "params": [], + "related": "", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the second DNS for the router", - "name": "dns2", + "description": "the Cloudian Management Console base URL", + "name": "url", "type": "string" }, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", + "description": "the Cloudian connector enabled state", + "name": "enabled", "type": "boolean" }, + {}, { - "description": "the template ID for the router", - "name": "templateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ], + "since": "4.11.0" + }, + { + "description": "Lists load balancer health check policies.", + "isasync": false, + "name": "listLBHealthCheckPolicies", + "params": [ { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", - "type": "string" + "description": "the ID of the load balancer rule", + "length": 255, + "name": "lbruleid", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule", + "required": false, + "type": "uuid" }, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" + "description": "the ID of the health check policy", + "length": 255, + "name": "id", + "related": "listLBHealthCheckPolicies", + "required": false, + "since": "4.4", + "type": "uuid" }, { - "description": "the version of template", - "name": "version", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the first DNS for the router", - "name": "dns1", - "type": "string" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", + "description": "the account of the HealthCheck policy", + "name": "account", "type": "string" }, + {}, + {}, { - "description": "the Pod name for the router", - "name": "podname", + "description": "the domain ID of the HealthCheck policy", + "name": "domainid", "type": "string" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "the LB rule ID", + "name": "lbruleid", "type": "string" }, { - "description": "the hostname for the router", - "name": "hostname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the id of the zone the HealthCheck policy belongs to", + "name": "zoneid", "type": "string" }, { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "the domain of the HealthCheck policy", + "name": "domain", "type": "string" }, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", + "description": "the list of healthcheckpolicies", + "name": "healthcheckpolicy", "response": [ { - "description": "detailed response generated on running health check", - "name": "details", + "description": "Amount of time between health checks", + "name": "healthcheckinterval", + "type": "int" + }, + { + "description": "Number of consecutive health check success before declaring an instance healthy", + "name": "healthcheckthresshold", + "type": "int" + }, + { + "description": "is policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the LB HealthCheck policy ID", + "name": "id", "type": "string" }, { - "description": "the type of the health check - basic or advanced", - "name": "checktype", + "description": "the state of the policy", + "name": "state", "type": "string" }, { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" + "description": "the pingpath of the healthcheck policy", + "name": "pingpath", + "type": "string" }, { - "description": "result of the health check", - "name": "success", - "type": "boolean" + "description": "Time to wait when receiving a response from the health check", + "name": "responsetime", + "type": "int" }, { - "description": "the name of the health check on the router", - "name": "checkname", + "description": "the description of the healthcheck policy", + "name": "description", "type": "string" + }, + { + "description": "Number of consecutive health check failures before declaring an instance unhealthy.", + "name": "unhealthcheckthresshold", + "type": "int" } ], "type": "list" - }, + } + ], + "since": "4.2.0" + }, + { + "description": "Creates a network", + "isasync": false, + "name": "createNetwork", + "params": [ { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "Access control type; supported values are account and domain. In 3.0 all shared networks should have aclType=Domain, and all isolated networks - Account. Account means that only the account owner can use the network, domain - all accounts in the domain can use the network", + "length": 255, + "name": "acltype", + "required": false, "type": "string" }, { - "description": "the public IP address for the router", - "name": "publicip", + "description": "domain ID of the account owning a network. If the account is not specified, but the acltype is Account or not specified, the network will be automatically assigned to the caller account and domain. To create a network under the domain without linking it to any account, make sure to include acltype=Domain parameter in the api call. If account is not specified, but acltype is Domain, the network will be created for the specified domain.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "the ID or VID of the network", + "length": 255, + "name": "vlan", + "required": false, "type": "string" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "the zone ID for the network", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": true, + "type": "uuid" + }, + { + "description": "the gateway of the network. Required for shared networks and isolated networks when it belongs to VPC", + "length": 255, + "name": "gateway", + "required": false, "type": "string" }, { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "the first IPv4 DNS for the network", + "length": 255, + "name": "dns1", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", + "description": "the first IPv6 DNS for the network", + "length": 255, + "name": "ip6dns1", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the network offering ID", + "length": 255, + "name": "networkofferingid", + "related": "listNetworkOfferings", + "required": true, + "type": "uuid" + }, + { + "description": "IPV6 address to be assigned to a router in a shared network", + "length": 255, + "name": "routeripv6", + "required": false, + "since": "4.16", "type": "string" }, { - "description": "the domain associated with the router", - "name": "domain", + "description": "the CIDR of IPv6 network, must be at least /64", + "length": 255, + "name": "ip6cidr", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "when true bypasses VLAN id/range overlap check during network creation for shared and L2 networks", + "length": 255, + "name": "bypassvlanoverlapcheck", + "required": false, "type": "boolean" }, { - "description": "the id of the router", - "name": "id", - "type": "string" + "description": "Network ACL ID associated for the network", + "length": 255, + "name": "aclid", + "related": "createNetworkACLList", + "required": false, + "type": "uuid" }, { - "description": "the Zone name for the router", - "name": "zonename", + "description": "Tungsten-Fabric virtual router the network belongs to", + "length": 255, + "name": "tungstenvirtualrouteruuid", + "required": false, "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "network domain", + "length": 255, + "name": "networkdomain", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "The network this network is associated to. only available if create a Shared network", + "length": 255, + "name": "associatednetworkid", + "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "since": "4.17.0", + "type": "uuid" }, { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "the second IPv6 DNS for the network", + "length": 255, + "name": "ip6dns2", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", - "type": "string" + "description": "an optional project for the network", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject,updateProject", + "required": false, + "type": "uuid" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", - "type": "string" + "description": "Ids of the Bgp Peer for the network", + "length": 255, + "name": "bgppeerids", + "related": "updateBgpPeer", + "required": false, + "since": "4.20.0", + "type": "list" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "the beginning IP address in the network IP range", + "length": 255, + "name": "startip", + "required": false, "type": "string" }, { - "description": "the account associated with the router", - "name": "account", - "type": "string" + "description": "the CIDR size of IPv4 network. For regular users, this is required for isolated networks with ROUTED mode.", + "length": 255, + "name": "cidrsize", + "required": false, + "since": "4.20.0", + "type": "integer" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the ending IPv6 address in the IPv6 network range", + "length": 255, + "name": "endipv6", + "required": false, "type": "string" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "Account that will own the network. Account should be under the selected domain", + "length": 255, + "name": "account", + "required": false, "type": "string" }, - {}, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "the display text of the network", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" + "description": "MTU to be configured on the network VR's public facing interfaces", + "length": 255, + "name": "publicmtu", + "required": false, + "since": "4.18.0", + "type": "integer" }, { - "description": "role of the domain router", - "name": "role", + "description": "the isolated private VLAN type for this network", + "length": 255, + "name": "isolatedpvlantype", + "required": false, "type": "string" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "ID of the network in an external system.", + "length": 255, + "name": "externalid", + "required": false, "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", - "type": "string" + "description": "the VPC network belongs to", + "length": 255, + "name": "vpcid", + "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "IPV4 address to be assigned to the public interface of the network router. This address will be used as source NAT address for the network. \nIf an address is given and it cannot be acquired, an error will be returned and the network won´t be implemented,", + "length": 255, + "name": "sourcenatipaddress", + "required": false, + "since": "4.19", "type": "string" }, { - "description": "the Pod ID for the router", - "name": "podid", + "description": "the second IPv4 DNS for the network", + "length": 255, + "name": "dns2", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the name of the router", - "name": "name", + "description": "the netmask of the network. Required for shared networks and isolated networks when it belongs to VPC", + "length": 255, + "name": "netmask", + "required": false, "type": "string" }, { - "description": "the state of the router", - "name": "state", - "type": "state" + "description": "the gateway of the IPv6 network. Required for Shared networks", + "length": 255, + "name": "ip6gateway", + "required": false, + "type": "string" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "the name of the network", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", + "description": "an optional field, whether to the display the network to the end user or not.", + "length": 255, + "name": "displaynetwork", + "required": false, "type": "boolean" }, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", - "type": "string" + "description": "when true ip address usage for the network will not be exported by the listUsageRecords API", + "length": 255, + "name": "hideipaddressusage", + "required": false, + "type": "boolean" }, { - "description": "the list of nics associated with the router", - "name": "nic", - "response": [ - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - } - ], - "type": "set" + "description": "the beginning IPv6 address in the IPv6 network range", + "length": 255, + "name": "startipv6", + "required": false, + "type": "string" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", + "description": "the ending IP address in the network IP range. If not specified, will be defaulted to startIP", + "length": 255, + "name": "endip", + "required": false, "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Updates a security group", - "isasync": false, - "name": "updateSecurityGroup", - "params": [ + "description": "the AS Number of the network", + "length": 255, + "name": "asnumber", + "required": false, + "since": "4.20.0", + "type": "long" + }, { - "description": "The new name of the security group.", + "description": "the isolated private VLAN for this network", "length": 255, - "name": "name", + "name": "isolatedpvlan", "required": false, "type": "string" }, { - "description": "The ID of the security group.", + "description": "the physical network ID the network belongs to", "length": 255, - "name": "id", - "related": "updateSecurityGroup", - "required": true, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": false, "type": "uuid" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "Defines whether to allow subdomains to use networks dedicated to their parent domain(s). Should be used with aclType=Domain, defaulted to allow.subdomain.network.access global config if not specified", "length": 255, - "name": "customid", + "name": "subdomainaccess", "required": false, - "since": "4.4", + "type": "boolean" + }, + { + "description": "IPV4 address to be assigned to a router in a shared network", + "length": 255, + "name": "routerip", + "required": false, + "since": "4.16", "type": "string" + }, + { + "description": "MTU to be configured on the network VR's private interface(s)", + "length": 255, + "name": "privatemtu", + "required": false, + "since": "4.18.0", + "type": "integer" } ], - "related": "", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", "response": [ { - "description": "the name of the security group", - "name": "name", + "description": "the name of the Network associated with this network", + "name": "associatednetwork", "type": "string" }, { - "description": "the project name of the group", - "name": "project", + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" + }, + { + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" + }, + { + "description": "the network's netmask", + "name": "netmask", "type": "string" }, { - "description": "the domain ID of the security group", + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", + "type": "string" + }, + { + "description": "network offering id the network is created from", + "name": "networkofferingid", + "type": "string" + }, + { + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "The internet protocol of network offering", + "name": "internetprotocol", + "type": "string" + }, + { + "description": "UUID of AS NUMBER", + "name": "asnumberid", + "type": "string" + }, + { + "description": "the domain id of the network owner", "name": "domainid", "type": "string" }, { - "description": "the list of resource tags associated with the rule", + "description": "list networks available for vm deployment", + "name": "canusefordeploy", + "type": "boolean" + }, + { + "description": "the list of resource tags associated with network", "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -101398,841 +93788,950 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "id of the resource", + "name": "resourceid", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the traffic type of the network", + "name": "traffictype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - } - ], - "type": "set" + "description": "state of the network", + "name": "state", + "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "description": "the date this network was created", + "name": "created", + "type": "date" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", + "description": "the list of services", + "name": "service", "response": [ { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, + "description": "the service provider name", + "name": "provider", + "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "description": "uuid of the network provider", + "name": "id", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" }, { - "description": "tag key name", - "name": "key", + "description": "state of the network provider", + "name": "state", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the provider name", + "name": "name", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" + "description": "services for this provider", + "name": "servicelist", + "type": "list" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the capability value", + "name": "value", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the capability name", + "name": "name", "type": "string" } ], - "type": "set" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" + "type": "list" } ], - "type": "set" + "type": "list" }, { - "description": "the ID of the security group", - "name": "id", - "type": "string" + "description": "true network requires restart", + "name": "restartrequired", + "type": "boolean" }, { - "description": "the account owning the security group", - "name": "account", + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", "type": "string" }, - {}, { - "description": "the description of the security group", - "name": "description", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - {} - ], - "since": "4.14.0.0" - }, - { - "description": "Creates a domain", - "isasync": false, - "name": "createDomain", - "params": [ - { - "description": "Domain UUID, required for adding domain from another Region", - "length": 255, - "name": "domainid", - "required": false, + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", "type": "string" }, { - "description": "assigns new domain a parent domain by domain ID of the parent. If no parent domain is specified, the ROOT domain is assumed.", - "length": 255, - "name": "parentdomainid", - "related": "createDomain,listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" }, { - "description": "creates domain with this name", - "length": 255, - "name": "name", - "required": true, + "description": "name of the network offering the network is created from", + "name": "networkofferingname", "type": "string" }, { - "description": "Network domain for networks in the domain", - "length": 255, - "name": "networkdomain", - "required": false, - "type": "string" - } - ], - "related": "listDomains,listDomains", - "response": [ - { - "description": "the total number of public ip addresses this domain can acquire", - "name": "iplimit", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "the level of the domain", - "name": "level", - "type": "integer" + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" }, { - "description": "details for the domain", - "name": "domaindetails", - "type": "map" + "description": "ACL name associated with the VPC network", + "name": "aclname", + "type": "string" }, + {}, { - "description": "the total memory (in MB) the domain can own", - "name": "memorylimit", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "the total number of virtual machines available for this domain to acquire", - "name": "vmavailable", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, - {}, { - "description": "the total primary storage space (in GiB) the domain can own", - "name": "primarystoragelimit", + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by domain", - "name": "secondarystoragetotal", - "type": "float" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "description": "the total number of snapshots available for this domain", - "name": "snapshotavailable", - "type": "string" + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" }, { - "description": "the total number of networks available to be created for this domain", - "name": "networkavailable", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the domain name of the network owner", + "name": "domain", "type": "string" }, { - "description": "the total number of virtual machines deployed by this domain", - "name": "vmtotal", - "type": "long" + "description": "the id of the network", + "name": "id", + "type": "string" }, { - "description": "The tagged resource limit and count for the domain", - "name": "taggedresources", - "type": "list" + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", + "type": "string" }, { - "description": "the total number of vpcs available to be created for this domain", - "name": "vpcavailable", + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", "type": "string" }, { - "description": "the total number of cpu cores the domain can own", - "name": "cpulimit", + "description": "the second IPv4 DNS for the network", + "name": "dns2", "type": "string" }, { - "description": "the total memory (in MB) owned by domain", - "name": "memorytotal", - "type": "long" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "the total primary storage space (in GiB) owned by domain", - "name": "primarystoragetotal", - "type": "long" + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", + "type": "integer" }, { - "description": "the state of the domain", - "name": "state", + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "the total number of vpcs owned by domain", - "name": "vpctotal", - "type": "long" + "description": "the details of the network", + "name": "details", + "type": "map" }, { - "description": "the name of the domain", - "name": "name", - "type": "string" + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", + "type": "boolean" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "path of the Domain the network belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this domain", - "name": "iptotal", - "type": "long" + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", + "type": "boolean" }, - {}, { - "description": "the total number of projects being administrated by this domain", - "name": "projecttotal", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "the total number of cpu cores available to be created for this domain", - "name": "cpuavailable", + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the total number of templates which have been created by this domain", - "name": "templatetotal", - "type": "long" + "description": "The IPv4 routing type of network", + "name": "ip4routing", + "type": "string" }, { - "description": "the total number of projects available for administration by this domain", - "name": "projectavailable", + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" }, { - "description": "the total number of vpcs the domain can own", - "name": "vpclimit", + "description": "the owner of the network", + "name": "account", "type": "string" }, { - "description": "the total number of public ip addresses available for this domain to acquire", - "name": "ipavailable", + "description": "the displaytext of the network", + "name": "displaytext", "type": "string" }, { - "description": "the total number of snapshots stored by this domain", - "name": "snapshottotal", - "type": "long" + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", + "type": "string" }, { - "description": "the total number of cpu cores owned by domain", - "name": "cputotal", + "description": "AS NUMBER", + "name": "asnumber", "type": "long" }, { - "description": "the total secondary storage space (in GiB) the domain can own", - "name": "secondarystoragelimit", + "description": "the first IPv4 DNS for the network", + "name": "dns1", "type": "string" }, { - "description": "the total volume being used by this domain", - "name": "volumetotal", - "type": "long" + "description": "the type of the network", + "name": "type", + "type": "string" }, { - "description": "the total number of networks owned by domain", - "name": "networktotal", - "type": "long" + "description": "VPC the network belongs to", + "name": "vpcid", + "type": "string" }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" }, - { - "description": "the total memory (in MB) available to be created for this domain", - "name": "memoryavailable", - "type": "string" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this domain", - "name": "primarystorageavailable", + "description": "The external id of the network", + "name": "externalid", "type": "string" }, { - "description": "the total number of virtual machines that can be deployed by this domain", - "name": "vmlimit", + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this domain", - "name": "snapshotlimit", - "type": "string" + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" }, { - "description": "the domain name of the parent domain", - "name": "parentdomainname", + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" + }, + { + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", "type": "string" }, { - "description": "the total number of templates available to be created by this domain", - "name": "templateavailable", + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", "type": "string" }, { - "description": "the total number of networks the domain can own", - "name": "networklimit", + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", "type": "string" }, { - "description": "the ID of the domain", - "name": "id", + "description": "the network's gateway", + "name": "gateway", "type": "string" }, { - "description": "the path of the domain", - "name": "path", + "description": "related to what other network configuration", + "name": "related", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" }, + {}, { - "description": "the domain ID of the parent domain", - "name": "parentdomainid", + "description": "zone id of the network", + "name": "zoneid", "type": "string" }, { - "description": "whether the domain has one or more sub-domains", - "name": "haschild", - "type": "boolean" + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" }, { - "description": "the total volume available for this domain", - "name": "volumeavailable", + "description": "acl type - access type to the network", + "name": "acltype", "type": "string" }, { - "description": "the total volume which can be used by this domain", - "name": "volumelimit", + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" + }, + { + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, { - "description": "the date when this domain was created", - "name": "created", - "type": "date" + "description": "ACL Id associated with the VPC network", + "name": "aclid", + "type": "string" }, { - "description": "the total number of projects the domain can own", - "name": "projectlimit", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this domain", - "name": "secondarystorageavailable", + "description": "the name of the network", + "name": "name", "type": "string" }, { - "description": "the total number of templates which can be created by this domain", - "name": "templatelimit", + "description": "the network domain", + "name": "networkdomain", "type": "string" } ] }, { - "description": "Adds backup image store.", + "description": "Lists all available network offerings.", "isasync": false, - "name": "addImageStore", + "name": "listNetworkOfferings", "params": [ { - "description": "the image store provider name", + "description": "true if need to list only default network offerings. Default value is false", "length": 255, - "name": "provider", - "required": true, - "type": "string" + "name": "isdefault", + "required": false, + "type": "boolean" }, { - "description": "the URL for the image store", - "length": 2048, - "name": "url", + "description": "list network offerings by tags", + "length": 4096, + "name": "tags", "required": false, "type": "string" }, { - "description": "the name for the image store", + "description": "list network offerings by name", "length": 255, "name": "name", "required": false, "type": "string" }, { - "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss", + "description": "", "length": 255, - "name": "details", + "name": "page", "required": false, - "type": "map" + "type": "integer" }, { - "description": "the Zone ID for the image store", + "description": "the ID of the network. Pass this in if you want to see the available network offering that a network can be changed to.", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" - } - ], - "related": "addSecondaryStorage,listSwifts", - "response": [ - { - "description": "the protocol of the image store", - "name": "protocol", - "type": "string" }, { - "description": "the url of the image store", - "name": "url", - "type": "string" + "description": "true if need to list only netwok offerings where source NAT is supported, false otherwise", + "length": 255, + "name": "sourcenatsupported", + "required": false, + "type": "boolean" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "the tags for the network offering.", + "length": 255, + "name": "specifyvlan", + "required": false, "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list network offerings by display text", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", + "description": "true if need to list only network offerings which support specifying ip ranges", + "length": 255, + "name": "specifyipranges", + "required": false, "type": "boolean" }, { - "description": "the ID of the image store", - "name": "id", - "type": "string" + "description": "list network offerings supporting certain services", + "length": 255, + "name": "supportedservices", + "required": false, + "type": "list" }, { - "description": "the name of the image store", - "name": "name", + "description": "list network offerings by guest type: shared or isolated", + "length": 255, + "name": "guestiptype", + "required": false, "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "true if offering has tags specified", + "length": 255, + "name": "istagged", + "required": false, + "type": "boolean" }, - {}, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "the availability of network offering. Default value is required", + "length": 255, + "name": "availability", + "required": false, + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the network offering can be used only for network creation inside the VPC", + "length": 255, + "name": "forvpc", + "required": false, + "type": "boolean" }, { - "description": "the Zone name of the image store", - "name": "zonename", - "type": "string" + "description": "list network offerings available for network creation in specific domain", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "since": "4.13", + "type": "uuid" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "list by traffic type", + "length": 255, + "name": "traffictype", + "required": false, "type": "string" }, { - "description": "the Zone ID of the image store", - "name": "zoneid", - "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Revoke a direct download certificate from hosts in a zone", - "isasync": false, - "name": "revokeTemplateDirectDownloadCertificate", - "params": [ - { - "description": "(optional) hypervisor type", + "description": "List by keyword", "length": 255, - "name": "hypervisor", + "name": "keyword", "required": false, "type": "string" }, { - "description": "id of the certificate", + "description": "list network offerings by state", "length": 255, - "name": "id", - "related": "listTemplateDirectDownloadCertificates", + "name": "state", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "(optional) the host ID to revoke certificate", + "description": "list network offerings by ID", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", + "name": "id", + "related": "listNetworkOfferings", "required": false, "type": "uuid" }, { - "description": "(optional) zone to revoke certificate", + "description": "list network offerings available for network creation in specific zone", "length": 255, "name": "zoneid", - "related": "listZones", - "required": true, + "related": "createZone,listZones,listZones", + "required": false, "type": "uuid" }, { - "description": "(optional) alias of the SSL certificate", + "description": "the routing mode for the network offering. Supported types are: Static or Dynamic.", "length": 255, - "name": "name", + "name": "routingmode", "required": false, + "since": "4.20.0", "type": "string" } ], - "related": "provisionTemplateDirectDownloadCertificate", + "related": "", "response": [ { - "description": "the ID of the host", - "name": "hostid", + "description": "the tags for the network offering", + "name": "tags", "type": "string" }, { - "description": "indicates the details in case of failure or host skipped", + "description": "true if network offering supports public access for guest networks", + "name": "supportspublicaccess", + "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 zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zone", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "state of the network offering. Can be Disabled/Enabled/Inactive", + "name": "state", + "type": "string" + }, + { + "description": "guest type of the network offering, can be Shared or Isolated", + "name": "guestiptype", + "type": "string" + }, + { + "description": "additional key/value details tied with network offering", "name": "details", + "type": "map" + }, + { + "description": "true if network offering supports network that span multiple zones", + "name": "supportsstrechedl2subnet", + "type": "boolean" + }, + { + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" + }, + { + "description": "the name of the network offering", + "name": "name", + "type": "string" + }, + { + "description": "an alternate display text of the network offering.", + "name": "displaytext", "type": "string" }, + { + "description": "maximum number of concurrents connections to be handled by lb", + "name": "maxconnections", + "type": "integer" + }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if network offering supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" + }, + { + "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.", + "name": "traffictype", "type": "string" }, { - "description": "indicates if the certificate has been revoked from the host, failed or skipped", - "name": "status", + "description": "true if network offering is ip conserve mode enabled", + "name": "conservemode", + "type": "boolean" + }, + { + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the name of the host", - "name": "hostname", + "description": "the internet protocol of the network offering", + "name": "internetprotocol", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "true if network offering supports public access for guest networks", + "name": "supportsinternallb", + "type": "boolean" + }, + { + "description": "true if network offering supports vlans, false otherwise", + "name": "specifyvlan", + "type": "boolean" + }, + { + "description": "the list of supported services", + "name": "service", + "response": [ + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the ID of the service offering used by virtual router provider", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", + "name": "networkmode", + "type": "string" + }, + { + "description": "the date this network offering was created", + "name": "created", + "type": "date" + }, + {}, + { + "description": "true if network offering can be used by VPC networks only", + "name": "forvpc", + "type": "boolean" + }, + { + "description": "the routing mode for the network offering, supported types are Static or Dynamic.", + "name": "routingmode", + "type": "string" + }, + { + "description": "true if network offering supports persistent networks, false otherwise", + "name": "ispersistent", + "type": "boolean" + }, + { + "description": "true if network offering supports choosing AS numbers", + "name": "specifyasnumber", + "type": "boolean" + }, + { + "description": "availability of the network offering", + "name": "availability", + "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" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "data transfer rate in megabits per second allowed.", + "name": "networkrate", "type": "integer" }, - {} - ], - "since": "4.13" + { + "description": "the id of the network offering", + "name": "id", + "type": "string" + }, + { + "description": "true if network offering is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "true if network offering can be used by NSX networks only", + "name": "fornsx", + "type": "boolean" + }, + { + "description": "true if network offering can be used by Tungsten-Fabric networks only", + "name": "fortungsten", + "type": "boolean" + } + ] }, { - "description": "Syncs capabilities of storage pools", + "description": "Lists dedicated pods.", "isasync": false, - "name": "updateStorageCapabilities", + "name": "listDedicatedPods", "params": [ { - "description": "Storage pool id", + "description": "List by keyword", "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool,updateStorageCapabilities", - "required": true, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "the ID of the pod", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, + "type": "uuid" + }, + { + "description": "list dedicated pods by affinity group", + "length": 255, + "name": "affinitygroupid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "the name of the account associated with the pod. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "the ID of the domain associated with the pod", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, "type": "uuid" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" } ], - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "related": "", "response": [ { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" + "description": "the domain ID to which the Pod is dedicated", + "name": "domainid", + "type": "string" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "the ID of the dedicated resource", + "name": "id", + "type": "string" + }, + {}, + { + "description": "the Account Id to which the Pod is dedicated", + "name": "accountid", "type": "string" }, { @@ -102241,58 +94740,91 @@ "type": "integer" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "the ID of the Pod", + "name": "podid", + "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "the Name of the Pod", + "name": "podname", + "type": "string" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "the Dedication Affinity Group ID of the pod", + "name": "affinitygroupid", "type": "string" }, + {} + ] + }, + { + "description": "Attempts Migration of a VM with its volumes to a different host", + "isasync": true, + "name": "migrateVirtualMachineWithVolume", + "params": [ { - "description": "whether this pool is managed or not", - "name": "managed", + "description": "Automatically select a destination host for a running instance, if hostId is not specified. false by default", + "length": 255, + "name": "autoselect", + "required": false, + "since": "4.19.0", "type": "boolean" }, { - "description": "the Zone name of the storage pool", - "name": "zonename", - "type": "string" + "description": "Destination Host ID to migrate VM to.", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,addHost,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", + "required": false, + "type": "uuid" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "Storage to pool mapping. This parameter specifies the mapping between a volume and a pool where you want to migrate that volume. Format of this parameter: migrateto[volume-index].volume=&migrateto[volume-index].pool=Where, [volume-index] indicates the index to identify the volume that you want to migrate, volume= indicates the UUID of the volume that you want to migrate, and pool= indicates the UUID of the pool where you want to migrate the volume. Example: migrateto[0].volume=<71f43cd6-69b0-4d3b-9fbc-67f50963d60b>&migrateto[0].pool=&migrateto[1].volume=<88de0173-55c0-4c1c-a269-83d0279eeedf>&migrateto[1].pool=<95d6e97c-6766-4d67-9a30-c449c15011d1>&migrateto[2].volume=<1b331390-59f2-4796-9993-bf11c6e76225>&migrateto[2].pool=<41fdb564-9d3b-447d-88ed-7628f7640cbc>", + "length": 255, + "name": "migrateto", + "required": false, + "type": "map" + }, + { + "description": "the ID of the virtual machine", + "length": 255, + "name": "virtualmachineid", + "related": "migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "the storage pool type", - "name": "type", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, + {}, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "Storage provider for this pool", - "name": "provider", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { @@ -102300,222 +94832,226 @@ "name": "jobid", "type": "string" }, - {}, { - "description": "the ID of the storage pool", - "name": "id", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the Pod name of the storage pool", - "name": "podname", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" }, { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, { - "description": "the name of the storage pool", - "name": "name", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, - {}, { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "the scope of the storage pool", - "name": "scope", + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" + }, + { + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the storage pool path", - "name": "path", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" - } - ], - "since": "4.16.0" - }, - { - "description": "Changes ownership of a Volume from one account to another.", - "isasync": false, - "name": "assignVolume", - "params": [ + }, { - "description": "The ID of the project to which the volume will be assigned. Mutually exclusive with 'accountid'.", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "The ID of the account to which the volume will be assigned. Mutually exclusive with parameter 'projectid'.", - "length": 255, - "name": "accountid", - "related": "disableAccount,enableAccount,updateAccount,listAccounts", - "required": false, - "type": "uuid" + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" }, { - "description": "The ID of the volume to be reassigned.", - "length": 255, - "name": "volumeid", - "related": "createVolume,updateVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,assignVolume,importVolume", - "required": true, - "type": "uuid" - } - ], - "related": "createVolume,updateVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", - "response": [ + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" + }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", "type": "long" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" }, + {}, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, + { + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, { "description": "the list of resource tags associated", "name": "tags", "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, { "description": "the project name where tag belongs to", "name": "project", @@ -102527,593 +95063,1399 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { "description": "the project id the tag belongs to", "name": "projectid", "type": "string" + } + ], + "type": "set" + }, + { + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" + }, + { + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" + }, + { + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" + }, + { + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "path of the Domain associated with the tag", + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", "name": "domainpath", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", "type": "string" } ], "type": "set" }, - {}, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", "type": "long" }, { - "description": "cluster id of the volume", - "name": "clusterid", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, - {}, { "description": "an alternate display text of the ISO attached to the virtual machine", "name": "isodisplaytext", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "Base64 string containing the user data", + "name": "userdata", + "type": "string" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "name of the disk volume", - "name": "name", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + } + ], + "type": "set" }, + {}, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + } + ], + "type": "set" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", - "type": "string" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", "type": "long" + } + ] + }, + { + "description": "Lists VPCs", + "isasync": false, + "name": "listVPCs", + "params": [ + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "list VPC supporting certain services", + "length": 255, + "name": "supportedservices", + "required": false, + "type": "list" + }, + { + "description": "list by name of the VPC", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" - }, - { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "list by cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR", + "length": 255, + "name": "cidr", + "required": false, + "type": "string" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "list VPCs by restartRequired option", + "length": 255, + "name": "restartrequired", + "required": false, "type": "boolean" }, { - "description": "ID of the availability zone", + "description": "list by zone", + "length": 255, "name": "zoneid", - "type": "string" + "related": "createZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" + "description": "list VPC by id", + "length": 255, + "name": "id", + "related": "listVPCs,createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "the path of the volume", - "name": "path", + "description": "list VPCs by state", + "length": 255, + "name": "state", + "required": false, "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", - "type": "string" + "description": "flag to display the resource icon for VPCs", + "length": 255, + "name": "showicon", + "required": false, + "type": "boolean" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "List by display text of the VPC", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "the status of the volume", - "name": "status", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" - } - ], - "since": "4.18.0.0" - }, - { - "description": "Deletes a userdata", - "isasync": false, - "name": "deleteUserData", - "params": [ + }, { - "description": "an optional domainId for the userdata. If the account parameter is used, domainId must also be used.", + "description": "list by ID of the VPC offering", "length": 255, - "name": "domainid", - "related": "listDomains,listDomains", + "name": "vpcofferingid", + "related": "updateVPCOffering", "required": false, "type": "uuid" }, { - "description": "an optional account for the userdata. Must be used with domainId.", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "account", + "name": "tags", "required": false, - "type": "string" + "type": "map" }, { - "description": "an optional project for the userdata", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, "name": "projectid", - "related": "", + "related": "activateProject,suspendProject,updateProject", "required": false, "type": "uuid" - }, - { - "description": "the ID of the Userdata", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" } ], + "related": "createVPC,listVPCs,updateVPC,migrateVPC", "response": [ { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the list of networks belongign to the VPC", + "name": "network", + "type": "list" + }, + { + "description": "is vpc for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "zone id of the vpc", + "name": "zoneid", "type": "string" }, - {}, + { + "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", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "the name of the VPC", + "name": "name", + "type": "string" + }, + { + "description": "the domain path of the owner", + "name": "domainpath", + "type": "string" + }, + { + "description": "true VPC requires restart", + "name": "restartrequired", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the second IPv4 DNS for the VPC", + "name": "dns2", + "type": "string" }, - {} - ], - "since": "4.18" - }, - { - "description": "Lists all network services provided by CloudStack or for the given Provider.", - "isasync": false, - "name": "listSupportedNetworkServices", - "params": [ { - "description": "network service provider name", - "length": 255, - "name": "provider", - "required": false, + "description": "an alternate display text of the VPC.", + "name": "displaytext", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the owner of the VPC", + "name": "account", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "The BGP peers for the VPC", + "name": "bgppeers", + "type": "set" + }, + { + "description": "the date this VPC was created", + "name": "created", + "type": "date" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "network service name to list providers and capabilities of", - "length": 255, - "name": "service", - "required": false, + "description": "true if VPC is region level", + "name": "regionlevelvpc", + "type": "boolean" + }, + { + "description": "the first IPv4 DNS for the VPC", + "name": "dns1", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the list of capabilities", - "name": "capability", + "description": "the first IPv6 DNS for the VPC", + "name": "ip6dns1", + "type": "string" + }, + { + "description": "the list of resource tags associated with the project", + "name": "tags", "response": [ { - "description": "the capability value", - "name": "value", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" + "description": "id of the resource", + "name": "resourceid", + "type": "string" }, { - "description": "the capability name", - "name": "name", + "description": "customer associated with the tag", + "name": "customer", "type": "string" - } - ], - "type": "list" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - { - "description": "the service provider name", - "name": "provider", - "response": [ + }, { - "description": "uuid of the network provider", - "name": "id", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "state of the network provider", - "name": "state", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" }, { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "services for this provider", - "name": "servicelist", - "type": "list" + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the provider name", + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the id of the VPC", + "name": "id", + "type": "string" + }, + { + "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", + "name": "distributedvpcrouter", + "type": "boolean" + }, + { + "description": "the project id of the VPC", + "name": "projectid", + "type": "string" + }, + { + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" + }, + { + "description": "the list of supported services", + "name": "service", + "response": [ + { + "description": "the service name", "name": "name", "type": "string" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + } + ], + "type": "list" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + } + ], + "type": "list" } ], "type": "list" }, { - "description": "the service name", - "name": "name", + "description": "vpc offering id the VPC is created from", + "name": "vpcofferingid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain name of the owner", + "name": "domain", + "type": "string" + }, + { + "description": "The routes for the VPC to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" + }, + { + "description": "the cidr the VPC", + "name": "cidr", + "type": "string" + }, + { + "description": "the domain id of the VPC owner", + "name": "domainid", + "type": "string" + }, + { + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" + }, + { + "description": "the network domain of the VPC", + "name": "networkdomain", + "type": "string" + }, + { + "description": "The IPv4 routing mode of VPC", + "name": "ip4routing", + "type": "string" + }, + { + "description": "state of the VPC. Can be Inactive/Enabled", + "name": "state", "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the second IPv6 DNS for the VPC", + "name": "ip6dns2", + "type": "string" + }, + {}, + { + "description": "if this VPC has redundant router", + "name": "redundantvpcrouter", + "type": "boolean" + }, + { + "description": "the name of the zone the VPC belongs to", + "name": "zonename", + "type": "string" + }, + { + "description": "the project name of the VPC", + "name": "project", + "type": "string" + }, + { + "description": "vpc offering name the VPC is created from", + "name": "vpcofferingname", + "type": "string" + }, + { + "description": "MTU configured on the public interfaces of the VPC VR", + "name": "publicmtu", + "type": "integer" } - ], - "since": "3.0.0" + ] }, { - "description": "Deletes a particular ingress rule from this security group", - "isasync": true, - "name": "revokeSecurityGroupIngress", + "description": "Adds a network device of one of the following types: ExternalDhcp, ExternalFirewall, ExternalLoadBalancer, PxeServer", + "isasync": false, + "name": "addNetworkDevice", "params": [ { - "description": "The ID of the ingress rule", + "description": "parameters for network device", "length": 255, - "name": "id", - "related": "authorizeSecurityGroupIngress", - "required": true, - "type": "uuid" + "name": "networkdeviceparameterlist", + "required": false, + "type": "map" + }, + { + "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall", + "length": 255, + "name": "networkdevicetype", + "required": false, + "type": "string" } ], + "related": "", "response": [ { "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": "any text associated with the success or failure", - "name": "displaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the network device", + "name": "id", "type": "string" } ] }, { - "description": "Adds a network serviceProvider to a physical network", + "description": "Execute network-utility command (ping/arping/tracert) on system VMs remotely", "isasync": true, - "name": "addNetworkServiceProvider", + "name": "runDiagnostics", "params": [ { - "description": "the name for the physical network service provider", + "description": "The IP/Domain address to test connection to", "length": 255, - "name": "name", + "name": "ipaddress", "required": true, "type": "string" }, { - "description": "the Physical Network ID to add the provider to", + "description": "The ID of the system VM instance to diagnose", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "targetid", + "related": "migrateSystemVm,startSystemVm", "required": true, "type": "uuid" }, { - "description": "the list of services to be enabled for this physical network service provider", + "description": "The system VM diagnostics type valid options are: ping, traceroute, arping", "length": 255, - "name": "servicelist", - "required": false, - "type": "list" + "name": "type", + "required": true, + "type": "string" }, { - "description": "the destination Physical Network ID to bridge to", + "description": "Additional command line options that apply for each command", "length": 255, - "name": "destinationphysicalnetworkid", - "related": "", + "name": "params", "required": false, - "type": "uuid" + "type": "string" } ], - "related": "listTrafficTypes", + "related": "", "response": [ { - "description": "state of the network provider", - "name": "state", + "description": "the standard error output from the command execution", + "name": "stderr", "type": "string" }, { @@ -103121,15 +96463,14 @@ "name": "jobid", "type": "string" }, - {}, { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", + "description": "the command execution return code", + "name": "exitcode", "type": "string" }, { - "description": "uuid of the network provider", - "name": "id", + "description": "the standard output from the command execution", + "name": "stdout", "type": "string" }, { @@ -103137,1154 +96478,1178 @@ "name": "jobstatus", "type": "integer" }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, {}, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - } + {} ], - "since": "3.0.0" + "since": "4.12.0.0" }, { - "description": "Delete site to site vpn gateway", - "isasync": true, - "name": "deleteVpnGateway", + "description": "Updates a user account", + "isasync": false, + "name": "updateUser", "params": [ { - "description": "id of customer gateway", + "description": "Clear text password (default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter. Can't be passed when command is executed via integration.api.port", "length": 255, - "name": "id", - "related": "updateVpnGateway", - "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", - "name": "jobid", + "name": "password", + "required": false, "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", + "length": 255, + "name": "timezone", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "User uuid", + "length": 255, + "name": "id", + "related": "createUser,disableUser,enableUser,getUser,listUsers,updateUser", + "required": true, + "type": "uuid" }, - {} - ] - }, - { - "description": "Creates a service offering.", - "isasync": false, - "name": "createServiceOffering", - "params": [ { - "description": "min iops of the compute offering", + "description": "The API key for the user. Must be specified with userSecretKey", "length": 255, - "name": "miniops", + "name": "userapikey", "required": false, - "since": "4.4", - "type": "long" + "type": "string" }, { - "description": "length (in seconds) of the burst", + "description": "Current password that was being used by the user. You must inform the current password when updating the password.", "length": 255, - "name": "byteswriteratemaxlength", + "name": "currentpassword", "required": false, - "type": "long" + "type": "string" }, { - "description": "whether compute offering iops is custom or not", + "description": "Provide true to mandate the user to use two factor authentication has to be enabled.This parameter is only used to mandate 2FA, not to disable 2FA", "length": 255, - "name": "customizediops", + "name": "mandate2fa", "required": false, - "since": "4.4", + "since": "4.18.0.0", "type": "boolean" }, { - "description": "burst io requests write rate of the disk offering", + "description": "last name", "length": 255, - "name": "iopswriteratemax", + "name": "lastname", "required": false, - "type": "long" + "type": "string" }, { - "description": "the ID of the containing zone(s), null for public offerings", + "description": "first name", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "firstname", "required": false, - "since": "4.13", - "type": "list" + "type": "string" }, { - "description": "the system VM type. Possible types are \"domainrouter\", \"consoleproxy\" and \"secondarystoragevm\".", + "description": "The secret key for the user. Must be specified with userApiKey", "length": 255, - "name": "systemvmtype", + "name": "usersecretkey", "required": false, "type": "string" }, { - "description": "burst bytes write rate of the disk offering", + "description": "Unique username", "length": 255, - "name": "byteswriteratemax", + "name": "username", "required": false, - "type": "long" + "type": "string" }, { - "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", + "description": "email", "length": 255, - "name": "dynamicscalingenabled", + "name": "email", "required": false, - "since": "4.16", + "type": "string" + } + ], + "related": "createUser,disableUser,enableUser,getUser,listUsers", + "response": [ + { + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", "type": "boolean" }, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "iopswriteratemaxlength", - "required": false, - "type": "long" + "description": "the account ID of the user", + "name": "accountid", + "type": "string" }, { - "description": "io requests read rate of the disk offering", - "length": 255, - "name": "iopsreadrate", - "required": false, - "type": "long" + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" }, { - "description": "the Root disk size in GB.", - "length": 255, - "name": "rootdisksize", - "required": false, - "since": "4.15", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "VMs using this offering require root volume encryption", - "length": 255, - "name": "encryptroot", - "required": false, - "since": "4.18", - "type": "boolean" + "description": "the user state", + "name": "state", + "type": "string" }, { - "description": "Whether service offering size is custom or not", - "length": 255, - "name": "customized", - "required": false, - "since": "4.13", - "type": "boolean" + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", + "type": "string" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "length": 255, - "name": "hypervisorsnapshotreserve", - "required": false, - "since": "4.4", - "type": "integer" + "description": "the secret key of the user", + "name": "secretkey", + "type": "string" }, { - "description": "the storage type of the service offering. Values are local and shared.", - "length": 255, - "name": "storagetype", - "required": false, + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "max iops of the compute offering", - "length": 255, - "name": "maxiops", - "required": false, - "since": "4.4", - "type": "long" + "description": "the type of the role", + "name": "roletype", + "type": "string" }, { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "length": 255, - "name": "cachemode", - "required": false, - "since": "4.14", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "true if the virtual machine needs to be volatile so that on every reboot of VM, original root disk is dettached then destroyed and a fresh root disk is created and attached to VM", - "length": 255, - "name": "isvolatile", - "required": false, + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "the account name of the user", + "name": "account", + "type": "string" + }, + { + "description": "the api key of the user", + "name": "apikey", + "type": "string" + }, + {}, + { + "description": "the user email address", + "name": "email", + "type": "string" + }, + { + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", "type": "boolean" }, { - "description": "The maximum memory size of the custom service offering in MB", - "length": 255, - "name": "maxmemory", - "required": false, - "since": "4.13", - "type": "integer" + "description": "the name of the role", + "name": "rolename", + "type": "string" }, { - "description": "io requests write rate of the disk offering", - "length": 255, - "name": "iopswriterate", - "required": false, - "type": "long" + "description": "the domain name of the user", + "name": "domain", + "type": "string" }, + {}, { - "description": "length (in seconds) of the burst", - "length": 255, - "name": "bytesreadratemaxlength", - "required": false, - "type": "long" + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the total memory of the service offering in MB", - "length": 255, - "name": "memory", - "required": false, - "type": "integer" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "the CPU number of the service offering", - "length": 255, - "name": "cpunumber", - "required": false, - "type": "integer" + "description": "the user ID", + "name": "id", + "type": "string" }, { - "description": "The minimum memory size of the custom service offering in MB", - "length": 255, - "name": "minmemory", - "required": false, - "since": "4.13", - "type": "integer" + "description": "the domain ID of the user", + "name": "domainid", + "type": "string" }, { - "description": "The minimum number of CPUs to be set with Custom Computer Offering", - "length": 255, - "name": "mincpunumber", - "required": false, - "since": "4.13", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "Name of the storage policy defined at vCenter, this is applicable only for VMware", - "length": 255, - "name": "storagepolicy", - "related": "", - "required": false, - "since": "4.15", - "type": "uuid" + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" }, { - "description": "the ID of the disk offering to which service offering should be mapped", - "length": 255, - "name": "diskofferingid", - "related": "", - "required": false, - "since": "4.17", - "type": "uuid" + "description": "the user name", + "name": "username", + "type": "string" }, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "length": 255, - "name": "provisioningtype", - "required": false, + "description": "the ID of the role", + "name": "roleid", "type": "string" - }, + } + ] + }, + { + "description": "Restarts a VPC", + "isasync": true, + "name": "restartVPC", + "params": [ { - "description": "is this a system vm offering", + "description": "the id of the VPC", "length": 255, - "name": "issystem", - "required": false, - "type": "boolean" + "name": "id", + "related": "createVPC,listVPCs,updateVPC,migrateVPC", + "required": true, + "type": "uuid" }, { - "description": "bytes write rate of the disk offering", + "description": "Turn a single VPC into a redundant one.", "length": 255, - "name": "byteswriterate", + "name": "makeredundant", "required": false, - "type": "long" + "type": "boolean" }, { - "description": "details for planner, used to store specific parameters", + "description": "If cleanup old network elements", "length": 255, - "name": "serviceofferingdetails", + "name": "cleanup", "required": false, - "type": "map" + "type": "boolean" }, { - "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", + "description": "Live patches the router software before restarting it. This parameter will only work when 'cleanup' is false.", "length": 255, - "name": "diskofferingstrictness", + "name": "livepatch", "required": false, - "since": "4.17", + "since": "4.17.0", + "type": "boolean" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "burst requests read rate of the disk offering", - "length": 255, - "name": "iopsreadratemax", - "required": false, - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "bytes read rate of the disk offering", - "length": 255, - "name": "bytesreadrate", - "required": false, - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "For VMware and Xen based hypervisors this is the CPU speed of the service offering in MHz.\nFor the KVM hypervisor, the values of the parameters cpuSpeed and cpuNumber will be used to calculate the `shares` value. This value is used by the KVM hypervisor to calculate how much time the VM will have access to the host's CPU. The `shares` value does not have a unit, and its purpose is being a weight value for the host to compare between its guest VMs. For more information, see https://libvirt.org/formatdomain.html#cpu-tuning.", - "length": 255, - "name": "cpuspeed", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" - }, + } + ] + }, + { + "description": "Removes a certificate from a load balancer rule", + "isasync": true, + "name": "removeCertFromLoadBalancer", + "params": [ { - "description": "the ID of the containing domain(s), null for public offerings", + "description": "the ID of the load balancer rule", "length": 255, - "name": "domainid", - "related": "listDomains,listDomains", - "required": false, - "type": "list" + "name": "lbruleid", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "restrict the CPU usage to committed service offering", - "length": 255, - "name": "limitcpuuse", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "the HA for the service offering", + "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": "Adds a new host.", + "isasync": false, + "name": "addHost", + "params": [ + { + "description": "the Pod ID for the host", "length": 255, - "name": "offerha", - "required": false, - "type": "boolean" + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": true, + "type": "uuid" }, { - "description": "burst bytes read rate of the disk offering", + "description": "the password for the host; required to be passed for hypervisors other than VMWare", "length": 255, - "name": "bytesreadratemax", + "name": "password", "required": false, - "type": "long" + "type": "string" }, { - "description": "data transfer rate in megabits per second allowed. Supported only for non-System offering and system offerings having \"domainrouter\" systemvmtype", + "description": "list of tags to be added to the host", "length": 255, - "name": "networkrate", + "name": "hosttags", "required": false, - "type": "integer" + "type": "list" }, { - "description": "Whether to cleanup instance and its associated resource from database upon expunge of the instance", + "description": "the Zone ID for the host", "length": 255, - "name": "purgeresources", - "required": false, - "since": "4.20", - "type": "boolean" + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": true, + "type": "uuid" }, { - "description": "length (in seconds) of the burst", + "description": "hypervisor type of the host", "length": 255, - "name": "iopsreadratemaxlength", - "required": false, - "type": "long" + "name": "hypervisor", + "required": true, + "type": "string" }, { - "description": "The display text of the service offering, defaults to 'name'.", + "description": "Allocation state of this Host for allocation of new resources", "length": 255, - "name": "displaytext", + "name": "allocationstate", "required": false, "type": "string" }, { - "description": "The maximum number of CPUs to be set with Custom Computer Offering", + "description": "the cluster ID for the host", "length": 255, - "name": "maxcpunumber", + "name": "clusterid", + "related": "addCluster", "required": false, - "since": "4.13", - "type": "integer" + "type": "uuid" }, { - "description": "The deployment planner heuristics used to deploy a VM of this offering. If null, value of global config vm.deployment.planner is used", + "description": "the username for the host; required to be passed for hypervisors other than VMWare", "length": 255, - "name": "deploymentplanner", + "name": "username", "required": false, "type": "string" }, { - "description": "the tags for this service offering.", + "description": "the cluster name for the host", "length": 255, - "name": "tags", + "name": "clustername", "required": false, "type": "string" }, { - "description": "the name of the service offering", + "description": "the host URL", "length": 255, - "name": "name", + "name": "url", "required": true, "type": "string" - }, - { - "description": "the host tag for this service offering.", - "length": 255, - "name": "hosttags", - "required": false, - "type": "string" } ], - "related": "updateServiceOffering,listServiceOfferings", + "related": "addBaremetalHost,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", "response": [ { - "description": "the max iops of the disk offering", - "name": "maxiops", - "type": "long" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, + {}, { - "description": "burst io requests read rate of the disk offering", - "name": "diskIopsReadRateMax", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the ha support in the service offering", - "name": "offerha", - "type": "boolean" + "description": "the last annotation set on this host by an admin", + "name": "annotation", + "type": "string" }, { - "description": "the memory in MB", - "name": "memory", - "type": "integer" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "the storage type for this service offering", - "name": "storagetype", + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" + }, + { + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" + }, + { + "description": "the amount of the host's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the number of CPU", + "description": "the CPU number of the host", "name": "cpunumber", "type": "integer" }, { - "description": "the date this service offering was created", - "name": "created", - "type": "date" + "description": "the ID of the host", + "name": "id", + "type": "string" }, { - "description": "is this a the systemvm type for system vm offering", - "name": "systemvmtype", + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "burst bytes write rate of the disk offering", - "name": "diskBytesWriteRateMax", + "description": "the amount of the host's memory currently used", + "name": "memoryused", "type": "long" }, { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "the Pod name of the host", + "name": "podname", "type": "string" }, - {}, { - "description": "burst bytes read rate of the disk offering", - "name": "diskBytesReadRateMax", + "description": "the incoming network traffic on the host", + "name": "networkkbsread", "type": "long" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesWriteRateMaxLength", + "description": "the CPU speed of the host", + "name": "cpuspeed", "type": "long" }, { - "description": "the clock rate CPU speed in Mhz", - "name": "cpuspeed", - "type": "integer" + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", + "type": "string" }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "deployment strategy used to deploy VM.", - "name": "deploymentplanner", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, - {}, { - "description": "io requests write rate of the service offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "the admin that annotated this host", + "name": "username", + "type": "string" }, { - "description": "data transfer rate in megabits per second allowed.", - "name": "networkrate", - "type": "integer" + "description": "the cluster name of the host", + "name": "clustername", + "type": "string" }, { - "description": "true if disk offering uses custom iops, false otherwise", - "name": "iscustomizediops", - "type": "boolean" + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", + "type": "string" }, { - "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", - "name": "diskofferingstrictness", + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, { - "description": "bytes read rate of the service offering", - "name": "diskBytesReadRate", - "type": "long" + "description": "the Pod ID of the host", + "name": "podid", + "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", - "type": "string" + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" }, { - "description": "io requests read rate of the service offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "is this a default system vm offering", - "name": "defaultuse", - "type": "boolean" + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", + "type": "string" }, { - "description": "additional key/value details tied with this service offering", - "name": "serviceofferingdetails", - "type": "map" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "the id of the service offering", - "name": "id", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the host tag for the service offering", - "name": "hosttags", + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", - "name": "dynamicscalingenabled", - "type": "boolean" + "description": "the Zone name of the host", + "name": "zonename", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of CPU sockets on the host", + "name": "cpusockets", "type": "integer" }, { - "description": "restrict the CPU usage to committed service offering", - "name": "limitcpuuse", - "type": "boolean" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "Root disk size in GB", - "name": "rootdisksize", - "type": "long" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the tags for the service offering", - "name": "storagetags", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "true if virtual machine root disk will be encrypted on storage", - "name": "encryptroot", - "type": "boolean" + "description": "GPU cards present in the host", + "name": "gpugroup", + "response": [ + { + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + } + ], + "type": "list" + }, + { + "description": "GPU cards present in the host", + "name": "gpugroupname", + "type": "string" + } + ], + "type": "list" }, { - "description": "length (in second) of the burst", - "name": "diskIopsReadRateMaxLength", + "description": "the host version", + "name": "version", + "type": "string" + }, + { + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", "type": "long" }, { - "description": "Whether to cleanup VM and its associated resource upon expunge", - "name": "purgeresources", - "type": "boolean" + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the name of the service offering", - "name": "name", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesReadRateMaxLength", - "type": "long" + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" }, { - "description": "state of the service offering", - "name": "state", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "name": "cacheMode", + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, { - "description": "the min iops of the disk offering", - "name": "miniops", + "description": "the IP address of the host", + "name": "ipaddress", + "type": "string" + }, + {}, + { + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", "type": "long" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskIopsWriteRateMaxLength", + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", "type": "long" }, { - "description": "an alternate display text of the service offering.", - "name": "displaytext", - "type": "string" + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" }, { - "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk", - "name": "isvolatile", + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", "type": "boolean" }, { - "description": "the vsphere storage policy tagged to the service offering in case of VMware", - "name": "vspherestoragepolicy", + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" + }, + { + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "is this a system vm offering", - "name": "issystem", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "name": "hypervisorsnapshotreserve", - "type": "integer" + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" }, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "name": "provisioningtype", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, { - "description": "the ID of the disk offering to which service offering is linked", - "name": "diskofferingid", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "bytes write rate of the service offering", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the state of the host", + "name": "state", + "type": "status" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "is true if the offering is customized", - "name": "iscustomized", + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", "type": "boolean" }, { - "description": "burst io requests write rate of the disk offering", - "name": "diskIopsWriteRateMax", - "type": "long" - } - ] - }, - { - "description": "Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.", - "isasync": false, - "name": "assignVirtualMachine", - "params": [ - { - "description": "an optional project for the new VM owner.", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "CPU Arch of the host", + "name": "arch", + "type": "string" }, { - "description": "list of security group ids to be applied on the virtual machine. In case no security groups are provided the VM is part of the default security group.", - "length": 255, - "name": "securitygroupids", - "related": "", - "required": false, - "type": "list" + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", + "type": "string" }, { - "description": "list of new network ids in which the moved VM will participate. In case no network ids are provided the VM will be part of the default network for that zone. In case there is no network yet created for the new account the default network will be created.", - "length": 255, - "name": "networkids", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "type": "list" + "description": "the name of the host", + "name": "name", + "type": "string" }, { - "description": "account name of the new VM owner.", + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" + } + ] + }, + { + "description": "Attaches a disk volume to a virtual machine.", + "isasync": true, + "name": "attachVolume", + "params": [ + { + "description": "The ID of the device to map the volume to the guest OS. If no deviceID is informed, the next available deviceID will be chosen. Use 0 when volume needs to be attached as ROOT.
When using a linux operating system and the hypervisor XenServer, the devices IDs will be mapped as follows:
  • 0 maps to /dev/xvda;
  • 1 maps to /dev/xvdb;
  • 2 maps /dev/xvdc and so on.
Please refer to the docs of your hypervisor for the correct mapping of the deviceID and the actual logical disk structure.", "length": 255, - "name": "account", + "name": "deviceid", "required": false, - "type": "string" + "type": "long" }, { - "description": "domain id of the new VM owner.", + "description": " the ID of the virtual machine", "length": 255, - "name": "domainid", - "related": "listDomains,listDomains", - "required": false, + "name": "virtualmachineid", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, "type": "uuid" }, { - "description": "id of the VM to be moved", + "description": "the ID of the disk volume", "length": 255, - "name": "virtualmachineid", - "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "name": "id", + "related": "attachVolume,createVolume,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", "required": true, "type": "uuid" } ], - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "related": "createVolume,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", "response": [ { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the domain name of the security group", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "set" + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the account owning the security group", + "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "the ID of the security group", - "name": "id", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the description of the security group", - "name": "description", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the name of the security group", - "name": "name", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project name of the group", - "name": "project", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - } - ], - "type": "set" + "description": "resource type", + "name": "resourcetype", + "type": "string" } ], "type": "set" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", + "type": "string" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" + }, + { + "description": "name of the service offering for root disk", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "state of the virtual machine", + "name": "vmstate", + "type": "string" + }, + { + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "type of the virtual machine", + "name": "vmtype", + "type": "string" + }, + { + "description": "name of the availability zone", + "name": "zonename", + "type": "string" + }, + { + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" + }, + { + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" + }, + { + "description": "the domain associated with the disk volume", + "name": "domain", + "type": "string" + }, + { + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "display name of the virtual machine", + "name": "vmdisplayname", + "type": "string" + }, + { + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" + }, + { + "description": "shared or local storage", + "name": "storagetype", + "type": "string" + }, + { + "description": "ID of the availability zone", + "name": "zoneid", + "type": "string" + }, + { + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" + }, + { + "description": "ID of the disk volume", + "name": "id", + "type": "string" + }, + { + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" + }, + { + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" + }, + { + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", + "type": "string" + }, + { + "description": "the disk utilization", + "name": "utilization", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", + "type": "string" + }, + { + "description": "name of the disk offering", + "name": "diskofferingname", + "type": "string" + }, + { + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" + }, + { + "description": "the project name of the vpn", + "name": "project", + "type": "string" + }, + { + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" + }, + { + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", + "type": "string" + }, + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", + "type": "string" + }, + { + "description": "the date the disk volume was created", + "name": "created", + "type": "date" + }, + {}, + { + "description": "name of the virtual machine", + "name": "vmname", + "type": "string" + }, + { + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" + }, + { + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" + }, + { + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "size of the disk volume", + "name": "size", + "type": "long" + }, + { + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" + }, + { + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" + }, + { + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", + "type": "string" + }, + { + "description": "cluster name where the volume is allocated", + "name": "clustername", + "type": "string" + }, + { + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" + }, + { + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" + }, + { + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", + "type": "string" + }, + { + "description": "the state of the disk volume", + "name": "state", + "type": "string" + }, + { + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { @@ -104293,222 +97658,351 @@ "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - } - ], - "type": "set" + "description": "name of the disk volume", + "name": "name", + "type": "string" + }, + { + "description": "the status of the volume", + "name": "status", + "type": "string" + }, + { + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" + }, + { + "description": "cluster id of the volume", + "name": "clusterid", + "type": "string" + }, + { + "description": "pod name of the volume", + "name": "podname", + "type": "string" + }, + { + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" + }, + { + "description": "the path of the volume", + "name": "path", + "type": "string" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" + }, + { + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" + }, + { + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, {}, { - "description": "the password (if exists) of the virtual machine", + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", + "type": "string" + }, + { + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + } + ] + }, + { + "description": "adds a baremetal dhcp server", + "isasync": true, + "name": "addBaremetalDhcp", + "params": [ + { + "description": "URL of the external dhcp appliance.", + "length": 255, + "name": "url", + "required": true, + "type": "string" + }, + { + "description": "Credentials to reach external dhcp device", + "length": 255, + "name": "username", + "required": true, + "type": "string" + }, + { + "description": "Type of dhcp device", + "length": 255, + "name": "dhcpservertype", + "required": true, + "type": "string" + }, + { + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": true, + "type": "uuid" + }, + { + "description": "Credentials to reach external dhcp device", + "length": 255, "name": "password", + "required": true, + "type": "string" + } + ], + "related": "listBaremetalDhcp", + "response": [ + { + "description": "device id of ", + "name": "id", "type": "string" }, {}, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "name of the provider", + "name": "dhcpservertype", + "type": "string" + }, + { + "description": "url", + "name": "url", + "type": "string" + }, + { + "description": "name of the provider", + "name": "provider", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "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", + "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", + "description": "the physical network to which this external dhcp device belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + {} + ] + }, + { + "description": "Copies a snapshot from one zone to another.", + "isasync": true, + "name": "copySnapshot", + "params": [ + { + "description": "A comma-separated list of IDs of the zones that the snapshot needs to be copied to. Specify this list if the snapshot 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": "destzoneids", + "related": "createZone,listZones,listZones", + "required": false, + "type": "list" + }, + { + "description": "The ID of the zone in which the snapshot is currently present. If not specified then the zone of snapshot's volume will be used.", + "length": 255, + "name": "sourcezoneid", + "related": "createZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "The ID of the zone the snapshot is being copied to.", + "length": 255, + "name": "destzoneid", + "related": "createZone,listZones,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the snapshot.", + "length": 255, + "name": "id", + "related": "copySnapshot,revertSnapshot,listSnapshots", + "required": true, + "type": "uuid" + } + ], + "related": "revertSnapshot,listSnapshots", + "response": [ + { + "description": "the domain ID of the snapshot's account", + "name": "domainid", + "type": "string" + }, + { + "description": "the type of the snapshot", + "name": "snapshottype", + "type": "string" + }, + { + "description": "name of the datastore for the snapshot entry", + "name": "datastorename", + "type": "string" + }, + { + "description": "display name of the os on volume", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", + "name": "revertable", + "type": "boolean" + }, + { + "description": "id of the availability zone", "name": "zoneid", "type": "string" }, + {}, + { + "description": "id of the os on volume", + "name": "ostypeid", + "type": "string" + }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the project id of the snapshot", + "name": "projectid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", + "description": "the status of the template", + "name": "status", + "type": "string" + }, + { + "description": "valid types are hourly, daily, weekly, monthy, template, and none.", + "name": "intervaltype", + "type": "string" + }, + { + "description": "type of the disk volume", + "name": "volumetype", + "type": "string" + }, + { + "description": "download progress of a snapshot", + "name": "downloaddetails", "type": "map" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "path of the Domain the snapshot's account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "type of the datastore for the snapshot entry", + "name": "datastoretype", + "type": "string" + }, + { + "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "name": "state", + "type": "state" + }, + { + "description": "physical size of backedup snapshot on image store", + "name": "physicalsize", "type": "long" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the project name of the snapshot", + "name": "project", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the snapshot", + "name": "name", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the account associated with the snapshot", + "name": "account", + "type": "string" + }, + { + "description": "name of the disk volume", + "name": "volumename", + "type": "string" + }, + { + "description": "valid location types are primary and secondary.", + "name": "locationtype", + "type": "string" + }, + { + "description": "virtual size of backedup snapshot on image store", + "name": "virtualsize", + "type": "long" + }, + { + "description": "ID of the snapshot", + "name": "id", + "type": "string" + }, + { + "description": "state of the disk volume", + "name": "volumestate", + "type": "string" + }, + { + "description": "name of the availability zone", + "name": "zonename", + "type": "string" + }, + {}, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the domain name of the snapshot's account", + "name": "domain", "type": "string" }, { @@ -104516,28 +98010,28 @@ "name": "tags", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -104556,1154 +98050,974 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], "type": "set" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" - }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "state of the snapshot on the datastore", + "name": "datastorestate", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": " the date the snapshot was created", + "name": "created", + "type": "date" }, { - "description": "the project name of the vm", - "name": "project", + "description": "ID of the datastore for the snapshot entry", + "name": "datastoreid", "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, + } + ], + "since": "4.19.0" + }, + { + "description": "Adds Traffic Monitor Host for Direct Network Usage", + "isasync": false, + "name": "addTrafficMonitor", + "params": [ { - "description": "User VM type", - "name": "vmtype", + "description": "Traffic going into the listed zones will be metered", + "length": 255, + "name": "includezones", + "required": false, "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "Traffic going into the listed zones will not be metered", + "length": 255, + "name": "excludezones", + "required": false, "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "URL of the traffic monitor Host", + "length": 255, + "name": "url", + "required": true, "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" - }, + "description": "Zone in which to add the external firewall appliance.", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the zone ID of the external firewall", + "name": "zoneid", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the ID of the external firewall", + "name": "id", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the timeout (in seconds) for requests to the external firewall", + "name": "timeout", "type": "string" }, + {}, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the management IP address of the external firewall", + "name": "ipaddress", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the number of times to retry requests to the external firewall", + "name": "numretries", "type": "string" - }, + } + ] + }, + { + "description": "Updates a project", + "isasync": true, + "name": "updateProject", + "params": [ { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "display text of the project", + "length": 255, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "id of the project to be modified", + "length": 255, + "name": "id", + "related": "activateProject,suspendProject,updateProject", + "required": true, + "type": "uuid" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "when true, it swaps ownership with the account/ user provided. Ideally to be used when a single project administrator is present. In case of multiple project admins, swapowner is to be set to false,to promote or demote the user/account based on the roleType (Regular or Admin) provided. Defaults to true", + "length": 255, + "name": "swapowner", + "required": false, + "type": "boolean" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "Account level role to be assigned to the user/account : Admin/Regular", + "length": 255, + "name": "roletype", + "required": false, "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "new Admin account for the project", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the virtual machine", + "description": "name of the project", + "length": 255, "name": "name", + "required": false, + "since": "4.19.0", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, + "description": "ID of the user to be promoted/demoted", + "length": 255, + "name": "userid", + "related": "createUser,disableUser,enableUser,getUser,listUsers", + "required": false, + "type": "uuid" + } + ], + "related": "activateProject,suspendProject", + "response": [ { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the total primary storage space (in GiB) the project can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" - }, - { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the total secondary storage space (in GiB) available to be used for this project", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the total secondary storage space (in GiB) the project can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the total number of vpcs available to be created for this project", + "name": "vpcavailable", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the project account name of the project", + "name": "projectaccountname", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" + "description": "the total number of cpu cores owned by project", + "name": "cputotal", + "type": "long" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "The tagged resource limit and count for the project", + "name": "taggedresources", + "type": "list" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" + "description": "the total number of networks owned by project", + "name": "networktotal", + "type": "long" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the domain name where the project belongs to", + "name": "domain", + "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the state of the project", + "name": "state", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the list of resource tags associated with vm", + "name": "tags", "response": [ { - "description": "the description of the affinity group", - "name": "description", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the total number of virtual machines that can be deployed by this project", + "name": "vmlimit", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the total volume being used by this project", + "name": "volumetotal", "type": "long" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the id of the project", + "name": "id", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "the total number of networks available to be created for this project", + "name": "networkavailable", + "type": "string" + }, + { + "description": "the total primary storage space (in GiB) owned by project", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the total memory (in MB) available to be created for this project", + "name": "memoryavailable", + "type": "string" + }, + { + "description": "the total number of virtual machines stopped for this project", + "name": "vmstopped", "type": "integer" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the total number of networks the project can own", + "name": "networklimit", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the total number of templates which have been created by this project", + "name": "templatetotal", + "type": "long" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the displaytext of the project", + "name": "displaytext", + "type": "string" + }, + { + "description": "the total number of virtual machines available for this project to acquire", + "name": "vmavailable", + "type": "string" + }, + { + "description": "the total number of public ip addresses available for this project to acquire", + "name": "ipavailable", + "type": "string" + }, + { + "description": "the total number of virtual machines deployed by this project", + "name": "vmtotal", "type": "long" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the domain id the project belongs to", + "name": "domainid", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the total number of templates available to be created by this project", + "name": "templateavailable", + "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the total number of snapshots available for this project", + "name": "snapshotavailable", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the total number of templates which can be created by this project", + "name": "templatelimit", + "type": "string" + }, + { + "description": "the total number of public ip addresses this project can acquire", + "name": "iplimit", + "type": "string" + }, + { + "description": "the total volume available for this project", + "name": "volumeavailable", + "type": "string" + }, + { + "description": "the date this project was created", + "name": "created", + "type": "date" + }, + {}, + { + "description": "the total number of public ip addresses allocated for this project", + "name": "iptotal", "type": "long" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the total number of cpu cores available to be created for this project", + "name": "cpuavailable", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the total number of cpu cores the project can own", + "name": "cpulimit", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the total secondary storage space (in GiB) owned by project", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" + "description": "the total number of snapshots stored by this project", + "name": "snapshottotal", + "type": "long" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the total memory (in MB) the project can own", + "name": "memorylimit", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the total number of vpcs the project can own", + "name": "vpclimit", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the date when this virtual machine 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 write (IO) of disk on the VM", - "name": "diskiowrite", + "description": "the total memory (in MB) owned by project", + "name": "memorytotal", "type": "long" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" + "description": "the account name of the project's owners", + "name": "owner", + "type": "list" }, - {}, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the total number of snapshots which can be stored by this project", + "name": "snapshotlimit", "type": "string" }, + {}, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the total volume which can be used by this project", + "name": "volumelimit", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the name of the project", + "name": "name", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "the total number of vpcs owned by project", + "name": "vpctotal", "type": "long" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the total primary storage space (in GiB) available to be used for this project", + "name": "primarystorageavailable", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" + "description": "the total number of virtual machines running for this project", + "name": "vmrunning", + "type": "integer" } ], "since": "3.0.0" }, { - "description": "Lists virtual machines on a unmanaged host", + "description": "Lists internal load balancers", "isasync": false, - "name": "listVmsForImport", + "name": "listLoadBalancers", "params": [ { - "description": "", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "page", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the zone ID", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, "type": "uuid" }, { - "description": "the username for the host", + "description": "the ID of the load balancer", "length": 255, - "name": "username", + "name": "id", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the password for the host", + "description": "the scheme of the load balancer. Supported value is internal in the current release", "length": 255, - "name": "password", + "name": "scheme", "required": false, "type": "string" }, { - "description": "hypervisor type of the host", + "description": "", "length": 255, - "name": "hypervisor", - "required": true, - "type": "string" + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "List by keyword", + "description": "the name of the load balancer", "length": 255, - "name": "keyword", + "name": "name", "required": false, "type": "string" }, { - "description": "the host name or IP address", + "description": "the source IP address of the load balancer", "length": 255, - "name": "host", - "required": true, + "name": "sourceipaddress", + "required": false, "type": "string" }, { - "description": "", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", "length": 255, - "name": "pagesize", + "name": "fordisplay", "required": false, - "type": "integer" - } - ], - "related": "listVmwareDcVms,listUnmanagedInstances", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "since": "4.4", + "type": "boolean" }, { - "description": "the name of the host to which virtual machine belongs", - "name": "hostname", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the CPU cores per socket for the virtual machine. VMware specific", - "name": "cpucorepersocket", - "type": "integer" + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" }, - {}, { - "description": "the name of the cluster to which virtual machine belongs", - "name": "clustername", - "type": "string" + "description": "the network ID of the source IP address", + "length": 255, + "name": "sourceipaddressnetworkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the CPU speed of the virtual machine", - "name": "cpuspeed", - "type": "integer" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the ID of the host to which virtual machine belongs", - "name": "hostid", - "type": "string" + "description": "the network ID of the load balancer", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the power state of the virtual machine", - "name": "powerstate", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "List resources by tags (key/value pairs)", + "length": 255, + "name": "tags", + "required": false, + "type": "map" + } + ], + "related": "createLoadBalancer", + "response": [ + { + "description": "the domain ID of the Load Balancer", + "name": "domainid", "type": "string" }, { - "description": "the list of disks associated with the virtual machine", - "name": "disk", + "description": "the list of rules associated with the Load Balancer", + "name": "loadbalancerrule", "response": [ { - "description": "the ID of the disk", - "name": "id", - "type": "string" - }, - { - "description": "the file path of the disk image", - "name": "imagepath", - "type": "string" - }, - { - "description": "the controller of the disk", - "name": "datastoretype", - "type": "string" - }, - { - "description": "the controller of the disk", - "name": "datastorepath", - "type": "string" - }, - { - "description": "the capacity of the disk in bytes", - "name": "capacity", - "type": "long" - }, - { - "description": "the controller of the disk", - "name": "controller", + "description": "the state of the load balancer rule", + "name": "state", "type": "string" }, { - "description": "the position of the disk", - "name": "position", + "description": "source port of the load balancer rule", + "name": "sourceport", "type": "integer" }, { - "description": "the controller of the disk", - "name": "datastorename", - "type": "string" - }, - { - "description": "the controller of the disk", - "name": "datastorehost", - "type": "string" - }, - { - "description": "the label of the disk", - "name": "label", - "type": "string" - }, - { - "description": "the controller unit of the disk", - "name": "controllerunit", + "description": "instance port of the load balancer rule", + "name": "instanceport", "type": "integer" } ], - "type": "set" + "type": "list" }, { - "description": "the list of nics associated with the virtual machine", - "name": "nic", + "description": "Load Balancer network id", + "name": "networkid", + "type": "string" + }, + { + "description": "the description of the Load Balancer", + "name": "description", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the domain of the Load Balancer", + "name": "domain", + "type": "string" + }, + { + "description": "the list of instances associated with the Load Balancer", + "name": "loadbalancerinstance", "response": [ { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ip address of the nic", + "description": "the ip address of the instance", "name": "ipaddress", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the instance ID", + "name": "id", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the state of the instance", + "name": "state", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the ID of the nic", - "name": "id", + "description": "the name of the instance", + "name": "name", "type": "string" - }, + } + ], + "type": "list" + }, + { + "description": "the account of the Load Balancer", + "name": "account", + "type": "string" + }, + { + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", + "type": "string" + }, + {}, + { + "description": "the list of resource tags associated with the Load Balancer", + "name": "tags", + "response": [ { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the gateway of the nic", - "name": "gateway", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the memory of the virtual machine in MB", - "name": "memory", - "type": "integer" + "description": "Load Balancer source ip", + "name": "sourceipaddress", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the Load Balancer", + "name": "name", "type": "string" }, { - "description": "the operating system of the virtual machine", - "name": "osdisplayname", + "description": "the Load Balancer ID", + "name": "id", "type": "string" }, - {}, { - "description": "the ID of the cluster to which virtual machine belongs", - "name": "clusterid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the project name of the Load Balancer", + "name": "project", "type": "string" }, { - "description": "the operating system ID of the virtual machine", - "name": "osid", + "description": "the project id of the Load Balancer", + "name": "projectid", "type": "string" }, { - "description": "the CPU cores of the virtual machine", - "name": "cpunumber", - "type": "integer" - } + "description": "path of the domain to which the Load Balancer belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "Load Balancer source ip network id", + "name": "sourceipaddressnetworkid", + "type": "string" + }, + {} ], - "since": "4.19.0" + "since": "4.2.0" }, { - "description": "configures a netscaler load balancer device", - "isasync": true, - "name": "configureNetscalerLoadBalancer", + "description": "Lists user accounts", + "isasync": false, + "name": "listUsers", "params": [ { - "description": "Netscaler load balancer device ID", - "length": 255, - "name": "lbdeviceid", - "related": "addNetscalerLoadBalancer,configureNetscalerLoadBalancer,registerNetscalerControlCenter,deployNetscalerVpx", - "required": true, - "type": "uuid" - }, - { - "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "description": "List users by account type. Valid types include admin, domain-admin, read-only-admin, or user.", "length": 255, - "name": "podids", - "related": "createManagementNetworkIpRange", + "name": "accounttype", "required": false, - "type": "list" + "type": "integer" }, { - "description": "true if this netscaler device to dedicated for a account, false if the netscaler device will be shared by multiple accounts", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "lbdevicededicated", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "true if netscaler load balancer is intended to be used in in-line with firewall, false if netscaler load balancer will side-by-side with firewall", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "inline", + "name": "isrecursive", "required": false, "type": "boolean" }, { - "description": "capacity of the device, Capacity will be interpreted as number of networks device can handle", + "description": "List by keyword", "length": 255, - "name": "lbdevicecapacity", + "name": "keyword", "required": false, - "type": "long" - } - ], - "related": "addNetscalerLoadBalancer,registerNetscalerControlCenter,deployNetscalerVpx", - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "device capacity", - "name": "lbdevicecapacity", - "type": "long" - }, - { - "description": "true if NetScaler device is provisioned to be a GSLB service provider", - "name": "gslbprovider", - "type": "boolean" - }, - { - "description": "the physical network to which this netscaler device belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "device name", - "name": "lbdevicename", - "type": "string" - }, - { - "description": "name of the provider", - "name": "provider", - "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 load balancer", - "name": "privateinterface", - "type": "string" - }, - { - "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", - "name": "isexclusivegslbprovider", - "type": "boolean" - }, - { - "description": "public IP of the NetScaler representing GSLB site", - "name": "gslbproviderpublicip", "type": "string" }, - {}, - { - "description": "device id of the netscaler load balancer", - "name": "lbdeviceid", - "type": "string" - }, - { - "description": "the public interface of the load balancer", - "name": "publicinterface", - "type": "string" - }, - { - "description": "the management IP address of the external load balancer", - "name": "ipaddress", - "type": "string" - }, - { - "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", - "name": "podids", - "type": "list" - }, - { - "description": "device state", - "name": "lbdevicestate", - "type": "string" - }, - { - "description": "private IP of the NetScaler representing GSLB site", - "name": "gslbproviderprivateip", - "type": "string" - }, - { - "description": "true if device is dedicated for an account", - "name": "lbdevicededicated", - "type": "boolean" - } - ] - }, - { - "description": "delete Tungsten-Fabric service group", - "isasync": true, - "name": "deleteTungstenFabricServiceGroup", - "params": [ { - "description": "the ID of zone", + "description": "List user by ID.", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "id", + "related": "createUser,disableUser,enableUser,getUser,listUsers", + "required": false, "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric service group", + "description": "", "length": 255, - "name": "servicegroupuuid", - "required": true, - "type": "string" - } - ], - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "name": "page", + "required": false, "type": "integer" }, { - "description": "true if operation is executed successfully", - "name": "success", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" }, - {}, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "Adds a object storage pool", - "isasync": false, - "name": "addObjectStoragePool", - "params": [ { - "description": "the object store provider name", + "description": "List user by the username", "length": 255, - "name": "provider", - "required": true, + "name": "username", + "required": false, "type": "string" }, { - "description": "the URL for the object store", - "length": 2048, - "name": "url", - "required": true, - "type": "string" + "description": "flag to display the resource icon for users", + "length": 255, + "name": "showicon", + "required": false, + "type": "boolean" }, { - "description": "the name for the object store", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "name", - "required": true, + "name": "account", + "required": false, "type": "string" }, { - "description": "the details for the object store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss", + "description": "List users by state of the user account.", "length": 255, - "name": "details", + "name": "state", "required": false, - "type": "map" + "type": "string" }, { - "description": "the tags for the storage pool", + "description": "", "length": 255, - "name": "tags", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" } ], - "related": "", + "related": "createUser,disableUser,enableUser,getUser", "response": [ { - "description": "the ID of the object store", - "name": "id", + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the object store", - "name": "name", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "the provider name of the object store", - "name": "providername", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, - {}, { - "description": "the object store currently used size", - "name": "storageused", - "type": "long" + "description": "the user firstname", + "name": "firstname", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the user name", + "name": "username", + "type": "string" }, { - "description": "the url of the object store", - "name": "url", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "the total size of the object store", - "name": "storagetotal", - "type": "long" + "description": "the name of the role", + "name": "rolename", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account ID of the user", + "name": "accountid", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Deletes user from the project", - "isasync": true, - "name": "deleteUserFromProject", - "params": [ - { - "description": "ID of the project to remove the user from", - "length": 255, - "name": "projectid", - "related": "", - "required": true, - "type": "uuid" }, { - "description": "Id of the user to be removed from the project", - "length": 255, - "name": "userid", - "related": "disableUser,getUser,listUsers,lockUser", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the api key of the user", + "name": "apikey", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the type of the role", + "name": "roletype", "type": "string" }, - {} - ], - "since": "4.15.0" - }, - { - "description": "Deletes a Network Service Provider.", - "isasync": true, - "name": "deleteNetworkServiceProvider", - "params": [ - { - "description": "the ID of the network service provider", - "length": 255, - "name": "id", - "related": "listTrafficTypes", - "required": true, - "type": "uuid" - } - ], - "response": [ + {}, { "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", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { @@ -105712,199 +99026,79 @@ "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ], - "since": "3.0.0" - }, - { - "description": "List network devices", - "isasync": false, - "name": "listNetworkDevice", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "parameters for network device", - "length": 255, - "name": "networkdeviceparameterlist", - "required": false, - "type": "map" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall", - "length": 255, - "name": "networkdevicetype", - "required": false, - "type": "string" - } - ], - "related": "addNetworkDevice", - "response": [ - { - "description": "the ID of the network device", + "description": "the user ID", "name": "id", "type": "string" }, - {}, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the user state", + "name": "state", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Lists Project roles in CloudStack", - "isasync": false, - "name": "listProjectRoles", - "params": [ - { - "description": "List project role by project ID.", - "length": 255, - "name": "projectid", - "related": "", - "required": true, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" }, { - "description": "List project role by project role name.", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "List project role by project role ID.", - "length": 255, - "name": "projectroleid", - "related": "listProjectRoles,updateProjectRole", - "required": false, - "type": "uuid" - } - ], - "related": "updateProjectRole", - "response": [ - {}, - {}, - { - "description": "the name of the role", - "name": "name", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the id of the project", - "name": "projectid", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the ID of the role", - "name": "id", - "type": "string" + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, + {}, { - "description": "the description of the role", - "name": "description", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", - "type": "boolean" } - ], - "since": "4.15.0" + ] }, { - "description": "Removes an OpenDyalight controler", - "isasync": true, - "name": "deleteOpenDaylightController", + "description": "This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user", + "isasync": false, + "name": "registerUserKeys", "params": [ { - "description": "OpenDaylight Controller ID", + "description": "User id", "length": 255, "name": "id", - "related": "deleteOpenDaylightController", + "related": "createUser,disableUser,enableUser,getUser", "required": true, "type": "uuid" } ], "related": "", "response": [ - { - "description": "the name assigned to the controller", - "name": "name", - "type": "string" - }, - {}, - { - "description": "device id of the controller", - "name": "id", - "type": "string" - }, - { - "description": "the url of the controller api", - "name": "url", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -105912,1027 +99106,1151 @@ }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the secret key of the registered user", + "name": "secretkey", "type": "string" }, { - "description": "the username to authenticate to the controller", - "name": "username", + "description": "the api key of the registered user", + "name": "apikey", "type": "string" }, { - "description": "the physical network to which this controller belongs to", - "name": "physicalnetworkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - } + }, + {} ] }, { - "description": "Updates attributes of a template.", - "isasync": false, - "name": "updateTemplate", - "params": [ - { - "description": "true if the image supports the password reset feature; default is false", - "length": 255, - "name": "passwordenabled", - "required": false, - "type": "boolean" - }, + "description": "Deletes a load balancer stickiness policy.", + "isasync": true, + "name": "deleteLBStickinessPolicy", + "params": [ { - "description": "the ID of the image file", + "description": "the ID of the LB stickiness policy", "length": 255, "name": "id", - "related": "listIsos,createTemplate,registerTemplate,updateTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "createLBStickinessPolicy,listLBStickinessPolicies", "required": true, "type": "uuid" - }, + } + ], + "response": [ + {}, { - "description": "the CPU arch of the template/ISO. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the template requires HVM, false otherwise; available only for updateTemplate API", - "length": 255, - "name": "requireshvm", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "the display text of the image", - "length": 4096, - "name": "displaytext", - "required": false, - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of the image file", - "length": 255, - "name": "name", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, + } + ], + "since": "3.0.0" + }, + { + "description": "Updates a VLAN IP range.", + "isasync": false, + "name": "updateVlanIpRange", + "params": [ { - "description": "sort key of the template, integer", + "description": "the ending IP address in the VLAN IP range", "length": 255, - "name": "sortkey", + "name": "endip", "required": false, - "type": "integer" + "type": "string" }, { - "description": "true if the template type is routing i.e., if template is used to deploy router", + "description": "true if IP range is set to system vms, false if not", "length": 255, - "name": "isrouting", + "name": "forsystemvms", "required": false, "type": "boolean" }, { - "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", - "length": 255, - "name": "details", - "required": false, - "type": "map" - }, - { - "description": "the tag for this template.", + "description": "the ending IPv6 address in the IPv6 network range", "length": 255, - "name": "templatetag", + "name": "endipv6", "required": false, - "since": "4.20.0", "type": "string" }, { - "description": "true if the template supports the sshkey upload feature; default is false", + "description": "the beginning IPv6 address in the IPv6 network range", "length": 255, - "name": "sshkeyenabled", + "name": "startipv6", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "true if image is bootable, false otherwise; available only for updateIso API", + "description": "the netmask of the VLAN IP range", "length": 255, - "name": "bootable", + "name": "netmask", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "description": "the beginning IP address in the VLAN IP range", "length": 255, - "name": "isdynamicallyscalable", + "name": "startip", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "description": "the gateway of the VLAN IP range", "length": 255, - "name": "cleanupdetails", + "name": "gateway", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "the format for the image", + "description": "the gateway of the IPv6 network", "length": 255, - "name": "format", + "name": "ip6gateway", "required": false, "type": "string" }, { - "description": "the ID of the OS type that best represents the OS of this image.", + "description": "the UUID of the VLAN IP range", "length": 255, - "name": "ostypeid", - "related": "addGuestOs", - "required": false, + "name": "id", + "related": "updateVlanIpRange,dedicatePublicIpRange", + "required": true, "type": "uuid" }, { - "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", + "description": "the CIDR of IPv6 network, must be at least /64", "length": 255, - "name": "templatetype", + "name": "ip6cidr", "required": false, "type": "string" } ], - "related": "listIsos,createTemplate,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "dedicatePublicIpRange", "response": [ { - "description": "the template name", - "name": "name", + "description": "the network id of vlan range", + "name": "networkid", "type": "string" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "path of the domain to which the VLAN IP range belongs", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "the ID of the VLAN IP range", + "name": "id", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the Zone ID of the VLAN IP range", + "name": "zoneid", "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", + "description": "the cidr of the VLAN IP range", + "name": "cidr", "type": "string" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "the end ipv6 of the VLAN IP range", + "name": "endipv6", + "type": "string" + }, + { + "description": "the virtual network for the VLAN IP range", + "name": "forvirtualnetwork", "type": "boolean" }, { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "the start ip of the VLAN IP range", + "name": "startip", "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "the end ip of the VLAN IP range", + "name": "endip", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the start ipv6 of the VLAN IP range", + "name": "startipv6", + "type": "string" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" + "description": "the netmask of the VLAN IP range", + "name": "netmask", + "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "the description of the VLAN IP range", + "name": "description", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the Pod name for the VLAN IP range", + "name": "podname", "type": "string" }, { - "description": "the template ID", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "the Pod ID for the VLAN IP range", + "name": "podid", "type": "string" }, + {}, + {}, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the ID or VID of the VLAN.", + "name": "vlan", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the project name of the vlan range", + "name": "project", + "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" + "description": "indicates whether IP range is dedicated to NSX resources or not", + "name": "fornsx", + "type": "boolean" }, { - "description": "the type of the template", - "name": "templatetype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", + "description": "indicates whether VLAN IP range is dedicated to system vms or not", + "name": "forsystemvms", "type": "boolean" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the domain ID of the VLAN IP range", + "name": "domainid", + "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "the account of the VLAN IP range", + "name": "account", + "type": "string" }, { - "description": "the project id of the template", + "description": "the project id of the vlan range", "name": "projectid", "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "the gateway of the VLAN IP range", + "name": "gateway", + "type": "string" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" - }, + "description": "the domain name of the VLAN IP range", + "name": "domain", + "type": "string" + } + ], + "since": "4.16.0" + }, + { + "description": "Lists site to site vpn connection gateways", + "isasync": false, + "name": "listVpnConnections", + "params": [ { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", - "type": "string" + "description": "id of vpc", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC,migrateVPC", + "required": false, + "type": "uuid" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "id of the vpn connection", + "length": 255, + "name": "id", + "related": "createVpnConnection,listVpnConnections", + "required": false, + "type": "uuid" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + } + ], + "related": "createVpnConnection", + "response": [ + { + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "the domain id of the owner", + "name": "domainid", + "type": "string" }, - {}, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the project id", + "name": "projectid", "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" + "description": "is connection for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", + "type": "boolean" + }, + { + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the connection ID", + "name": "id", + "type": "string" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "ESP policy of the customer gateway", + "name": "esppolicy", "type": "string" }, - {}, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", "type": "string" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the public IP address", + "name": "publicip", "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", + "type": "long" + }, + { + "description": "IPsec Preshared-Key of the customer gateway", + "name": "ipsecpsk", "type": "string" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the vpn gateway ID", + "name": "s2svpngatewayid", + "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", + "description": "the customer gateway ID", + "name": "s2scustomergatewayid", + "type": "string" + }, + { + "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", + "name": "splitconnections", "type": "boolean" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "IKE policy of the customer gateway", + "name": "ikepolicy", "type": "string" }, + {}, { - "description": "the template display text", - "name": "displaytext", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the status of the template", - "name": "status", - "type": "string" + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", + "type": "long" }, { - "description": "checksum of the template", - "name": "checksum", + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { - "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", - "name": "deployasis", + "description": "State of vpn connection", + "name": "passive", "type": "boolean" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "public ip address id of the customer gateway", + "name": "gateway", "type": "string" }, { - "description": "the project name of the template", - "name": "project", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" - } + }, + { + "description": "State of vpn connection", + "name": "state", + "type": "string" + }, + { + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {} ] }, { - "description": "Creates a VLAN IP range.", + "description": "Lists resource limits.", "isasync": false, - "name": "createVlanIpRange", + "name": "listResourceLimits", "params": [ { - "description": "true if IP range is set to system vms, false if not", + "description": "Tag for the resource type", "length": 255, - "name": "forsystemvms", + "name": "tag", "required": false, - "type": "boolean" + "since": "4.20.0", + "type": "string" }, { - "description": "the Zone ID of the VLAN IP range", + "description": "Type of resource. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses an account can own. 2 - Volume. Number of disk volumes an account can own. 3 - Snapshot. Number of snapshots an account can own. 4 - Template. Number of templates an account can register/create. 5 - Project. Number of projects an account can own. 6 - Network. Number of networks an account can own. 7 - VPC. Number of VPC an account can own. 8 - CPU. Number of CPU an account can allocate for their resources. 9 - Memory. Amount of RAM an account can allocate for their resources. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "resourcetype", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the physical network id", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" }, { - "description": "the CIDR of IPv6 network, must be at least /64", + "description": "", "length": 255, - "name": "ip6cidr", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "account who will own the VLAN. If VLAN is Zone wide, this parameter should be omitted", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, "name": "account", "required": false, "type": "string" }, { - "description": "true if VLAN is of Virtual type, false if Direct", + "description": "Lists resource limits by ID.", "length": 255, - "name": "forvirtualnetwork", + "name": "id", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "the ID or VID of the VLAN. If not specified, will be defaulted to the vlan of the network or if vlan of the network is null - to Untagged", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "vlan", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "true if the IP range is used for NSX resource", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "fornsx", + "name": "isrecursive", "required": false, - "since": "4.20.0", "type": "boolean" }, { - "description": "the beginning IPv6 address in the IPv6 network range", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "startipv6", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the beginning IP address in the VLAN IP range", + "description": "Type of resource (wins over resourceType if both are provided). Values are: user_vm - Instance. Number of instances a user can create. public_ip - IP. Number of public IP addresses an account can own. volume - Volume. Number of disk volumes an account can own. snapshot - Snapshot. Number of snapshots an account can own. template - Template. Number of templates an account can register/create. project - Project. Number of projects an account can own. network - Network. Number of networks an account can own. vpc - VPC. Number of VPC an account can own. cpu - CPU. Number of CPU an account can allocate for their resources. memory - Memory. Amount of RAM an account can allocate for their resources. primary_storage - PrimaryStorage. Total primary storage space (in GiB) a user can use. secondary_storage - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", "length": 255, - "name": "startip", + "name": "resourcetypename", "required": false, "type": "string" }, { - "description": "the gateway of the IPv6 network. Required for Shared networks and Isolated networks when it belongs to VPC", + "description": "List by keyword", "length": 255, - "name": "ip6gateway", + "name": "keyword", "required": false, "type": "string" }, { - "description": "the gateway of the VLAN IP range", + "description": "", "length": 255, - "name": "gateway", + "name": "pagesize", "required": false, - "type": "string" - }, + "type": "integer" + } + ], + "related": "", + "response": [ + {}, { - "description": "the ending IPv6 address in the IPv6 network range", - "length": 255, - "name": "endipv6", - "required": false, + "description": "the account of the resource limit", + "name": "account", "type": "string" }, { - "description": "optional parameter. Have to be specified for Direct Untagged vlan only.", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the netmask of the VLAN IP range", - "length": 255, - "name": "netmask", - "required": false, + "description": "the project name of the resource limit", + "name": "project", "type": "string" }, { - "description": "domain ID of the account owning a VLAN", - "length": 255, - "name": "domainid", - "related": "listDomains,listDomains", - "required": false, - "type": "uuid" + "description": "the domain name of the resource limit", + "name": "domain", + "type": "string" }, { - "description": "project who will own the VLAN. If VLAN is Zone wide, this parameter should be omitted", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "The tag for the resource limit", + "name": "tag", + "type": "string" }, { - "description": "the network id", - "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork,listPaloAltoFirewallNetworks", - "required": false, - "type": "uuid" + "description": "the project id of the resource limit", + "name": "projectid", + "type": "string" }, { - "description": "the ending IP address in the VLAN IP range", - "length": 255, - "name": "endip", - "required": false, + "description": "the domain ID of the resource limit", + "name": "domainid", "type": "string" - } - ], - "related": "updateVlanIpRange", - "response": [ + }, { - "description": "the domain name of the VLAN IP range", - "name": "domain", + "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.", + "name": "resourcetypename", "type": "string" }, {}, { - "description": "the end ipv6 of the VLAN IP range", - "name": "endipv6", + "description": "path of the domain to which the resource limit belongs", + "name": "domainpath", "type": "string" }, { - "description": "indicates whether VLAN IP range is dedicated to system vms or not", - "name": "forsystemvms", - "type": "boolean" + "description": "the maximum number of the resource. A -1 means the resource currently has no limit.", + "name": "max", + "type": "long" }, { - "description": "the network id of vlan range", - "name": "networkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.", + "name": "resourcetype", + "type": "string" + } + ] + }, + { + "description": "Disables a user account", + "isasync": true, + "name": "disableUser", + "params": [ + { + "description": "Disables user by user ID.", + "length": 255, + "name": "id", + "related": "createUser,disableUser,enableUser,getUser", + "required": true, + "type": "uuid" + } + ], + "related": "createUser,enableUser,getUser", + "response": [ + { + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "the Pod name for the VLAN IP range", - "name": "podname", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "the project id of the vlan range", - "name": "projectid", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the project name of the vlan range", - "name": "project", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "the description of the VLAN IP range", - "name": "description", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the gateway of the VLAN IP range", - "name": "gateway", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the virtual network for the VLAN IP range", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" }, + {}, { - "description": "indicates whether IP range is dedicated to NSX resources or not", - "name": "fornsx", + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", "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": "the domain ID of the VLAN IP range", - "name": "domainid", + "description": "the type of the role", + "name": "roletype", "type": "string" }, { - "description": "the start ip of the VLAN IP range", - "name": "startip", + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "the end ip of the VLAN IP range", - "name": "endip", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the user email address", + "name": "email", + "type": "string" }, { - "description": "the netmask of the VLAN IP range", - "name": "netmask", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "path of the domain to which the VLAN IP range belongs", - "name": "domainpath", - "type": "string" + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" }, { - "description": "the Zone ID of the VLAN IP range", - "name": "zoneid", + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", - "type": "string" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "the ID of the VLAN IP range", - "name": "id", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "the start ipv6 of the VLAN IP range", - "name": "startipv6", - "type": "string" + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the Pod ID for the VLAN IP range", - "name": "podid", + "description": "the user firstname", + "name": "firstname", "type": "string" }, {}, { - "description": "the account of the VLAN IP range", - "name": "account", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the cidr of the VLAN IP range", - "name": "cidr", + "description": "the date and time the user account was created", + "name": "created", + "type": "date" + }, + { + "description": "the user state", + "name": "state", "type": "string" } ] }, { - "description": "Updates site to site vpn connection", - "isasync": true, - "name": "updateVpnConnection", + "description": "Lists all available ISO files.", + "isasync": false, + "name": "listIsos", "params": [ { - "description": "an optional field, whether to the display the vpn to the end user or not", + "description": "true if this ISO is ready to be deployed", "length": 255, - "name": "fordisplay", + "name": "isready", "required": false, - "since": "4.4", "type": "boolean" }, { - "description": "id of vpn connection", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "id", - "related": "updateVpnConnection", - "required": true, - "type": "uuid" + "name": "tags", + "required": false, + "type": "map" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "true if the ISO is publicly available to all users, false otherwise.", "length": 255, - "name": "customid", + "name": "ispublic", + "required": false, + "type": "boolean" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", "required": false, - "since": "4.4", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the project name", - "name": "project", + "description": "ID of the image or image cache store", + "length": 255, + "name": "imagestoreid", + "related": "listSwifts,addImageStoreS3,listImageStores,updateCloudToUseObjectStore", + "required": false, + "since": "4.19", + "type": "uuid" + }, + { + "description": "If set to true, list only unique isos across zones", + "length": 255, + "name": "showunique", + "required": false, + "since": "4.13.2", + "type": "boolean" + }, + { + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).", + "length": 255, + "name": "isofilter", + "required": false, "type": "string" }, { - "description": "the connection ID", - "name": "id", + "description": "the CPU arch of the ISO. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the ISO is bootable, false otherwise", + "length": 255, + "name": "bootable", + "required": false, + "type": "boolean" }, { - "description": "ESP policy of the customer gateway", - "name": "esppolicy", + "description": "the hypervisor for which to restrict the search", + "length": 255, + "name": "hypervisor", + "required": false, "type": "string" }, { - "description": "State of vpn connection", - "name": "passive", + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "ID of the storage pool", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": false, + "since": "4.19", + "type": "uuid" + }, + { + "description": "flag to display the resource image for the isos", + "length": 255, + "name": "showicon", + "required": false, "type": "boolean" }, { - "description": "the project id", + "description": "list ISO by ID", + "length": 255, + "name": "id", + "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "type": "uuid" + }, + { + "description": "show removed ISOs as well", + "length": 255, + "name": "showremoved", + "required": false, + "type": "boolean" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, "name": "projectid", - "type": "string" + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" }, { - "description": "State of vpn connection", - "name": "state", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list all ISOs by name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", - "type": "string" + "description": "the ID of the zone", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ + { + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" }, - {}, { - "description": "if Force NAT Encapsulation is enabled for customer gateway", - "name": "forceencap", - "type": "boolean" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" }, { - "description": "Lifetime of IKE SA of customer gateway", - "name": "ikelifetime", - "type": "long" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" + }, + { + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "the public IP address", - "name": "publicip", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "the vpn gateway ID", - "name": "s2svpngatewayid", + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "the customer gateway ID", - "name": "s2scustomergatewayid", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "the domain id of the owner", - "name": "domainid", - "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": "if DPD is enabled for customer gateway", - "name": "dpd", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the owner", - "name": "account", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", - "name": "splitconnections", - "type": "boolean" + "description": "CPU Arch of the template", + "name": "arch", + "type": "string" }, { - "description": "IPsec Preshared-Key of the customer gateway", - "name": "ipsecpsk", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "is connection for display to the regular user", - "name": "fordisplay", + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", "type": "boolean" }, { - "description": "Lifetime of ESP SA of customer gateway", - "name": "esplifetime", - "type": "long" + "description": "the account name to which the template belongs", + "name": "account", + "type": "string" }, { - "description": "IKE policy of the customer gateway", - "name": "ikepolicy", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", - "name": "ikeversion", - "type": "string" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" }, - {}, { - "description": "public ip address id of the customer gateway", - "name": "gateway", + "description": "path of the Domain the template belongs to", + "name": "domainpath", "type": "string" - } - ], - "since": "4.4" - }, - { - "description": "lists network that are using Palo Alto firewall device", - "isasync": false, - "name": "listPaloAltoFirewallNetworks", - "params": [ + }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "palo alto balancer device ID", - "length": 255, - "name": "lbdeviceid", - "related": "configurePaloAltoFirewall,listPaloAltoFirewalls", - "required": true, - "type": "uuid" + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", - "response": [ - { - "description": "the list of resource tags associated with network", + "description": "the list of resource tags associated", "name": "tags", "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, { "description": "resource type", "name": "resourcetype", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -106941,18 +100259,18 @@ "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { @@ -106961,527 +100279,358 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" } ], - "type": "list" - }, - { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", "type": "set" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the network's netmask", - "name": "netmask", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, + {}, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", - "type": "string" + "description": "the date this template was created", + "name": "created", + "type": "date" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "the network's gateway", - "name": "gateway", + "description": "the tag of this template", + "name": "templatetag", "type": "string" }, { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "related to what other network configuration", - "name": "related", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "the list of services", - "name": "service", - "response": [ - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - } - ], - "type": "list" - }, - { - "description": "the service name", - "name": "name", - "type": "string" - }, - { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" - } - ], - "type": "list" - }, - { - "description": "the id of the network", - "name": "id", + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "true network requires restart", - "name": "restartrequired", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", - "type": "string" - }, - { - "description": "the first IPv4 DNS for the network", - "name": "dns1", - "type": "string" - }, - { - "description": "the owner of the network", - "name": "account", + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, + {}, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "acl type - access type to the network", - "name": "acltype", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "true if network is system, false otherwise", - "name": "issystem", + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", "type": "boolean" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", - "type": "string" - }, - { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "list networks that are persistent", - "name": "ispersistent", + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", "type": "boolean" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the name of the network", - "name": "name", - "type": "string" - }, - { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" - }, - {}, - { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "checksum of the template", + "name": "checksum", "type": "string" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", - "type": "integer" - }, - {}, - { - "description": "The external id of the network", - "name": "externalid", - "type": "string" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", "type": "boolean" }, { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" }, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", - "type": "string" - }, - { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" - }, - { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", - "type": "integer" - }, - { - "description": "The IPv4 routing type of network", - "name": "ip4routing", - "type": "string" - }, - { - "description": "The internet protocol of network offering", - "name": "internetprotocol", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, { - "description": "AS NUMBER", - "name": "asnumber", + "description": "the size of the template", + "name": "size", "type": "long" - }, + } + ] + }, + { + "description": "Migrate current NFS secondary storages to use object store.", + "isasync": false, + "name": "updateCloudToUseObjectStore", + "params": [ { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" + "description": "the details for the image store. Example: details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "the image store provider name", + "length": 255, + "name": "provider", + "required": true, "type": "string" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "the name for the image store", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", + "description": "the URL for the image store", + "length": 255, + "name": "url", + "required": false, "type": "string" - }, + } + ], + "related": "listSwifts,addImageStoreS3,listImageStores", + "response": [ { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", - "type": "boolean" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", + "description": "the name of the image store", + "name": "name", "type": "string" }, { - "description": "the type of the network", - "name": "type", + "description": "the Zone ID of the image store", + "name": "zoneid", "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", - "type": "string" + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" }, { - "description": "the traffic type of the network", - "name": "traffictype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", + "description": "the ID of the image store", + "name": "id", "type": "string" }, + {}, { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", + "description": "the provider name of the image store", + "name": "providername", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, + {}, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "the Zone name of the image store", + "name": "zonename", "type": "string" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", - "type": "string" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, { - "description": "state of the network", - "name": "state", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "the physical network id", - "name": "physicalnetworkid", - "type": "string" - }, + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + } + ], + "since": "4.3.0" + }, + { + "description": "Lists autoscale policies.", + "isasync": false, + "name": "listAutoScalePolicies", + "params": [ { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the name of the autoscale policy", + "length": 255, + "name": "name", + "required": false, + "since": "4.18.0", "type": "string" }, { - "description": "the details of the network", - "name": "details", - "type": "map" + "description": "the ID of the condition of the policy", + "length": 255, + "name": "conditionid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", - "type": "string" + "description": "the ID of the autoscale vm group", + "length": 255, + "name": "vmgroupid", + "related": "listAutoScaleVmGroups", + "required": false, + "type": "uuid" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "ACL name associated with the VPC network", - "name": "aclname", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the domain id of the network owner", + "description": "list only resources belonging to the domain specified", + "length": 255, "name": "domainid", - "type": "string" - }, - { - "description": "VPC the network belongs to", - "name": "vpcid", - "type": "string" - }, - { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" - }, - { - "description": "the date this network was created", - "name": "created", - "type": "date" - }, - { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", - "type": "boolean" + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "zone id of the network", - "name": "zoneid", - "type": "string" - }, - { - "description": "the name of the zone the network belongs to", - "name": "zonename", - "type": "string" - } - ] - }, - { - "description": "Get the path associated with the provided volume UUID", - "isasync": false, - "name": "getPathForVolume", - "params": [ - { - "description": "CloudStack Volume UUID", + "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", "length": 255, - "name": "volumeid", - "required": true, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "The path field for the volume", - "name": "path", - "type": "string" - }, - {}, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "name": "action", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Lists management servers.", - "isasync": false, - "name": "listManagementServers", - "params": [ - { - "description": "the id of the management server", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "id", - "related": "listManagementServers", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, "type": "uuid" }, @@ -107495,46 +100644,51 @@ { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "the name of the management server", + "description": "the ID of the autoscale policy", "length": 255, - "name": "name", + "name": "id", + "related": "listAutoScalePolicies", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "pagesize", + "name": "account", "required": false, - "type": "integer" + "type": "string" } ], "related": "", "response": [ { - "description": "the state of the management server", - "name": "state", - "type": "state" + "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", + "name": "action", + "type": "string" }, { - "description": "the version of the management server", - "name": "version", + "description": "the autoscale policy ID", + "name": "id", "type": "string" }, { - "description": "the last time the host on which this Management Server runs was booted", - "name": "lastboottime", - "type": "date" + "description": "the duration for which the conditions have to be true before action is taken", + "name": "duration", + "type": "integer" }, - {}, { - "description": "the IP Address for this Management Server", - "name": "serviceip", + "description": "the project name of the autoscale policy", + "name": "project", + "type": "string" + }, + { + "description": "the domain ID of the autoscale policy", + "name": "domainid", "type": "string" }, { @@ -107543,468 +100697,316 @@ "type": "integer" }, { - "description": "the ID of the management server", - "name": "id", - "type": "string" - }, - { - "description": "the version of the java distribution running the management server process", - "name": "javaversion", - "type": "string" + "description": "the list of IDs of the conditions that are being evaluated on every interval", + "name": "conditions", + "type": "list" }, { - "description": "the java distribution name running the management server process", - "name": "javadistribution", + "description": "the project id autoscale policy", + "name": "projectid", "type": "string" }, {}, { - "description": "the name of the management server", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the running OS kernel version for this Management Server", - "name": "kernelversion", + "description": "name of the autoscale policy", + "name": "name", "type": "string" }, { - "description": "the last time this Management Server was started", - "name": "lastserverstart", - "type": "date" + "description": "the cool down period for which the policy should not be evaluated after the action has been taken", + "name": "quiettime", + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain name of the autoscale policy", + "name": "domain", "type": "string" }, { - "description": "the name of the OS distribution running on the management server", - "name": "osdistribution", + "description": "path of the domain to which the autoscale policy belongs", + "name": "domainpath", "type": "string" }, + {}, { - "description": "the last time this Management Server was stopped", - "name": "lastserverstop", - "type": "date" + "description": "the account owning the autoscale policy", + "name": "account", + "type": "string" } ] }, { - "description": "list Tungsten-Fabric policy", - "isasync": false, - "name": "listTungstenFabricPolicyRule", + "description": "Dedicates an existing IPv4 subnet for a zone to an account or a domain.", + "isasync": true, + "name": "dedicateIpv4SubnetForZone", "params": [ { - "description": "the uuid of Tungsten-Fabric policy", - "length": 255, - "name": "policyuuid", - "required": true, - "type": "string" - }, - { - "description": "the ID of zone", + "description": "project who will own the IPv4 subnet", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, "type": "uuid" }, { - "description": "List by keyword", + "description": "account who will own the IPv4 subnet", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", + "description": "domain ID of the account owning the IPv4 subnet", "length": 255, - "name": "page", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric rule", + "description": "Id of the guest network IPv4 subnet", "length": 255, - "name": "ruleuuid", - "required": false, - "type": "string" + "name": "id", + "related": "dedicateIpv4SubnetForZone", + "required": true, + "type": "uuid" } ], - "related": "addTungstenFabricPolicyRule", + "related": "", "response": [ { - "description": "Tungsten-Fabric policy destination start port", - "name": "deststartport", - "type": "int" - }, - { - "description": "Tungsten-Fabric policy destination network", - "name": "destnetwork", + "description": "guest IPv4 subnet", + "name": "subnet", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the domain name of the IPv4 subnet", + "name": "domain", "type": "string" }, { - "description": "Tungsten-Fabric policy uuid", - "name": "policyuuid", + "description": "id of the guest IPv4 subnet", + "name": "id", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric policy source start port", - "name": "srcstartport", - "type": "int" - }, - {}, - { - "description": "Tungsten-Fabric rule uuid", - "name": "uuid", + "description": "the domain ID of the IPv4 subnet", + "name": "domainid", "type": "string" }, { - "description": "Tungsten-Fabric policy source ip prefix length", - "name": "srcipprefixlen", - "type": "int" - }, - { - "description": "Tungsten-Fabric policy destination end port", - "name": "destendport", - "type": "int" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project id of the IPv4 subnet", + "name": "projectid", + "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric policy source end port", - "name": "srcendport", - "type": "int" - }, - { - "description": "Tungsten-Fabric policy source network", - "name": "srcnetwork", - "type": "string" - }, - { - "description": "Tungsten-Fabric policy action", - "name": "action", + "description": "id of zone to which the IPv4 subnet belongs to.", + "name": "zoneid", "type": "string" }, { - "description": "Tungsten-Fabric policy protocol", - "name": "protocol", + "description": "the account of the IPv4 subnet", + "name": "account", "type": "string" }, { - "description": "Tungsten-Fabric policy name", - "name": "direction", + "description": "name of zone to which the IPv4 subnet belongs to.", + "name": "zonename", "type": "string" }, { - "description": "Tungsten-Fabric policy destination ip prefix", - "name": "destipprefix", - "type": "string" + "description": "date when this IPv4 subnet was created.", + "name": "created", + "type": "date" }, + {}, { - "description": "Tungsten-Fabric policy destination ip prefix length", - "name": "destipprefixlen", - "type": "int" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Tungsten-Fabric policy source ip prefix", - "name": "srcipprefix", + "description": "the project name of the IPv4 subnet", + "name": "project", "type": "string" - }, - {} - ] + } + ], + "since": "4.20.0" }, { - "description": "delete Tungsten-Fabric policy", - "isasync": true, - "name": "deleteTungstenFabricPolicy", + "description": "Creates a range of Autonomous Systems for BGP Dynamic Routing", + "isasync": false, + "name": "createASNRange", "params": [ { - "description": "the Uuid of Tungsten-Fabric tag type", + "description": "the end AS Number", "length": 255, - "name": "policyuuid", + "name": "endasn", "required": true, - "type": "string" + "type": "long" }, { - "description": "the ID of zone", + "description": "the start AS Number", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "startasn", "required": true, - "type": "uuid" - } - ], - "response": [ - { - "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" + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Updates a vm group", - "isasync": false, - "name": "updateInstanceGroup", - "params": [ - { - "description": "Instance group ID", + "description": "the zone ID", "length": 255, - "name": "id", - "related": "updateInstanceGroup", + "name": "zoneid", + "related": "createZone,listZones,listZones", "required": true, "type": "uuid" - }, - { - "description": "new instance group name", - "length": 255, - "name": "name", - "required": false, - "type": "string" } ], - "related": "", + "related": "listASNRanges", "response": [ { - "description": "the project name of the instance group", - "name": "project", + "description": "ID of the AS Number Range", + "name": "id", "type": "string" }, { - "description": "the domain ID of the instance group", - "name": "domainid", - "type": "string" + "description": "Start AS Number", + "name": "startasn", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "Created date", + "name": "created", + "type": "date" }, {}, - { - "description": "path of the Domain the instance group belongs to", - "name": "domainpath", - "type": "string" - }, {}, - { - "description": "the domain name of the instance group", - "name": "domain", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "time and date the instance group was created", - "name": "created", - "type": "date" - }, - { - "description": "the project ID of the instance group", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the instance group", - "name": "id", - "type": "string" + "description": "End AS Number", + "name": "endasn", + "type": "long" }, { - "description": "the account owning the instance group", - "name": "account", + "description": "Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the instance group", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } - ] + ], + "since": "4.20.0" }, { - "description": "List the uploaded certificates for direct download templates", + "description": "List Shared FileSystems", "isasync": false, - "name": "listTemplateDirectDownloadCertificates", + "name": "listSharedFileSystems", "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "pagesize", + "name": "isrecursive", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "the zone where certificates are uploaded", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, "type": "uuid" }, { - "description": "list direct download certificate by ID", + "description": "the disk offering of the shared filesystem", "length": 255, - "name": "id", - "related": "listTemplateDirectDownloadCertificates", + "name": "diskofferingid", + "related": "", "required": false, "type": "uuid" }, { - "description": "if set to true: include the hosts where the certificate is uploaded to", + "description": "makes the API's response contains only the resource count", "length": 255, - "name": "listhosts", + "name": "retrieveonlyresourcecount", "required": false, "type": "boolean" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "the direct download certificate issuer", - "name": "issuer", - "type": "string" - }, - { - "description": "the zone id where the certificate is uploaded", - "name": "zoneid", - "type": "string" - }, - { - "description": "the zone name where the certificate is uploaded", - "name": "zonename", - "type": "string" - }, - { - "description": "the direct download certificate serial num", - "name": "serialnum", - "type": "string" - }, - {}, - { - "description": "the direct download certificate subject", - "name": "subject", - "type": "string" - }, - { - "description": "the direct download certificate issuer", - "name": "validity", - "type": "string" }, { - "description": "the direct download certificate id", - "name": "id", - "type": "string" + "description": "the service offering of the shared filesystem", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": false, + "type": "uuid" }, - {}, { - "description": "the hypervisor of the hosts where the certificate is uploaded", - "name": "hypervisor", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the direct download certificate alias", - "name": "alias", + "description": "the name of the shared filesystem", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the hosts where the certificate is uploaded to", - "name": "hostsmap", - "type": "list" + "description": "the ID of the network", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "type": "uuid" }, { - "description": "the direct download certificate version", - "name": "version", - "type": "string" + "description": "the ID of the availability zone", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": false, + "type": "uuid" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.17.0" - }, - { - "description": "List ucs manager", - "isasync": false, - "name": "listUcsManagers", - "params": [ - { - "description": "the zone id", + "description": "the ID of the shared filesystem", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "id", + "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering", "required": false, "type": "uuid" }, @@ -108016,258 +101018,290 @@ "type": "string" }, { - "description": "", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "page", + "name": "account", "required": false, - "type": "integer" + "type": "string" }, { - "description": "", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "pagesize", + "name": "tags", "required": false, - "type": "integer" + "type": "map" }, { - "description": "the ID of the ucs manager", + "description": "", "length": 255, - "name": "id", - "related": "listUcsManagers", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" } ], - "related": "", + "related": "changeSharedFileSystemDiskOffering", "response": [ - {}, { - "description": "the ID of the ucs manager", - "name": "id", + "description": "the shared filesystem provider", + "name": "provider", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the shared filesystem", + "name": "id", "type": "string" }, { - "description": "the zone ID of ucs manager", - "name": "zoneid", + "description": "name of the storage fs data volume", + "name": "volumename", "type": "string" }, - {}, { - "description": "the name of ucs manager", - "name": "name", + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", "type": "string" }, { - "description": "the url of ucs manager", - "name": "url", - "type": "string" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Upgrades domain router to a new service offering", - "isasync": false, - "name": "changeServiceForRouter", - "params": [ - { - "description": "The ID of the router", - "length": 255, - "name": "id", - "related": "listRouters,changeServiceForRouter,listInternalLoadBalancerVMs", - "required": true, - "type": "uuid" + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", + "type": "string" }, { - "description": "the service offering ID to apply to the domain router", - "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" - } - ], - "related": "listRouters,listInternalLoadBalancerVMs", - "response": [ + "description": "ID of the storage fs vm", + "name": "virtualmachineid", + "type": "string" + }, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" + "description": "name of the storage pool hosting the data volume", + "name": "storage", + "type": "string" }, { - "description": "the state of the router", - "name": "state", - "type": "state" + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the guest IP address for the router", - "name": "guestipaddress", + "description": "the project name of the shared filesystem", + "name": "project", "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", + "description": "size of the shared filesystem in GiB", + "name": "sizegb", "type": "string" }, { - "description": "path of the Domain the router belongs to", + "description": "path of the domain to which the shared filesystem", "name": "domainpath", "type": "string" }, { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" + }, + { + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", + "description": "the project ID of the shared filesystem", + "name": "projectid", "type": "string" }, { - "description": "the template name for the router", - "name": "templatename", + "description": "ID of the storage fs vm", + "name": "vmstate", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", + "type": "boolean" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "name of the shared filesystem", + "name": "name", "type": "string" }, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", + "description": "path to mount the shared filesystem", + "name": "path", + "type": "string" + }, + { + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "detailed response generated on running health check", - "name": "details", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the name of the health check on the router", - "name": "checkname", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "result of the health check", - "name": "success", - "type": "boolean" + "description": "tag key name", + "name": "key", + "type": "string" }, { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" + "description": "id of the resource", + "name": "resourceid", + "type": "string" }, { - "description": "the type of the health check - basic or advanced", - "name": "checktype", + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", + "description": "description of the shared filesystem", + "name": "description", "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the first DNS for the router", - "name": "dns1", + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "role of the domain router", - "name": "role", + "description": "Network ID of the shared filesystem", + "name": "networkid", "type": "string" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "the filesystem format", + "name": "filesystem", "type": "string" }, + {}, { - "description": "the date and time the router was created", - "name": "created", - "type": "date" - }, - { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", - "type": "string" + "description": "size of the shared filesystem", + "name": "size", + "type": "long" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", + "description": "ID of the storage fs data volume", + "name": "volumeid", "type": "string" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", - "type": "string" + "description": "the read (IO) of disk on the shared filesystem", + "name": "diskioread", + "type": "long" }, { - "description": "the domain associated with the router", + "description": "the domain associated with the shared filesystem", "name": "domain", "type": "string" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", "type": "string" }, - {}, { - "description": "the version of template", - "name": "version", + "description": "the state of the shared filesystem", + "name": "state", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the account associated with the shared filesystem", + "name": "account", "type": "string" }, { - "description": "the domain ID associated with the router", - "name": "domainid", - "type": "string" + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", "type": "string" }, { - "description": "the host ID for the router", - "name": "hostid", + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", "type": "string" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" + "description": "Name of the availability zone", + "name": "zonename", + "type": "string" }, { - "description": "the list of nics associated with the router", + "description": "the list of nics associated with the shared filesystem", "name": "nic", "response": [ { @@ -108276,58 +101310,53 @@ "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", "type": "integer" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { @@ -108341,372 +101370,400 @@ "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" } ], - "type": "set" - }, - { - "description": "the second DNS for the router", - "name": "dns2", - "type": "string" - }, - { - "description": "the name of the router", - "name": "name", - "type": "string" + "type": "list" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "Network name of the shared filesystem", + "name": "networkname", "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, + } + ], + "since": "4.20.0" + }, + { + "description": "adds baremetal rack configuration text", + "isasync": true, + "name": "addBaremetalRct", + "params": [ { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" - }, + "description": "http url to baremetal RCT configuration", + "length": 255, + "name": "baremetalrcturl", + "required": true, + "type": "object" + } + ], + "related": "", + "response": [ { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "id of rct", + "name": "id", "type": "string" }, { - "description": "the Pod ID for the router", - "name": "podid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the hostname for the router", - "name": "hostname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "url", + "name": "url", "type": "string" }, + {} + ] + }, + { + "description": "Updates a role", + "isasync": false, + "name": "updateRole", + "params": [ { - "description": "the template ID for the router", - "name": "templateid", + "description": "creates a role with this unique name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "The description of the role", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private).", + "length": 255, + "name": "ispublic", + "required": false, + "type": "boolean" }, - {}, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "The description of the role", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "ID of the role", + "length": 255, + "name": "id", + "related": "importRole,listRoles,updateRole", + "required": true, + "type": "uuid" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", + "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User", + "length": 255, + "name": "type", + "required": false, "type": "string" - }, + } + ], + "related": "importRole,listRoles", + "response": [ { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "the name of the role", + "name": "name", "type": "string" }, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", + "description": "true if role is default, false otherwise", + "name": "isdefault", "type": "boolean" }, + {}, { - "description": "the public IP address for the router", - "name": "publicip", - "type": "string" - }, - { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "the ID of the role", + "name": "id", "type": "string" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Zone name for the router", - "name": "zonename", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "the state of the role", + "name": "state", "type": "string" }, + {}, { - "description": "the version of scripts", - "name": "scriptsversion", - "type": "string" + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", + "type": "boolean" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the description of the role", + "name": "description", "type": "string" }, { - "description": "the id of the router", - "name": "id", + "description": "the type of the role", + "name": "type", "type": "string" } - ] + ], + "since": "4.9.0" }, { - "description": "Updates the volume.", - "isasync": true, - "name": "updateVolume", + "description": "Lists zones", + "isasync": false, + "name": "listZones", "params": [ { - "description": "an optional field, whether to the display the volume to the end user or not.", + "description": "List by keyword", "length": 255, - "name": "displayvolume", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "The chain info of the volume", + "description": "the network type of the zone that the virtual machine belongs to", "length": 255, - "name": "chaininfo", + "name": "networktype", "required": false, - "since": "4.4", "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "", "length": 255, - "name": "customid", + "name": "page", "required": false, - "since": "4.4", - "type": "string" + "type": "integer" }, { - "description": "The path of the volume", + "description": "the ID of the domain associated with the zone", "length": 255, - "name": "path", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Set delete protection for the volume. If true, The volume will be protected from deletion. Note: If the volume is managed by another service like autoscaling groups or CKS, delete protection will be ignored.", + "description": "", "length": 255, - "name": "deleteprotection", + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "flag to display the resource image for the zones", + "length": 255, + "name": "showicon", "required": false, - "since": "4.20.0", "type": "boolean" }, { - "description": "new name of the volume", + "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.", + "length": 255, + "name": "available", + "required": false, + "type": "boolean" + }, + { + "description": "the name of the zone", "length": 255, "name": "name", "required": false, - "since": "4.16", "type": "string" }, { - "description": "the ID of the disk volume", + "description": "flag to display the capacity of the zones", + "length": 255, + "name": "showcapacities", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the zone", "length": 255, "name": "id", - "related": "createVolume,updateVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", + "related": "createZone,listZones,listZones", "required": false, "type": "uuid" }, { - "description": "The state of the volume", + "description": "the IDs of the zones, mutually exclusive with id", "length": 255, - "name": "state", + "name": "ids", + "related": "createZone,listZones,listZones", "required": false, - "since": "4.3", - "type": "string" + "since": "4.19.0", + "type": "list" }, { - "description": "Destination storage pool UUID for the volume", + "description": "List zones by resource tags (key/value pairs)", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "name": "tags", "required": false, "since": "4.3", - "type": "uuid" + "type": "map" } ], - "related": "createVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume,importVolume", + "related": "createZone,listZones", "response": [ { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" - }, - { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the first DNS for the Zone", + "name": "dns1", "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" - }, - { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" - }, - { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "AS Number Range", + "name": "asnrange", + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the second DNS for the Zone", + "name": "dns2", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "The maximum value the MTU can have on the VR's public interfaces", + "name": "routerpublicinterfacemaxmtu", + "type": "integer" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" + "description": "Allow end users to specify VR MTU", + "name": "allowuserspecifyvrmtu", + "type": "boolean" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the list of resource tags associated", + "description": "the list of resource tags associated with zone.", "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -108715,23 +101772,23 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -108740,373 +101797,586 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" }, + { + "description": "the second internal DNS for the Zone", + "name": "internaldns2", + "type": "string" + }, + { + "description": "the network type of the zone; can be Basic or Advanced", + "name": "networktype", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the first IPv6 DNS for the Zone", + "name": "ip6dns1", + "type": "string" + }, + { + "description": "Zone Token", + "name": "zonetoken", + "type": "string" + }, + { + "description": "true, if zone is NSX enabled", + "name": "isnsxenabled", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the display text of the zone", + "name": "displaytext", + "type": "string" + }, + { + "description": "the second IPv6 DNS for the Zone", + "name": "ip6dns2", + "type": "string" + }, + { + "description": "the dhcp Provider for the Zone", + "name": "dhcpprovider", + "type": "string" + }, + { + "description": "the first internal DNS for the Zone", + "name": "internaldns1", + "type": "string" + }, + { + "description": "the type of the zone - core or edge", + "name": "type", + "type": "string" + }, + { + "description": "Zone description", + "name": "description", + "type": "string" + }, + { + "description": "true if local storage offering enabled, false otherwise", + "name": "localstorageenabled", + "type": "boolean" + }, + { + "description": "true, if zone contains clusters and hosts from different CPU architectures", + "name": "ismultiarch", + "type": "boolean" + }, + { + "description": "true if security groups support is enabled, false otherwise", + "name": "securitygroupsenabled", + "type": "boolean" + }, {}, { - "description": "name of the availability zone", - "name": "zonename", + "description": "the UUID of the containing domain, null for public zones", + "name": "domainid", "type": "string" }, { - "description": "shared or local storage", - "name": "storagetype", + "description": "the capacity of the Zone", + "name": "capacity", + "response": [ + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + }, + { + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "the Pod name", + "name": "podname", + "type": "string" + }, + { + "description": "the Cluster name", + "name": "clustername", + "type": "string" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + }, + { + "description": "the Pod ID", + "name": "podid", + "type": "string" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" + }, + { + "description": "the Cluster ID", + "name": "clusterid", + "type": "string" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + } + ], + "type": "list" + }, + { + "description": "the name of the containing domain, null for public zones", + "name": "domainname", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "Zone id", + "name": "id", "type": "string" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "the allocation state of the cluster", + "name": "allocationstate", + "type": "string" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", "type": "map" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "The maximum value the MTU can have on the VR's private interfaces", + "name": "routerprivateinterfacemaxmtu", + "type": "integer" }, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "Network domain name for the networks in the zone", + "name": "domain", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the guest CIDR address for the Zone", + "name": "guestcidraddress", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "Zone name", + "name": "name", "type": "string" - }, - { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" - }, + } + ] + }, + { + "description": "Lists remote access vpns", + "isasync": false, + "name": "listRemoteAccessVpns", + "params": [ { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" - }, - { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", - "type": "string" + "description": "public ip address id of the vpn server", + "length": 255, + "name": "publicipid", + "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": false, + "type": "uuid" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", - "type": "string" + "description": "Lists remote access vpn rule with the specified ID", + "length": 255, + "name": "id", + "related": "listRemoteAccessVpns,updateRemoteAccessVpn", + "required": false, + "since": "4.3", + "type": "uuid" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", - "type": "string" + "description": "list remote access VPNs for certain network", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listNetscalerLoadBalancerNetworks,listBrocadeVcsDeviceNetworks", + "required": false, + "since": "4.3", + "type": "uuid" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" - }, + } + ], + "related": "updateRemoteAccessVpn", + "response": [ { - "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": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the range of ips to allocate to the clients", + "name": "iprange", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", - "type": "string" + "description": "is vpn for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" - }, - { - "description": "pod name of the volume", - "name": "podname", + "description": "the ipsec preshared key", + "name": "presharedkey", "type": "string" }, + {}, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "the domain id of the account of the remote access vpn", + "name": "domainid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "path of the domain to which the remote access vpn belongs", + "name": "domainpath", "type": "string" }, + {}, { - "description": "name of the disk volume", - "name": "name", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the account of the remote access vpn", + "name": "account", + "type": "string" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the public ip address of the vpn server", + "name": "publicipid", "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "the id of the remote access vpn", + "name": "id", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the domain name of the account of the remote access vpn", + "name": "domain", "type": "string" }, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" - }, + "description": "the public ip address of the vpn server", + "name": "publicip", + "type": "string" + } + ] + }, + { + "description": "Removes a public IP address from quarantine. Only IPs in active quarantine can be removed.", + "isasync": false, + "name": "removeQuarantinedIp", + "params": [ { - "description": "the path of the volume", - "name": "path", + "description": "The reason for removing the public IP address from quarantine prematurely.", + "length": 255, + "name": "removalreason", + "required": true, "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "The ID of the public IP address in active quarantine. Either the IP address is informed, or the ID of the IP address in quarantine.", + "length": 255, + "name": "id", + "related": "listQuarantinedIps,updateQuarantinedIp,removeQuarantinedIp", + "required": false, + "type": "uuid" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "The public IP address in active quarantine. Either the IP address is informed, or the ID of the IP address in quarantine.", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" + } + ], + "related": "listQuarantinedIps,updateQuarantinedIp", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "ID of the quarantine process.", + "name": "id", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "The public IP address in quarantine.", + "name": "ipaddress", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "When the quarantine was removed.", + "name": "removed", + "type": "date" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "The reason for removing the IP from quarantine prematurely.", + "name": "removalreason", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "Account name of the previous public IP address owner.", + "name": "previousownername", + "type": "string" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "ID of the account that removed the IP from quarantine.", + "name": "removeraccountid", "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "End date for the quarantine.", + "name": "enddate", + "type": "date" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "Account ID of the previous public IP address owner.", + "name": "previousownerid", + "type": "string" }, + {}, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "When the quarantine was created.", + "name": "created", + "type": "date" }, + {} + ], + "since": "4.19" + }, + { + "description": "Deletes a Webhook", + "isasync": false, + "name": "deleteWebhook", + "params": [ { - "description": "display name of the virtual machine", - "name": "vmdisplayname", - "type": "string" - }, + "description": "The ID of the Webhook", + "length": 255, + "name": "id", + "related": "createWebhook,listWebhookDeliveries", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.20.0" + }, + { + "description": "Deletes a network ACL", + "isasync": true, + "name": "deleteNetworkACLList", + "params": [ { - "description": "the disk utilization", - "name": "utilization", - "type": "string" - }, + "description": "the ID of the network ACL", + "length": 255, + "name": "id", + "related": "createNetworkACLList", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the status of the volume", - "name": "status", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, {}, + {}, { - "description": "ID of the disk volume", - "name": "id", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } ] }, { - "description": "Lists traffic types of a given physical network.", - "isasync": false, - "name": "listTrafficTypes", + "description": "Removes secondary IP from the NIC.", + "isasync": true, + "name": "removeIpFromNic", "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the Physical Network ID", + "description": "the ID of the secondary ip address to nic", "length": 255, - "name": "physicalnetworkid", + "name": "id", "related": "", "required": true, "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" } ], - "related": "", "response": [ { "description": "the current status of the latest async job acting on this object", @@ -109114,635 +102384,854 @@ "type": "integer" }, { - "description": "the provider name", - "name": "name", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, + {} + ] + }, + { + "description": "Releases a Public IP range back to the system pool", + "isasync": false, + "name": "releasePublicIpRange", + "params": [ { - "description": "services for this provider", - "name": "servicelist", - "type": "list" + "description": "the id of the Public IP range", + "length": 255, + "name": "id", + "related": "dedicatePublicIpRange", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "state of the network provider", - "name": "state", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, {}, { - "description": "uuid of the network provider", - "name": "id", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" } - ], - "since": "3.0.0" + ] }, { - "description": "Updates account information for the authenticated user", + "description": "lists network that are using a netscaler load balancer device", "isasync": false, - "name": "updateAccount", + "name": "listNetscalerLoadBalancerNetworks", "params": [ { - "description": "The UUID of the domain where the account exists", + "description": "", "length": 255, - "name": "domainid", - "related": "listDomains,listDomains", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "Network domain for the account's networks; empty string will update domainName with NULL value", + "description": "", "length": 255, - "name": "networkdomain", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "The UUID of the dynamic role to set for the account", + "description": "netscaler load balancer device ID", "length": 255, - "name": "roleid", - "related": "createRole,listRoles,updateRole", - "required": false, + "name": "lbdeviceid", + "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers,registerNetscalerControlCenter", + "required": true, "type": "uuid" }, { - "description": "New name for the account", - "length": 255, - "name": "newname", - "required": false, - "type": "string" - }, - { - "description": "Details for the account used to store specific parameters", - "length": 255, - "name": "accountdetails", - "required": false, - "type": "map" - }, - { - "description": "Current account name", + "description": "List by keyword", "length": 255, - "name": "account", + "name": "keyword", "required": false, "type": "string" - }, - { - "description": "Account UUID", - "length": 255, - "name": "id", - "related": "disableAccount,enableAccount,updateAccount,listAccounts", - "required": false, - "type": "uuid" } ], - "related": "disableAccount,enableAccount,listAccounts", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listBrocadeVcsDeviceNetworks", "response": [ { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", - "type": "long" - }, - { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", - "type": "integer" - }, - { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" }, { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", + "description": "the second IPv4 DNS for the network", + "name": "dns2", "type": "string" }, { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", + "type": "string" }, { - "description": "the id of the account", - "name": "id", + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", "type": "string" }, { - "description": "the default zone of the account", - "name": "defaultzoneid", + "description": "ACL name associated with the VPC network", + "name": "aclname", "type": "string" }, { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", "type": "integer" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", - "type": "string" + "description": "the details of the network", + "name": "details", + "type": "map" }, { - "description": "the state of the account", - "name": "state", + "description": "the id of the network", + "name": "id", "type": "string" }, { - "description": "name of the Domain the account belongs to", - "name": "domain", - "type": "string" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", "type": "string" }, { - "description": "the name of the account", - "name": "name", + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "acl type - access type to the network", + "name": "acltype", "type": "string" }, { - "description": "the list of users associated with account", - "name": "user", + "description": "the list of resource tags associated with network", + "name": "tags", "response": [ { - "description": "the domain ID of the user", - "name": "domainid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the domain name of the user", + "description": "the domain associated with the tag", "name": "domain", "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "the ID of the role", - "name": "roleid", - "type": "string" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, - { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the user ID", - "name": "id", - "type": "string" - }, - { - "description": "the account name of the user", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the user lastname", - "name": "lastname", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the type of the role", - "name": "roletype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the user name", - "name": "username", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the user firstname", - "name": "firstname", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the api key of the user", - "name": "apikey", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" - }, + } + ], + "type": "list" + }, + { + "description": "list networks available for vm deployment", + "name": "canusefordeploy", + "type": "boolean" + }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + { + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" + }, + { + "description": "the project name of the address", + "name": "project", + "type": "string" + }, + { + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" + }, + { + "description": "The IPv4 routing type of network", + "name": "ip4routing", + "type": "string" + }, + { + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", + "type": "string" + }, + { + "description": "the name of the Network associated with this network", + "name": "associatednetwork", + "type": "string" + }, + { + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" + }, + { + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", + "type": "string" + }, + { + "description": "network offering id the network is created from", + "name": "networkofferingid", + "type": "string" + }, + { + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" + }, + { + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", + "type": "string" + }, + { + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", + "type": "string" + }, + { + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" + }, + {}, + { + "description": "true network requires restart", + "name": "restartrequired", + "type": "boolean" + }, + { + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", + "type": "boolean" + }, + { + "description": "related to what other network configuration", + "name": "related", + "type": "string" + }, + { + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" + }, + { + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", + "type": "string" + }, + { + "description": "the traffic type of the network", + "name": "traffictype", + "type": "string" + }, + { + "description": "the domain name of the network owner", + "name": "domain", + "type": "string" + }, + { + "description": "the name of the zone the network belongs to", + "name": "zonename", + "type": "string" + }, + { + "description": "the name of the network", + "name": "name", + "type": "string" + }, + { + "description": "VPC the network belongs to", + "name": "vpcid", + "type": "string" + }, + { + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", + "type": "boolean" + }, + { + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", + "type": "string" + }, + { + "description": "the displaytext of the network", + "name": "displaytext", + "type": "string" + }, + { + "description": "The external id of the network", + "name": "externalid", + "type": "string" + }, + { + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, + { + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" + }, + { + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + {}, + { + "description": "The internet protocol of network offering", + "name": "internetprotocol", + "type": "string" + }, + { + "description": "the first IPv4 DNS for the network", + "name": "dns1", + "type": "string" + }, + { + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" + }, + { + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", + "type": "string" + }, + { + "description": "the network's gateway", + "name": "gateway", + "type": "string" + }, + { + "description": "the list of services", + "name": "service", + "response": [ { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + } + ], + "type": "list" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "the service name", + "name": "name", "type": "string" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, - { - "description": "the user email address", - "name": "email", - "type": "string" + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + } + ], + "type": "list" } ], "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" + "description": "the type of the network", + "name": "type", + "type": "string" }, { - "description": "the total number of projects the account can own", - "name": "projectlimit", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" + "description": "zone id of the network", + "name": "zoneid", + "type": "string" }, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "details for the account", - "name": "accountdetails", - "type": "map" + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", + "type": "boolean" }, { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", + "description": "path of the Domain the network belongs to", + "name": "domainpath", "type": "string" }, { - "description": "path of the Domain the account belongs to", - "name": "domainpath", + "description": "name of the network offering the network is created from", + "name": "networkofferingname", "type": "string" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", + "description": "the owner of the network", + "name": "account", "type": "string" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", - "type": "integer" + "description": "the date this network was created", + "name": "created", + "type": "date" }, { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" }, { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", + "description": "the domain id of the network owner", + "name": "domainid", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" + "description": "state of the network", + "name": "state", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the total number of networks the account can own", - "name": "networklimit", - "type": "string" + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", + "description": "ACL Id associated with the VPC network", + "name": "aclid", "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "the network's netmask", + "name": "netmask", "type": "string" + } + ] + }, + { + "description": "Starts a system virtual machine.", + "isasync": true, + "name": "startSystemVm", + "params": [ + { + "description": "The ID of the system virtual machine", + "length": 255, + "name": "id", + "related": "migrateSystemVm,startSystemVm", + "required": true, + "type": "uuid" + } + ], + "related": "migrateSystemVm", + "response": [ + { + "description": "the date and time the system VM was created", + "name": "created", + "type": "date" }, { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", "type": "string" }, + {}, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", + "description": "the Zone name for the system VM", + "name": "zonename", "type": "string" }, { - "description": "the date when this account was created", - "name": "created", - "type": "date" + "description": "guest vlan range", + "name": "guestvlan", + "type": "string" }, { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" + "description": "the second DNS for the system VM", + "name": "dns2", + "type": "string" }, { - "description": "the name of the role", - "name": "rolename", + "description": "the link local IP address for the system vm", + "name": "linklocalip", "type": "string" }, { - "description": "the list of acl groups that account belongs to", - "name": "groups", - "type": "list" + "description": "the private IP address for the system VM", + "name": "privateip", + "type": "string" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", - "type": "long" + "description": "the host ID for the system VM", + "name": "hostid", + "type": "string" }, { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" + "description": "the Pod ID for the system VM", + "name": "podid", + "type": "string" }, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "the systemvm agent version", + "name": "version", + "type": "string" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", - "type": "boolean" + "description": "the Pod name for the system VM", + "name": "podname", + "type": "string" }, { - "description": "the total volume available for this account", - "name": "volumeavailable", + "description": "the public IP address for the system VM", + "name": "publicip", "type": "string" }, { - "description": "id of the Domain the account belongs to", - "name": "domainid", + "description": "the agent state of the system VM", + "name": "agentstate", "type": "string" }, { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", - "type": "string" + "description": "public vlan range", + "name": "publicvlan", + "type": "list" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", + "description": "the ID of the system VM", + "name": "id", "type": "string" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the template ID for the system VM", + "name": "templateid", + "type": "string" }, - {}, - {}, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", "type": "string" }, { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "the name of the system VM", + "name": "name", "type": "string" - } - ] - }, - { - "description": "Adds secondary storage.", - "isasync": false, - "name": "addSecondaryStorage", - "params": [ + }, { - "description": "the Zone ID for the secondary storage", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", + "type": "integer" }, { - "description": "the URL for the secondary storage", - "length": 255, - "name": "url", - "required": true, + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" - } - ], - "related": "listSwifts", - "response": [ + }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the name of the image store", - "name": "name", + "description": "the public MAC address for the system VM", + "name": "publicmacaddress", "type": "string" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" + }, + { + "description": "the private netmask for the system VM", + "name": "privatenetmask", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", "name": "jobid", "type": "string" }, { - "description": "the url of the image store", - "name": "url", + "description": "the network domain for the system VM", + "name": "networkdomain", "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the link local MAC address for the system vm", + "name": "linklocalmacaddress", + "type": "string" }, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "the protocol of the image store", - "name": "protocol", + "description": "the public netmask for the system VM", + "name": "publicnetmask", "type": "string" }, { - "description": "the ID of the image store", - "name": "id", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, - {}, { - "description": "the Zone ID of the image store", + "description": "the template name for the system VM", + "name": "templatename", + "type": "string" + }, + { + "description": "the Zone ID for the system VM", "name": "zoneid", "type": "string" }, + { + "description": "the state of the system VM", + "name": "state", + "type": "string" + }, + { + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", + "type": "string" + }, {}, { "description": "the current status of the latest async job acting on this object", @@ -109752,829 +103241,746 @@ ] }, { - "description": "Updates properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call.", + "description": "Lists supported methods of network isolation", "isasync": false, - "name": "updateVirtualMachine", + "name": "listNetworkIsolationMethods", "params": [ { - "description": "an optional field, whether to the display the vm to the end user or not.", + "description": "", "length": 255, - "name": "displayvm", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", + "description": "List by keyword", "length": 255, - "name": "securitygroupnames", - "related": "", + "name": "keyword", "required": false, - "type": "list" + "type": "string" }, { - "description": "new host name of the vm. The VM has to be stopped/started for this update to take affect", + "description": "", "length": 255, - "name": "name", + "name": "pagesize", "required": false, - "since": "4.4", + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Network isolation method name", + "name": "name", "type": "string" }, + {}, + {}, { - "description": "true if high-availability is enabled for the virtual machine, false otherwise", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.2.0" + }, + { + "description": "Registers an existing VNF template into the CloudStack cloud. ", + "isasync": false, + "name": "registerVnfTemplate", + "params": [ + { + "description": "true if the template supports the sshkey upload feature; default is false", "length": 255, - "name": "haenable", + "name": "sshkeyenabled", "required": false, "type": "boolean" }, { - "description": "Set delete protection for the virtual machine. If true, the instance will be protected from deletion. Note: If the instance is managed by another service like autoscaling groups or CKS, delete protection will be ignored.", + "description": "A list of zone ids where the template will be hosted. Use this parameter if the template needs to be registered to multiple zones in one go. Use zoneid if the template needs to be registered to only one zone.Passing only -1 to this will cause the template to be registered as a cross zone template and will be copied to all zones. ", "length": 255, - "name": "deleteprotection", + "name": "zoneids", + "related": "createZone,listZones", "required": false, - "since": "4.20.0", - "type": "boolean" + "type": "list" }, { - "description": "used to specify the parameters values for the variables in userdata.", + "description": "VNF details in key/value pairs using format vnfdetails[i].keyname=keyvalue. Example: vnfdetails[0].vendor=xxx&&vnfdetails[0].version=2.0", "length": 255, - "name": "userdatadetails", + "name": "vnfdetails", "required": false, - "since": "4.18", "type": "map" }, { - "description": "the ID of the userdata", + "description": "VNF nics in key/value pairs using format vnfnics[i].keyname=keyvalue. Example: vnfnics[0].deviceid=0&&vnfnics[0].name=FirstNIC&&vnfnics[0].required=true&&vnfnics[1].deviceid=1&&vnfnics[1].name=SecondNIC", "length": 255, - "name": "userdataid", - "related": "", + "name": "vnfnics", "required": false, - "since": "4.18", - "type": "uuid" + "type": "map" }, { - "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", + "description": "the tag for this template.", + "length": 255, + "name": "templatetag", "required": false, - "since": "4.16.0", "type": "string" }, { - "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "description": "true if this template is a featured template, false otherwise", "length": 255, - "name": "cleanupdetails", + "name": "isfeatured", "required": false, "type": "boolean" }, { - "description": "user generated name", + "description": "the checksum value of this template. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", "length": 255, - "name": "displayname", + "name": "checksum", "required": false, "type": "string" }, { - "description": "true if VM contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory. This can be updated only when dynamic scaling is enabled on template, service offering and the corresponding global setting", + "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", "length": 255, - "name": "isdynamicallyscalable", + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "true if the template supports the password reset feature; default is false", + "length": 255, + "name": "passwordenabled", "required": false, "type": "boolean" }, { - "description": "group of the virtual machine", + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "group", + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "(VMware only) true if VM deployments should preserve all the configurations defined for this template", + "length": 255, + "name": "deployasis", + "required": false, + "since": "4.15.1", + "type": "boolean" + }, + { + "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", + "length": 255, + "name": "templatetype", "required": false, + "since": "4.19.0", "type": "string" }, { - "description": "instance name of the user vm", + "description": "the ID of the zone the template is to be hosted on", "length": 255, - "name": "instancename", + "name": "zoneid", + "related": "createZone,listZones", "required": false, - "since": "4.4", + "type": "uuid" + }, + { + "description": "the target hypervisor for the template", + "length": 255, + "name": "hypervisor", + "required": true, "type": "string" }, { - "description": "the ID of the OS type that best represents this VM.", + "description": "the ID of the OS Type that best represents the OS of this template. Not applicable with VMware, as we honour what is defined in the template", "length": 255, "name": "ostypeid", - "related": "addGuestOs", + "related": "", "required": false, "type": "uuid" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "the format for the template. Possible values include QCOW2, RAW, VHD and OVA.", "length": 255, - "name": "customid", + "name": "format", + "required": true, + "type": "string" + }, + { + "description": "an optional accountName. Must be used with domainId.", + "length": 255, + "name": "account", "required": false, - "since": "4.4", "type": "string" }, { - "description": "list of security group ids to be applied on the virtual machine.", + "description": "true if the template is available to all accounts; default is true", "length": 255, - "name": "securitygroupids", - "related": "", + "name": "ispublic", "required": false, - "type": "list" + "type": "boolean" }, { - "description": "Details in key/value pairs. 'extraconfig' is not allowed to be passed in details.", + "description": "true if this template requires HVM", "length": 255, - "name": "details", + "name": "requireshvm", "required": false, - "type": "map" + "type": "boolean" }, { - "description": "an optional URL encoded string that can be passed to the virtual machine upon successful deployment", - "length": 5120, - "name": "extraconfig", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "length": 255, + "name": "isdynamicallyscalable", "required": false, - "since": "4.12", - "type": "string" + "type": "boolean" }, { - "description": "The ID of the virtual machine", + "description": "32 or 64 bits support. 64 by default", "length": 255, - "name": "id", - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "name": "bits", + "required": false, + "type": "integer" + }, + { + "description": "the name of the template", + "length": 255, + "name": "name", "required": true, + "type": "string" + }, + { + "description": "true if the template type is routing i.e., if template is used to deploy router", + "length": 255, + "name": "isrouting", + "required": false, + "type": "boolean" + }, + { + "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", + "type": "string" + }, + { + "description": "Register template for the project", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, "type": "uuid" }, { - "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com", + "description": "the URL of where the template is hosted. Possible URL include http:// and https://", + "length": 2048, + "name": "url", + "required": true, + "type": "string" + }, + { + "description": "true if the template or its derivatives are extractable; default is false", "length": 255, - "name": "dhcpoptionsnetworklist", + "name": "isextractable", "required": false, - "type": "map" + "type": "boolean" + }, + { + "description": "The display text of the template, defaults to 'name'.", + "length": 4096, + "name": "displaytext", + "required": false, + "type": "string" + }, + { + "description": "true if template should bypass Secondary Storage and be downloaded to Primary Storage on deployment", + "length": 255, + "name": "directdownload", + "required": false, + "type": "boolean" } ], - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "response": [ { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - } - ], - "type": "set" - } - ], + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" + }, + { + "description": "the project id of the template", + "name": "projectid", + "type": "string" + }, + { + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "the name of the OS type for this template.", + "name": "ostypename", + "type": "string" + }, + { + "description": "the type of the template", + "name": "templatetype", + "type": "string" + }, + { + "description": "the status of the template", + "name": "status", + "type": "string" + }, + {}, + { + "description": "the ID of the OS type for this template.", + "name": "ostypeid", + "type": "string" + }, + { + "description": "the name of the zone for this template", + "name": "zonename", + "type": "string" + }, + { + "description": "the ID of the domain to which the template belongs", + "name": "domainid", + "type": "string" + }, + { + "description": "the name of userdata linked to this template", + "name": "userdataname", + "type": "string" + }, + { + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", "type": "set" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the date this template was created", + "name": "created", + "type": "date" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the name of the domain to which the template belongs", + "name": "domain", + "type": "string" + }, + { + "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": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" + }, + { + "description": "checksum of the template", + "name": "checksum", + "type": "string" + }, + { + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" + }, + { + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" + }, + { + "description": "the tag of this template", + "name": "templatetag", + "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the account id to which the template belongs", + "name": "accountid", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "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 host for the virtual machine", - "name": "hostname", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the name of the secondary storage host for the template", + "name": "hostname", + "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", + "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the ID of the zone for this template", + "name": "zoneid", + "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the template ID", + "name": "id", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, - {}, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the size of the template", + "name": "size", + "type": "long" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the name of the affinity group", - "name": "name", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain ID of the affinity group", + "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project name of the affinity group", + "description": "the project name where tag belongs to", "name": "project", "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], "type": "set" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", + "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" + } + ], + "since": "4.19.0" + }, + { + "description": "Lists host HA resources", + "isasync": false, + "name": "listHostHAResources", + "params": [ + { + "description": "List by host ID", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", + "required": false, + "type": "uuid" + } + ], + "related": "configureHAForHost,enableHAForHost,disableHAForHost,listHostHAProviders", + "response": [ + { + "description": "the host HA provider", + "name": "haprovider", "type": "string" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "operation status", + "name": "status", "type": "boolean" }, + {}, { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "if host HA is enabled for the host", + "name": "haenable", + "type": "boolean" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the HA state of the host", + "name": "hastate", + "type": "hastate" + } + ], + "since": "4.11" + }, + { + "description": "Lists VM stats", + "isasync": false, + "name": "listVirtualMachinesUsageHistory", + "params": [ + { + "description": "start date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", + "length": 255, + "name": "startdate", + "required": false, + "type": "date" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "name of the virtual machine (a substring match is made against the parameter value returning the data for all matching VMs).", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the ID of the virtual machine.", + "length": 255, + "name": "id", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "uuid" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "end date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", + "length": 255, + "name": "enddate", + "required": false, + "type": "date" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, + "description": "the IDs of the virtual machines, mutually exclusive with id.", + "length": 255, + "name": "ids", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": false, + "type": "list" + } + ], + "related": "listSystemVmsUsageHistory", + "response": [ { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" + "description": "the list of VM stats", + "name": "stats", + "type": "list" }, + {}, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { @@ -110583,1806 +103989,1529 @@ "type": "integer" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the name of the virtual machine", + "name": "name", + "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, + {} + ], + "since": "4.17" + }, + { + "description": "Declare host as 'Degraded'. Host must be on 'Disconnected' or 'Alert' state. The ADMIN must be sure that there are no VMs running on the respective host otherwise this command might corrupted VMs that were running on the 'Degraded' host.", + "isasync": true, + "name": "declareHostAsDegraded", + "params": [ { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "host ID", + "length": 255, + "name": "id", + "related": "addBaremetalHost,cancelHostAsDegraded,declareHostAsDegraded,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", + "response": [ + { + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", + "type": "boolean" + }, + { + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" + }, + { + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" + }, + { + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" + }, + { + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" + }, + { + "description": "the Pod ID of the host", + "name": "podid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", "type": "long" }, - {}, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "the Zone ID of the host", "name": "zoneid", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" + "description": "the state of the host", + "name": "state", + "type": "status" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" + }, + { + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "GPU cards present in the host", + "name": "gpugroup", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + } + ], + "type": "list" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "GPU cards present in the host", + "name": "gpugroupname", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" + }, + { + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" + }, + { + "description": "the amount of the host's CPU currently used", + "name": "cpuused", + "type": "string" + }, + { + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" + }, + { + "description": "the cluster ID of the host", + "name": "clusterid", + "type": "string" + }, + {}, + { + "description": "the admin that annotated this host", + "name": "username", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", "type": "long" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" + }, + { + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" + }, + { + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the Pod name of the host", + "name": "podname", + "type": "string" + }, + { + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", + "type": "string" + }, + { + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" + }, + { + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", "type": "long" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the host version", + "name": "version", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, - {}, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, + {}, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" + }, + { + "description": "the Zone name of the host", "name": "zonename", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" + }, + { + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" + }, + { + "description": "CPU Arch of the host", + "name": "arch", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - } - ], - "type": "set" + "description": "the hypervisor version", + "name": "hypervisorversion", + "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", + "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "comma-separated list of tags for the host", + "name": "hosttags", + "type": "string" } - ] + ], + "since": "4.16.0.0" }, { - "description": "Disables an account", - "isasync": true, - "name": "disableAccount", + "description": "List a storage network IP range.", + "isasync": false, + "name": "listStorageNetworkIpRange", "params": [ { - "description": "If true, only lock the account; else disable the account", + "description": "optional parameter. Storaget network IP range uuid, if specicied, using it to search the range.", "length": 255, - "name": "lock", - "required": true, - "type": "boolean" + "name": "id", + "related": "createStorageNetworkIpRange,listStorageNetworkIpRange", + "required": false, + "type": "uuid" }, { - "description": "Account id", + "description": "", "length": 255, - "name": "id", - "related": "disableAccount,enableAccount,listAccounts", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "Disables specified account in this domain.", + "description": "optional parameter. Pod uuid, if specicied and range uuid is absent, using it to search the range.", "length": 255, - "name": "domainid", - "related": "listDomains,listDomains", + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", "required": false, "type": "uuid" }, { - "description": "Disables specified account.", + "description": "", "length": 255, - "name": "account", + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", "required": false, "type": "string" + }, + { + "description": "optional parameter. Zone uuid, if specicied and both pod uuid and range uuid are absent, using it to search the range.", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones", + "required": false, + "type": "uuid" } ], - "related": "enableAccount,listAccounts", + "related": "createStorageNetworkIpRange", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the uuid of storage network IP range.", + "name": "id", + "type": "string" + }, + { + "description": "the ID or VID of the VLAN.", + "name": "vlan", "type": "integer" }, { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", + "description": "the netmask of the storage network IP range", + "name": "netmask", "type": "string" }, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", + "description": "the network uuid of storage network IP range", + "name": "networkid", "type": "string" }, + {}, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", + "description": "the Pod uuid for the storage network IP range", + "name": "podid", "type": "string" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "the end ip of the storage network IP range", + "name": "endip", + "type": "string" }, { - "description": "the list of acl groups that account belongs to", - "name": "groups", - "type": "list" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", - "type": "long" + "description": "the gateway of the storage network IP range", + "name": "gateway", + "type": "string" }, { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", + "description": "the Zone uuid of the storage network IP range", + "name": "zoneid", "type": "string" }, + {}, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, + "description": "the start ip of the storage network IP range", + "name": "startip", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Deletes a specified domain", + "isasync": true, + "name": "deleteDomain", + "params": [ { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" + "description": "true if all domain resources (child domains, accounts) have to be cleaned up, false otherwise", + "length": 255, + "name": "cleanup", + "required": false, + "type": "boolean" }, { - "description": "the total number of networks the account can own", - "name": "networklimit", - "type": "string" - }, + "description": "ID of domain to delete", + "length": 255, + "name": "id", + "related": "listDomainChildren,listDomains", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "the total number of projects the account can own", - "name": "projectlimit", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, {}, { - "description": "the name of the role", - "name": "rolename", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", - "type": "string" - }, - { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "Configures a virtual router element.", + "isasync": true, + "name": "configureVirtualRouterElement", + "params": [ { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" + "description": "Enabled/Disabled the service provider", + "length": 255, + "name": "enabled", + "required": true, + "type": "boolean" }, { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", - "type": "long" - }, + "description": "the ID of the virtual router provider", + "length": 255, + "name": "id", + "related": "configureVirtualRouterElement,listVirtualRouterElements", + "required": true, + "type": "uuid" + } + ], + "related": "listVirtualRouterElements", + "response": [ { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, + {}, { - "description": "the network domain", - "name": "networkdomain", + "description": "the account associated with the provider", + "name": "account", "type": "string" }, { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", + "description": "the domain associated with the provider", + "name": "domain", "type": "string" }, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "the id of the router", + "name": "id", "type": "string" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", + "description": "Enabled/Disabled the service provider", + "name": "enabled", "type": "boolean" }, + {}, { - "description": "id of the Domain the account belongs to", - "name": "domainid", + "description": "the physical network service provider id of the provider", + "name": "nspid", "type": "string" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", - "type": "long" - }, - { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" + "description": "the domain ID associated with the provider", + "name": "domainid", + "type": "string" }, { - "description": "path of the Domain the account belongs to", + "description": "path of the domain to which the provider belongs", "name": "domainpath", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", - "type": "string" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Enables HA for a host", + "isasync": true, + "name": "enableHAForHost", + "params": [ { - "description": "the id of the account", - "name": "id", - "type": "string" - }, + "description": "ID of the host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "related": "configureHAForHost,disableHAForHost,listHostHAProviders", + "response": [ { - "description": "the total volume available for this account", - "name": "volumeavailable", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "the date when this account was created", - "name": "created", - "type": "date" - }, - { - "description": "details for the account", - "name": "accountdetails", - "type": "map" + "description": "operation status", + "name": "status", + "type": "boolean" }, + {}, + {}, { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", + "description": "the host HA provider", + "name": "haprovider", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", - "type": "string" + "description": "if host HA is enabled for the host", + "name": "haenable", + "type": "boolean" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", - "type": "integer" - }, + "description": "the HA state of the host", + "name": "hastate", + "type": "hastate" + } + ], + "since": "4.11" + }, + { + "description": "Migrate volume", + "isasync": true, + "name": "migrateVolume", + "params": [ { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", - "type": "string" + "description": "the ID of the volume", + "length": 255, + "name": "volumeid", + "related": "createVolume,migrateVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": true, + "type": "uuid" }, - {}, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", - "type": "long" + "description": "The new disk offering ID that replaces the current one used by the volume. This new disk offering is used to better reflect the new storage where the volume is going to be migrated to.", + "length": 255, + "name": "newdiskofferingid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", + "description": "if the volume should be live migrated when it is attached to a running vm", + "length": 255, + "name": "livemigrate", + "required": false, "type": "boolean" }, { - "description": "the state of the account", - "name": "state", + "description": "destination storage pool ID to migrate the volume to", + "length": 255, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": true, + "type": "uuid" + } + ], + "related": "createVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "response": [ + { + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", "type": "long" }, { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", - "type": "long" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "the default zone of the account", - "name": "defaultzoneid", - "type": "string" + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the list of users associated with account", - "name": "user", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, - { - "description": "the name of the role", - "name": "rolename", - "type": "string" - }, - { - "description": "the user firstname", - "name": "firstname", - "type": "string" - }, - { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" - }, - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, - { - "description": "the domain name of the user", - "name": "domain", - "type": "string" - }, - { - "description": "the user email address", - "name": "email", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the api key of the user", - "name": "apikey", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the user name", - "name": "username", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the user lastname", - "name": "lastname", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the account ID of the user", - "name": "accountid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the ID of the role", - "name": "roleid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the user ID", - "name": "id", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the account name of the user", + "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "the domain ID of the user", - "name": "domainid", - "type": "string" - }, - { - "description": "the timezone user was created in", - "name": "timezone", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - { - "description": "the type of the role", - "name": "roletype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" - }, - { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" } ], - "type": "list" - }, - { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", - "type": "string" - }, - { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", - "type": "string" - }, - { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", - "type": "long" + "type": "set" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", + "description": "size of the disk volume", + "name": "size", "type": "long" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "name of the Domain the account belongs to", - "name": "domain", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, { - "description": "the name of the account", - "name": "name", - "type": "string" - } - ] - }, - { - "description": "Lists domains and provides detailed information for listed domains", - "isasync": false, - "name": "listDomains", - "params": [ - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "comma separated list of domain details requested, value can be a list of [ all, resource, min]", - "length": 255, - "name": "details", - "required": false, - "type": "list" - }, - { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "Tag for resource type to return usage", - "length": 255, - "name": "tag", - "required": false, - "since": "4.20.0", + "description": "state of the virtual machine", + "name": "vmstate", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "List domain by domain name.", - "length": 255, - "name": "name", - "required": false, + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "List domain by domain ID.", - "length": 255, - "name": "id", - "related": "listDomains,listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "List domains by domain level.", - "length": 255, - "name": "level", - "required": false, - "type": "integer" + "description": "pod id of the volume", + "name": "podid", + "type": "string" }, { - "description": "flag to display the resource icon for domains", - "length": 255, - "name": "showicon", - "required": false, + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", "type": "boolean" - } - ], - "related": "listDomains", - "response": [ - { - "description": "the state of the domain", - "name": "state", - "type": "string" }, { - "description": "The tagged resource limit and count for the domain", - "name": "taggedresources", - "type": "list" + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" }, { - "description": "the ID of the domain", - "name": "id", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, { - "description": "the total number of templates which can be created by this domain", - "name": "templatelimit", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the total primary storage space (in GiB) owned by domain", - "name": "primarystoragetotal", - "type": "long" + "description": "the state of the disk volume", + "name": "state", + "type": "string" }, { - "description": "the total number of snapshots stored by this domain", - "name": "snapshottotal", + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", "type": "long" }, - {}, { - "description": "the total memory (in MB) owned by domain", - "name": "memorytotal", + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", "type": "long" }, { - "description": "the total number of public ip addresses available for this domain to acquire", - "name": "ipavailable", + "description": "ID of the disk volume", + "name": "id", "type": "string" }, { - "description": "the total number of virtual machines deployed by this domain", - "name": "vmtotal", - "type": "long" + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", + "type": "string" }, { - "description": "whether the domain has one or more sub-domains", - "name": "haschild", - "type": "boolean" + "description": "cluster id of the volume", + "name": "clusterid", + "type": "string" }, { - "description": "the total number of networks owned by domain", - "name": "networktotal", - "type": "long" + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" }, { - "description": "the path of the domain", - "name": "path", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "details for the domain", - "name": "domaindetails", - "type": "map" + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" }, { - "description": "the total volume which can be used by this domain", - "name": "volumelimit", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the total number of snapshots available for this domain", - "name": "snapshotavailable", + "description": "shared or local storage", + "name": "storagetype", "type": "string" }, { - "description": "the total memory (in MB) available to be created for this domain", - "name": "memoryavailable", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the total primary storage space (in GiB) the domain can own", - "name": "primarystoragelimit", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the total number of vpcs owned by domain", - "name": "vpctotal", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total number of networks the domain can own", - "name": "networklimit", - "type": "string" + "description": "the date the disk volume was created", + "name": "created", + "type": "date" }, { - "description": "the total number of public ip addresses this domain can acquire", - "name": "iplimit", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, + {}, + {}, { - "description": "the domain ID of the parent domain", - "name": "parentdomainid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the total number of projects available for administration by this domain", - "name": "projectavailable", + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, { - "description": "the total number of templates available to be created by this domain", - "name": "templateavailable", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the total secondary storage space (in GiB) available to be used for this domain", - "name": "secondarystorageavailable", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the total number of templates which have been created by this domain", - "name": "templatetotal", - "type": "long" + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", + "type": "string" }, { - "description": "the total memory (in MB) the domain can own", - "name": "memorylimit", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the path of the volume", + "name": "path", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "cluster name where the volume is allocated", + "name": "clustername", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { - "description": "the total volume available for this domain", - "name": "volumeavailable", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the total number of networks available to be created for this domain", - "name": "networkavailable", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "the total number of vpcs available to be created for this domain", - "name": "vpcavailable", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "the total volume being used by this domain", - "name": "volumetotal", + "description": "the bytes actually consumed on disk", + "name": "physicalsize", "type": "long" }, { - "description": "the total number of snapshots which can be stored by this domain", - "name": "snapshotlimit", - "type": "string" - }, - { - "description": "the total number of vpcs the domain can own", - "name": "vpclimit", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "the total number of public ip addresses allocated for this domain", - "name": "iptotal", + "description": "the bytes allocated", + "name": "virtualsize", "type": "long" }, - {}, { - "description": "the level of the domain", - "name": "level", - "type": "integer" + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", + "type": "boolean" }, { - "description": "the total number of cpu cores the domain can own", - "name": "cpulimit", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the total number of cpu cores owned by domain", - "name": "cputotal", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "the total number of virtual machines that can be deployed by this domain", - "name": "vmlimit", + "description": "name of the primary storage hosting the disk volume", + "name": "storage", "type": "string" }, { - "description": "the total number of projects the domain can own", - "name": "projectlimit", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the name of the domain", - "name": "name", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" }, { - "description": "the total number of cpu cores available to be created for this domain", - "name": "cpuavailable", - "type": "string" + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" }, { - "description": "the total number of virtual machines available for this domain to acquire", - "name": "vmavailable", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "the total secondary storage space (in GiB) owned by domain", - "name": "secondarystoragetotal", - "type": "float" - }, - { - "description": "the total secondary storage space (in GiB) the domain can own", - "name": "secondarystoragelimit", - "type": "string" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "the domain name of the parent domain", - "name": "parentdomainname", - "type": "string" + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" }, { - "description": "the total primary storage space (in GiB) available to be used for this domain", - "name": "primarystorageavailable", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the date when this domain was created", - "name": "created", - "type": "date" - }, - { - "description": "the total number of projects being administrated by this domain", - "name": "projecttotal", + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", "type": "long" - } - ] - }, - { - "description": "Resets the UserData for virtual machine. The virtual machine must be in a \"Stopped\" state.", - "isasync": false, - "name": "resetUserDataForVirtualMachine", - "params": [ - { - "description": "used to specify the parameters values for the variables in userdata.", - "length": 255, - "name": "userdatadetails", - "required": false, - "type": "map" }, { - "description": "an optional account for the virtual machine. Must be used with domainId.", - "length": 255, + "description": "the account associated with the disk volume", "name": "account", - "required": false, "type": "string" }, { - "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the userdata", - "length": 255, - "name": "userdataid", - "related": "", - "required": false, - "type": "uuid" - }, + "description": "the status of the volume", + "name": "status", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Deletes an existing Bgp Peer.", + "isasync": true, + "name": "deleteBgpPeer", + "params": [ { - "description": "The ID of the virtual machine", + "description": "Id of the Bgp Peer", "length": 255, "name": "id", - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "related": "updateBgpPeer", "required": true, "type": "uuid" - }, - { - "description": "an optional project for the virtual machine", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" } ], - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", "response": [ { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" - }, - { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" - }, - { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" - }, - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" - }, + {}, {}, { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" - }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.20.0" + }, + { + "description": "A command to list events.", + "isasync": false, + "name": "listEvents", + "params": [ { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" + "description": "the ID of the event", + "length": 255, + "name": "id", + "related": "listEvents", + "required": false, + "type": "uuid" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "the parent/start ID of the event, when provided this will list all the events with the start/parent ID including the parent event", + "length": 255, + "name": "startid", + "related": "listEvents", + "required": false, + "type": "uuid" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "the start date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")", + "length": 255, + "name": "startdate", + "required": false, + "type": "date" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "the duration of the event", + "length": 255, + "name": "duration", + "required": false, "type": "integer" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the event type (see event types)", + "length": 255, + "name": "type", + "required": false, "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - {}, - { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the type of the resource associated with the event", + "length": 255, + "name": "resourcetype", + "required": false, + "since": "4.17.0", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the ID of the resource associated with the event", + "length": 255, + "name": "resourceid", + "required": false, + "since": "4.17.0", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", - "type": "string" + "description": "true to list archived events otherwise false", + "length": 255, + "name": "archived", + "required": false, + "since": "4.19.0", + "type": "boolean" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" + "description": "the end date range of the list you want to retrieve (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-dd HH:mm:ss\")", + "length": 255, + "name": "enddate", + "required": false, + "type": "date" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the event level (INFO, WARN, ERROR)", + "length": 255, + "name": "level", + "required": false, "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "the time the event was entered", + "length": 255, + "name": "entrytime", + "required": false, + "type": "integer" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" - }, + } + ], + "related": "", + "response": [ { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - } - ], - "type": "set" + "description": "path of the Domain the account's domain belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the account name for the account that owns the object being acted on in the event (e.g. the owner of the virtual machine, ip address, or security group)", + "name": "account", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the id of the resource", + "name": "resourceid", "type": "string" }, + {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "whether the event is parented", + "name": "parentid", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the ID of the event", + "name": "id", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the name of the resource", + "name": "resourcename", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the id of the account's domain", + "name": "domainid", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the type of the event (see event types)", + "name": "type", + "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - } - ], - "type": "set" + "description": "the date the event was created", + "name": "created", + "type": "date" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" + "description": "the state of the event", + "name": "state", + "type": "state" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the name of the user who performed the action (can be different from the account if an admin is performing an action for a user, e.g. starting/stopping a user's virtual machine)", + "name": "username", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the type of the resource", + "name": "resourcetype", + "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "the name of the account's domain", + "name": "domain", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "a brief description of the event", + "name": "description", + "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the event level (INFO, WARN, ERROR)", + "name": "level", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" + "description": "whether the event has been archived or not", + "name": "archived", + "type": "boolean" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" + } + ] + }, + { + "description": "Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.", + "isasync": true, + "name": "updateVMAffinityGroup", + "params": [ + { + "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", + "length": 255, + "name": "affinitygroupnames", + "related": "", + "required": false, + "type": "list" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter", + "length": 255, + "name": "affinitygroupids", + "related": "", + "required": false, + "type": "list" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "the password (if exists) of the virtual machine", + "name": "password", + "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { @@ -112391,240 +105520,274 @@ "type": "long" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" - }, - { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" - }, - { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", + "description": "the date when this virtual machine was created", + "name": "created", "type": "date" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { "description": "the name of the template for the virtual machine", "name": "templatename", "type": "string" }, + {}, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", "type": "long" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" + }, + { + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, + { + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + {}, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ { - "description": "the project name of the group", - "name": "project", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], "type": "set" }, { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "the list of egress rules associated with the security group", + "name": "egressrule", "response": [ { "description": "the ending IP of the security group rule ", "name": "endport", "type": "integer" }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, { "description": "the id of the security group rule", "name": "ruleid", "type": "string" }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the account associated with the tag", - "name": "account", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], @@ -112635,283 +105798,610 @@ "name": "icmptype", "type": "integer" }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, { "description": "security group name", "name": "securitygroupname", "type": "string" }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, { "description": "the protocol of the security group rule", "name": "protocol", "type": "string" }, { - "description": "account owning the security group rule", - "name": "account", + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { "description": "the code for the ICMP message response", "name": "icmpcode", "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" } ], "type": "set" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + } + ], + "type": "set" + }, + { + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" + }, + { + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" + }, + { + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" + }, + { + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" + }, + { + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the name of the security group", - "name": "name", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the description of the security group", - "name": "description", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the ID of the security group", - "name": "id", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" + }, + { + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" + }, + { + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" + }, + { + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", + "type": "string" + }, + { + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" + }, + { + "description": "the name of the virtual machine", + "name": "name", + "type": "string" + }, + { + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "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": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "the account associated with the tag", + "name": "account", + "type": "string" }, { - "description": "the domain name of the security group", + "description": "the domain associated with the tag", "name": "domain", "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" } ], "type": "set" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", "name": "diskofferingname", "type": "string" }, + { + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "Base64 string containing the user data", + "name": "userdata", + "type": "string" + }, + { + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" + }, + { + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" + }, + { + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, {}, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" + }, + { + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + { + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, { "description": "list of affinity groups associated with the virtual machine", "name": "affinitygroup", "response": [ + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, { "description": "the name of the affinity group", "name": "name", @@ -112923,14 +106413,9 @@ "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" }, { "description": "the domain ID of the affinity group", @@ -112943,535 +106428,588 @@ "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the description of the affinity group", + "name": "description", + "type": "string" }, { "description": "the domain name of the affinity group", "name": "domain", "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" } ], "type": "set" - } - ], - "since": "4.18.0" - }, - { - "description": "Deletes a template from the system. All virtual machines using the deleted template will not be affected.", - "isasync": true, - "name": "deleteTemplate", - "params": [ - { - "description": "Force delete a template.", - "length": 255, - "name": "forced", - "required": false, - "since": "4.9+", - "type": "boolean" }, { - "description": "Necessary if the template's type is system.", - "length": 255, - "name": "issystem", - "required": false, - "since": "4.20.0", - "type": "boolean" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "the ID of the template", - "length": 255, - "name": "id", - "related": "listIsos,createTemplate,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of zone of the template", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" - } - ], - "response": [ + "description": "State of the Service from LB rule", + "name": "servicestate", + "type": "string" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ] - }, - { - "description": "Lists all network ACLs", - "isasync": false, - "name": "listNetworkACLLists", - "params": [ + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, { - "description": "list network ACLs by network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, + "description": "the project id of the vm", "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", + "type": "string" + }, + { + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" + }, + { + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "the memory allocated for the virtual machine", + "name": "memory", "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, { - "description": "Lists network ACL with the specified ID.", - "length": 255, - "name": "id", - "related": "createNetworkACLList,listNetworkACLLists", - "required": false, - "type": "uuid" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "list network ACLs by VPC ID", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "list network ACLs by specified name", - "length": 255, - "name": "name", - "required": false, + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "createNetworkACLList", - "response": [ + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, - {}, { - "description": "the ID of the ACL", - "name": "id", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the Name of the ACL", - "name": "name", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "Id of the VPC this ACL is associated with", - "name": "vpcid", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" + } + ] + }, + { + "description": "Lists HA providers", + "isasync": false, + "name": "listHostHAProviders", + "params": [ + { + "description": "Hypervisor type of the resource", + "length": 255, + "name": "hypervisor", + "required": true, "type": "string" + } + ], + "related": "configureHAForHost,disableHAForHost", + "response": [ + { + "description": "if host HA is enabled for the host", + "name": "haenable", + "type": "boolean" }, { - "description": "Name of the VPC this ACL is associated with", - "name": "vpcname", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the ID of the host", + "name": "hostid", "type": "string" }, + { + "description": "operation status", + "name": "status", + "type": "boolean" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Description of the ACL", - "name": "description", + "description": "the host HA provider", + "name": "haprovider", "type": "string" }, { - "description": "is ACL for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the HA state of the host", + "name": "hastate", + "type": "hastate" }, + {}, {} - ] + ], + "since": "4.11" }, { - "description": "Archives (moves) a snapshot on primary storage to secondary storage", - "isasync": true, - "name": "archiveSnapshot", + "description": "Registers NCC Service Package", + "isasync": false, + "name": "registerNetscalerServicePackage", "params": [ { - "description": "The ID of the snapshot", + "description": "Name of the service Package.", "length": 255, - "name": "id", - "related": "copySnapshot,archiveSnapshot,listSnapshots", + "name": "name", "required": true, - "type": "uuid" + "type": "string" + }, + { + "description": "Description of Service Package", + "length": 255, + "name": "description", + "required": true, + "type": "string" } ], - "related": "copySnapshot,listSnapshots", + "related": "listRegisteredServicePackages", "response": [ { - "description": "name of the availability zone", - "name": "zonename", + "description": "Description of Service Package", + "name": "description", "type": "string" }, - { - "description": " the date the snapshot 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 state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", - "name": "state", - "type": "state" - }, - { - "description": "virtual size of backedup snapshot on image store", - "name": "virtualsize", - "type": "long" + "description": "Service Package Name", + "name": "name", + "type": "string" }, {}, { - "description": "the domain name of the snapshot's account", - "name": "domain", + "description": "Service Package UUID", + "name": "id", "type": "string" }, { - "description": "display name of the os on volume", - "name": "osdisplayname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "Updates a Webhook", + "isasync": false, + "name": "updateWebhook", + "params": [ { - "description": "the project id of the snapshot", - "name": "projectid", + "description": "Secret key of the Webhook", + "length": 255, + "name": "secretkey", + "required": false, "type": "string" }, { - "description": "id of the availability zone", - "name": "zoneid", + "description": "Description for the Webhook", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": "name of the datastore for the snapshot entry", - "name": "datastorename", + "description": "Name for the Webhook", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "If set to true then SSL verification will be done for the Webhook otherwise not", + "length": 255, + "name": "sslverification", + "required": false, "type": "boolean" }, { - "description": "path of the Domain the snapshot's account belongs to", - "name": "domainpath", + "description": "Payload URL of the Webhook", + "length": 255, + "name": "payloadurl", + "required": false, "type": "string" }, { - "description": "valid location types are primary and secondary.", - "name": "locationtype", + "description": "Scope of the Webhook", + "length": 255, + "name": "scope", + "required": false, "type": "string" }, { - "description": "ID of the snapshot", + "description": "The ID of the Webhook", + "length": 255, "name": "id", - "type": "string" + "related": "createWebhook,listWebhookDeliveries", + "required": true, + "type": "uuid" }, { - "description": "download progress of a snapshot", - "name": "downloaddetails", - "type": "map" + "description": "State of the Webhook", + "length": 255, + "name": "state", + "required": false, + "type": "string" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the type of the snapshot", - "name": "snapshottype", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "name of the snapshot", - "name": "name", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "name of the disk volume", - "name": "volumename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ], + "since": "4.20.0" + }, + { + "description": "Creates resource tag(s)", + "isasync": true, + "name": "createTags", + "params": [ { - "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", - "name": "revertable", - "type": "boolean" + "description": "identifies client specific tag. When the value is not null, the tag can't be used by cloudStack code internally", + "length": 255, + "name": "customer", + "required": false, + "type": "string" }, { - "description": "the list of resource tags associated", + "description": "Map of tags (key/value pairs)", + "length": 255, "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" + "required": true, + "type": "map" }, { - "description": "valid types are hourly, daily, weekly, monthy, template, and none.", - "name": "intervaltype", + "description": "type of the resource", + "length": 255, + "name": "resourcetype", + "required": true, "type": "string" }, { - "description": "the domain ID of the snapshot's account", - "name": "domainid", - "type": "string" - }, + "description": "list of resources to create the tags for", + "length": 255, + "name": "resourceids", + "required": true, + "type": "list" + } + ], + "response": [ + {}, { - "description": "physical size of backedup snapshot on image store", - "name": "physicalsize", - "type": "long" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "state of the snapshot on the datastore", - "name": "datastorestate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, {}, { - "description": "state of the disk volume", - "name": "volumestate", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "ID of the datastore for the snapshot entry", - "name": "datastoreid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.0.0" + }, + { + "description": "Lists the CA public certificate(s) as support by the configured/provided CA plugin", + "isasync": false, + "name": "listCaCertificate", + "params": [ + { + "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", + "length": 255, + "name": "provider", + "required": false, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the status of the template", - "name": "status", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "id of the os on volume", - "name": "ostypeid", + "description": "The CA certificate(s)", + "name": "cacertificates", "type": "string" }, + {}, { - "description": "type of the disk volume", - "name": "volumetype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the project name of the snapshot", - "name": "project", + "description": "The client certificate", + "name": "certificate", "type": "string" }, { - "description": "ID of the disk volume", - "name": "volumeid", + "description": "Private key for the certificate", + "name": "privatekey", + "type": "string" + } + ], + "since": "4.11.0" + }, + { + "description": "Create an Internal Load Balancer element.", + "isasync": true, + "name": "createInternalLoadBalancerElement", + "params": [ + { + "description": "the network service provider ID of the internal load balancer element", + "length": 255, + "name": "nspid", + "related": "listNetworkServiceProviders", + "required": true, + "type": "uuid" + } + ], + "related": "configureInternalLoadBalancerElement", + "response": [ + {}, + { + "description": "the physical network service provider id of the element", + "name": "nspid", "type": "string" }, { - "description": "the account associated with the snapshot", - "name": "account", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "type of the datastore for the snapshot entry", - "name": "datastoretype", - "type": "string" + "description": "Enabled/Disabled the element", + "name": "enabled", + "type": "boolean" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" + }, + { + "description": "the id of the internal load balancer element", + "name": "id", + "type": "string" } - ] + ], + "since": "4.2.0" }, { - "description": "Updates site to site vpn local gateway", - "isasync": true, - "name": "updateVpnGateway", + "description": "Reset api count", + "isasync": false, + "name": "resetApiLimit", "params": [ { - "description": "an optional field, whether to the display the vpn to the end user or not", + "description": "the ID of the account whose limit to be reset", "length": 255, - "name": "fordisplay", + "name": "account", + "related": "enableAccount,listAccounts,listAccounts", "required": false, - "since": "4.4", - "type": "boolean" + "type": "uuid" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "id of customer gateway", + "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": "Deletes a VLAN IP range.", + "isasync": false, + "name": "deleteVlanIpRange", + "params": [ + { + "description": "the id of the VLAN IP range", "length": 255, "name": "id", - "related": "updateVpnGateway", + "related": "dedicatePublicIpRange", "required": true, "type": "uuid" } ], - "related": "", "response": [ { - "description": "the project id", - "name": "projectid", + "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": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { @@ -113480,25 +107018,37 @@ "type": "integer" }, {}, + {} + ] + }, + { + "description": "Provisions a host with a direct download certificate", + "isasync": false, + "name": "provisionTemplateDirectDownloadCertificate", + "params": [ { - "description": "is vpn gateway for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the vpc id of this gateway", - "name": "vpcid", - "type": "string" + "description": "the host to provision the certificate", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", + "required": true, + "type": "uuid" }, { - "description": "the vpn gateway ID", + "description": "the id of the direct download certificate to provision", + "length": 255, "name": "id", - "type": "string" - }, + "related": "uploadTemplateDirectDownloadCertificate", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ { - "description": "the project name", - "name": "project", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, {}, { @@ -113507,392 +107057,542 @@ "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", - "type": "string" - }, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - }, - { - "description": "the public IP address", - "name": "publicip", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "the owner", - "name": "account", + "description": "the name of the host", + "name": "hostname", "type": "string" }, { - "description": "the domain name of the owner", - "name": "domain", + "description": "indicates the details in case of failure or host skipped", + "name": "details", "type": "string" }, { - "description": "the domain id of the owner", - "name": "domainid", + "description": "indicates if the certificate has been revoked from the host, failed or skipped", + "name": "status", "type": "string" }, - { - "description": "the vpc name of this gateway", - "name": "vpcname", - "type": "string" - } + {} ], - "since": "4.4" + "since": "4.17.0" }, { - "description": "Releases a dedicated guest vlan range to the system", + "description": "Generates an alert", "isasync": true, - "name": "releaseDedicatedGuestVlanRange", + "name": "generateAlert", "params": [ { - "description": "the ID of the dedicated guest vlan range", + "description": "Zone id for which alert is generated", "length": 255, - "name": "id", - "related": "", + "name": "zoneid", + "related": "createZone,listZones", + "required": false, + "type": "uuid" + }, + { + "description": "Name of the alert", + "length": 255, + "name": "name", "required": true, + "type": "string" + }, + { + "description": "Pod id for which alert is generated", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, "type": "uuid" + }, + { + "description": "Alert description", + "length": 999, + "name": "description", + "required": true, + "type": "string" + }, + { + "description": "Type of the alert", + "length": 255, + "name": "type", + "required": true, + "type": "short" } ], "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": "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": "any text associated with the success or failure", "name": "displaytext", "type": "string" } - ] + ], + "since": "4.3" }, { - "description": "Deletes security group", + "description": "Creates a Project role", "isasync": false, - "name": "deleteSecurityGroup", + "name": "updateProjectRole", "params": [ { - "description": "the domain ID of account owning the security group", + "description": "creates a project role with this unique name", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "name", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "The ID of the security group. Mutually exclusive with name parameter", + "description": "ID of project where role is being created", "length": 255, - "name": "id", - "related": "", - "required": false, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": true, "type": "uuid" }, { - "description": "the account of the security group. Must be specified with domain ID", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "The ID of the security group. Mutually exclusive with id parameter", + "description": "The description of the Project role", "length": 255, - "name": "name", + "name": "description", "required": false, "type": "string" }, { - "description": "the project of the security group", + "description": "ID of the Project role", "length": 255, - "name": "projectid", - "related": "", - "required": false, + "name": "id", + "related": "updateProjectRole", + "required": true, "type": "uuid" } ], + "related": "", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", "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": "the id of the project", + "name": "projectid", + "type": "string" + }, {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {} - ] - }, - { - "description": "Import an unmanaged volume from a storage pool on a host into CloudStack", - "isasync": true, - "name": "importVolume", - "params": [ { - "description": "an optional account for the volume. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the description of the role", + "name": "description", "type": "string" }, { - "description": "the path of the volume", - "length": 255, - "name": "path", - "required": true, + "description": "the ID of the role", + "name": "id", "type": "string" }, { - "description": "the name of the volume. If not set, it will be set to the path of the volume.", - "length": 255, + "description": "the name of the role", "name": "name", - "required": false, "type": "string" - }, + } + ], + "since": "4.15.0" + }, + { + "description": "Add a new Ldap Configuration", + "isasync": false, + "name": "addLdapConfiguration", + "params": [ { - "description": "import volume for the project", + "description": "Port", "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "name": "port", + "required": true, + "type": "integer" }, { - "description": "the ID of the storage pool", + "description": "Hostname", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "name": "hostname", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "import volume to the domain specified", + "description": "linked domain", "length": 255, "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "the ID of the disk offering linked to the volume", - "length": 255, - "name": "diskofferingid", - "related": "", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" } ], - "related": "createVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "related": "", "response": [ + {}, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "linked domain", + "name": "domainid", "type": "string" }, { - "description": "name of the virtual machine", - "name": "vmname", - "type": "string" + "description": "port the ldap server is running on", + "name": "port", + "type": "int" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "name of the host running the ldap server", + "name": "hostname", "type": "string" }, + {} + ], + "since": "4.2.0" + }, + { + "description": "(Deprecated, use addLdapConfiguration) Configure the LDAP context for this site.", + "isasync": false, + "name": "ldapConfig", + "params": [ { - "description": "the project name of the vpn", - "name": "project", + "description": "You specify a query filter here, which narrows down the users, who can be part of this domain.", + "length": 255, + "name": "queryfilter", + "required": false, "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "Specify the LDAP port if required, default is 389.", + "length": 255, + "name": "port", + "required": false, + "type": "integer" + }, + { + "description": "Enter the password for trust store.", + "length": 255, + "name": "truststorepass", + "required": false, "type": "string" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com.", + "length": 255, + "name": "searchbase", + "required": false, + "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "Enter the password.", + "length": 255, + "name": "bindpass", + "required": false, "type": "string" }, { - "description": "shared or local storage", - "name": "storagetype", + "description": "Specify the distinguished name of a user with the search permission on the directory.", + "length": 255, + "name": "binddn", + "required": false, "type": "string" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL.", + "length": 255, + "name": "ssl", + "required": false, + "type": "boolean" + }, + { + "description": "Hostname or ip address of the ldap server eg: my.ldap.com", + "length": 255, + "name": "hostname", + "required": false, "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "Enter the path to trust certificates store.", + "length": 255, + "name": "truststore", + "required": false, "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "If true return current LDAP configuration", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + } + ], + "related": "ldapRemove", + "response": [ + { + "description": "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com", + "name": "searchbase", "type": "string" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "You specify a query filter here, which narrows down the users, who can be part of this domain", + "name": "queryfilter", "type": "string" }, + {}, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "Specify the distinguished name of a user with the search permission on the directory", + "name": "binddn", "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "Specify the LDAP port if required, default is 389", + "name": "port", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "Hostname or ip address of the ldap server eg: my.ldap.com", + "name": "hostname", "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "DN password", + "name": "bindpass", "type": "string" }, + {}, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL", + "name": "ssl", "type": "string" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Deletes a port forwarding rule", + "isasync": true, + "name": "deletePortForwardingRule", + "params": [ + { + "description": "the ID of the port forwarding rule", + "length": 255, + "name": "id", + "related": "createRoutingFirewallRule,updateIpv6FirewallRule", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "name of the disk volume", - "name": "name", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, - {}, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "moves a vpc to another physical network", + "isasync": true, + "name": "migrateVPC", + "params": [ { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the ID of the vpc", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC,migrateVPC", + "required": true, + "type": "uuid" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "vpc offering ID", + "length": 255, + "name": "vpcofferingid", + "related": "updateVPCOffering", + "required": true, + "type": "uuid" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "true if previous network migration cmd failed", + "length": 255, + "name": "resume", + "required": false, + "type": "boolean" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "network offering ids for each network in the vpc. Example: tierNetworkOfferings[0].networkId=networkId1&tierNetworkOfferings[0].networkOfferingId=newNetworkofferingId1&tierNetworkOfferings[1].networkId=networkId2&tierNetworkOfferings[1].networkOfferingId=newNetworkofferingId2", + "length": 255, + "name": "tiernetworkofferings", + "required": false, + "type": "map" + } + ], + "related": "createVPC,listVPCs,updateVPC", + "response": [ + { + "description": "the project name of the VPC", + "name": "project", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the first IPv4 DNS for the VPC", + "name": "dns1", + "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "zone id of the vpc", + "name": "zoneid", + "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "the list of resource tags associated with the project", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + } + ], + "type": "list" }, { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" + "description": "MTU configured on the public interfaces of the VPC VR", + "name": "publicmtu", + "type": "integer" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "the second IPv4 DNS for the VPC", + "name": "dns2", "type": "string" }, { - "description": "pod id of the volume", - "name": "podid", - "type": "string" + "description": "true if VPC is region level", + "name": "regionlevelvpc", + "type": "boolean" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "the name of the zone the VPC belongs to", + "name": "zonename", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -113900,647 +107600,760 @@ "type": "string" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", - "type": "string" + "description": "the list of supported services", + "name": "service", + "response": [ + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + } + ], + "type": "list" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the list of networks belongign to the VPC", + "name": "network", + "type": "list" + }, + { + "description": "if this VPC has redundant router", + "name": "redundantvpcrouter", "type": "boolean" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "the name of the VPC", + "name": "name", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the second IPv6 DNS for the VPC", + "name": "ip6dns2", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "The IPv4 routing mode of VPC", + "name": "ip4routing", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", + "description": "AS NUMBER", + "name": "asnumber", "type": "long" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "vpc offering id the VPC is created from", + "name": "vpcofferingid", "type": "string" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "the domain id of the VPC owner", + "name": "domainid", + "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "true VPC requires restart", + "name": "restartrequired", + "type": "boolean" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", + "name": "distributedvpcrouter", + "type": "boolean" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "UUID of AS NUMBER", + "name": "asnumberid", + "type": "string" }, { - "description": "the status of the volume", - "name": "status", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the account associated with the disk volume", + "description": "the owner of the VPC", "name": "account", "type": "string" }, { - "description": "ID of the disk volume", + "description": "the id of the VPC", "name": "id", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "The routes for the VPC to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "The BGP peers for the VPC", + "name": "bgppeers", + "type": "set" + }, + { + "description": "the project id of the VPC", + "name": "projectid", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" + }, + { + "description": "an alternate display text of the VPC.", + "name": "displaytext", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the network domain of the VPC", + "name": "networkdomain", + "type": "string" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the first IPv6 DNS for the VPC", + "name": "ip6dns1", "type": "string" }, + {}, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "vpc offering name the VPC is created from", + "name": "vpcofferingname", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the date this VPC was created", + "name": "created", + "type": "date" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "is vpc for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the cidr the VPC", + "name": "cidr", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, - {}, + { + "description": "state of the VPC. Can be Inactive/Enabled", + "name": "state", + "type": "string" + }, + {} + ], + "since": "4.11.0" + }, + { + "description": "Deletes a global load balancer rule.", + "isasync": true, + "name": "deleteGlobalLoadBalancerRule", + "params": [ + { + "description": "the ID of the global load balancer rule", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + {}, + {}, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ] + }, + { + "description": "update an annotation visibility.", + "isasync": false, + "name": "updateAnnotationVisibility", + "params": [ + { + "description": "the annotation is visible for admins only", + "length": 255, + "name": "adminsonly", + "required": true, + "type": "boolean" }, { - "description": "the path of the volume", - "name": "path", + "description": "the id of the annotation", + "length": 255, + "name": "id", + "required": true, "type": "string" + } + ], + "related": "removeAnnotation", + "response": [ + { + "description": "the creation timestamp for this annotation", + "name": "created", + "type": "date" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "the (uu)id of the annotation", + "name": "id", + "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" + "description": "The username of the user that entered the annotation", + "name": "username", + "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "the type of the annotated entity", + "name": "entitytype", "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", + "description": "the contents of the annotation", + "name": "annotation", + "type": "string" + }, + { + "description": "True if the annotation is available for admins only", + "name": "adminsonly", "type": "boolean" }, + {}, + { + "description": "the (uu)id of the entity to which this annotation pertains", + "name": "entityid", + "type": "string" + }, + {}, + { + "description": "the name of the entity to which this annotation pertains", + "name": "entityname", + "type": "string" + }, { - "description": "the date the disk volume was created", - "name": "created", + "description": "the removal timestamp for this annotation", + "name": "removed", "type": "date" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "The (uu)id of the user that entered the annotation", + "name": "userid", "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" } ], - "since": "4.19.1" + "since": "4.16" }, { - "description": "Creates a template of a virtual machine. The virtual machine must be in a STOPPED state. A template created from this command is automatically designated as a private template visible to the account that created it.", - "isasync": true, - "name": "createTemplate", + "description": "Lists BigSwitch BCF Controller devices", + "isasync": false, + "name": "listBigSwitchBcfDevices", "params": [ { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", + "description": "the Physical Network ID", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": false, - "since": "4.19.0", "type": "uuid" }, { - "description": "Optional, only for baremetal hypervisor. The directory name where template stored on CIFS server", - "length": 2048, - "name": "url", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", "required": false, "type": "string" }, { - "description": "the ID of the disk volume the template is being created from. Either this parameter, or snapshotId has to be passed in", + "description": "bigswitch BCF controller device ID", "length": 255, - "name": "volumeid", - "related": "createVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "name": "bcfdeviceid", + "related": "listBigSwitchBcfDevices", "required": false, "type": "uuid" }, { - "description": "an optional accountName. Must be used with domainId.", + "description": "", "length": 255, - "name": "account", + "name": "page", "required": false, - "since": "4.19.0", + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "device id of the BigSwitch BCF Controller", + "name": "bcfdeviceid", "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" + "description": "name of the provider", + "name": "provider", + "type": "string" }, { - "description": "true if the template requires HVM, false otherwise", - "length": 255, - "name": "requireshvm", - "required": false, + "description": "NAT support", + "name": "nat", "type": "boolean" }, + {}, { - "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "device name", + "name": "bigswitchdevicename", + "type": "string" }, + {}, { - "description": "the name of the template", - "length": 255, - "name": "name", - "required": true, + "description": "the controller Ip address", + "name": "hostname", "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "length": 255, - "name": "isfeatured", - "required": false, - "type": "boolean" + "description": "the physical network to which this BigSwitch BCF segment belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "length": 255, - "name": "isdynamicallyscalable", - "required": false, - "type": "boolean" + "description": "the controller username", + "name": "username", + "type": "string" }, { - "description": "true if the template supports the password reset feature; default is false", - "length": 255, - "name": "passwordenabled", - "required": false, - "type": "boolean" + "description": "the controller password", + "name": "password", + "type": "string" }, { - "description": "the ID of the OS Type that best represents the OS of this template.", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ], + "since": "4.6.0" + }, + { + "description": "Updates a configuration.", + "isasync": false, + "name": "updateConfiguration", + "params": [ + { + "description": "the ID of the Storage pool to update the parameter value for corresponding storage pool", "length": 255, - "name": "ostypeid", - "related": "addGuestOs", - "required": true, + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": false, "type": "uuid" }, { - "description": "the tag for this template.", - "length": 255, - "name": "templatetag", + "description": "the value of the configuration", + "length": 4096, + "name": "value", "required": false, "type": "string" }, { - "description": "the ID of the snapshot the template is being created from. Either this parameter, or volumeId has to be passed in", + "description": "the ID of the Account to update the parameter value for corresponding account", "length": 255, - "name": "snapshotid", - "related": "copySnapshot,listSnapshots", + "name": "accountid", + "related": "enableAccount,listAccounts,listAccounts", "required": false, "type": "uuid" }, { - "description": "Optional, VM ID. If this presents, it is going to create a baremetal template for VM this ID refers to. This is only for VM whose hypervisor type is BareMetal", + "description": "the ID of the Image Store to update the parameter value for corresponding image store", "length": 255, - "name": "virtualmachineid", - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "name": "imagestoreuuid", + "related": "listSwifts,addImageStoreS3,listImageStores", "required": false, "type": "uuid" }, { - "description": "32 or 64 bit", + "description": "the ID of the Domain to update the parameter value for corresponding domain", "length": 255, - "name": "bits", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "true if the template supports the sshkey upload feature; default is false", + "description": "the name of the configuration", "length": 255, - "name": "sshkeyenabled", - "required": false, - "type": "boolean" + "name": "name", + "required": true, + "type": "string" }, { - "description": "the zone for the template. Can be specified with snapshot only", + "description": "the ID of the Cluster to update the parameter value for corresponding cluster", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "clusterid", + "related": "addCluster", "required": false, - "since": "4.19.0", "type": "uuid" }, { - "description": "create template for the project", + "description": "the ID of the Zone to update the parameter value for corresponding zone", "length": 255, - "name": "projectid", - "related": "", + "name": "zoneid", + "related": "createZone,listZones", "required": false, "type": "uuid" - }, - { - "description": "The display text of the template, defaults to the 'name'.", - "length": 4096, - "name": "displaytext", - "required": false, - "type": "string" } ], - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "", "response": [ { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "the possible options of the configuration value", + "name": "options", "type": "string" }, { - "description": "the template name", - "name": "name", + "description": "the group of the configuration", + "name": "group", "type": "string" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the description of the configuration", + "name": "description", "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the type of the configuration value", + "name": "type", + "type": "string" }, - {}, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" + "description": "the value of the configuration", + "name": "id", + "type": "long" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "true if the configuration is dynamic", + "name": "isdynamic", + "type": "boolean" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the value of the configuration", + "name": "value", "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 current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "the category of the configuration", + "name": "category", "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "scope(zone/cluster/pool/account) of the parameter that needs to be updated", + "name": "scope", "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" + "description": "the default value of the configuration", + "name": "defaultvalue", + "type": "string" }, + {}, { - "description": "the template display text", - "name": "displaytext", + "description": "the subgroup of the configuration", + "name": "subgroup", "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "the name of the parent configuration", + "name": "parent", + "type": "string" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "the display text of the configuration", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the name of the configuration", + "name": "name", "type": "string" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "the component of the configuration", + "name": "component", "type": "string" - }, + } + ] + }, + { + "description": "Configures HA for a host", + "isasync": true, + "name": "configureHAForHost", + "params": [ { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "ID of the host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", + "required": true, + "type": "uuid" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" - }, + "description": "HA provider", + "length": 255, + "name": "provider", + "required": true, + "type": "string" + } + ], + "related": "disableHAForHost", + "response": [ { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", + "description": "if host HA is enabled for the host", + "name": "haenable", "type": "boolean" }, + {}, { - "description": "the status of the template", - "name": "status", + "description": "the host HA provider", + "name": "haprovider", "type": "string" }, - {}, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the HA state of the host", + "name": "hastate", + "type": "hastate" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" + "description": "operation status", + "name": "status", + "type": "boolean" }, + {}, { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.11" + }, + { + "description": "Lists volume stats", + "isasync": false, + "name": "listVolumesUsageHistory", + "params": [ { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" + "description": "name of the volume (a substring match is made against the parameter value returning the data for all matching Volumes).", + "length": 255, + "name": "name", + "required": false, + "type": "string" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "end date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", + "length": 255, + "name": "enddate", + "required": false, + "type": "date" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "the ID of the volume.", + "length": 255, + "name": "id", + "related": "createVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": false, + "type": "uuid" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "start date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", + "length": 255, + "name": "startdate", + "required": false, + "type": "date" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "the IDs of the volumes, mutually exclusive with id.", + "length": 255, + "name": "ids", + "related": "migrateSystemVm", + "required": false, + "type": "list" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ + { + "description": "the ID of the volume", + "name": "id", + "type": "string" }, + {}, { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "the name of the volume", + "name": "name", "type": "string" }, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "the list of VM stats", + "name": "stats", + "type": "list" }, { "description": "the current status of the latest async job acting on this object", @@ -114548,186 +108361,220 @@ "type": "integer" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" - }, - { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {} + ], + "since": "4.18.0" + }, + { + "description": "Dedicates a Public IP range to an account", + "isasync": false, + "name": "dedicatePublicIpRange", + "params": [ { - "description": "the template ID", + "description": "the id of the VLAN IP range", + "length": 255, "name": "id", - "type": "string" + "related": "dedicatePublicIpRange", + "required": true, + "type": "uuid" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" + "description": "project who will own the VLAN", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "account who will own the VLAN", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the project name of the template", - "name": "project", + "description": "domain ID of the account owning a VLAN", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the end ipv6 of the VLAN IP range", + "name": "endipv6", "type": "string" }, { - "description": "the ID of the domain to which the template belongs", + "description": "the domain ID of the VLAN IP range", "name": "domainid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project name of the vlan range", + "name": "project", "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "the ID of the VLAN IP range", + "name": "id", "type": "string" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the description of the VLAN IP range", + "name": "description", "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "the domain name of the VLAN IP range", + "name": "domain", "type": "string" }, { - "description": "checksum of the template", - "name": "checksum", + "description": "the end ip of the VLAN IP range", + "name": "endip", "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "the start ipv6 of the VLAN IP range", + "name": "startipv6", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the netmask of the VLAN IP range", + "name": "netmask", + "type": "string" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", - "type": "string" + "description": "the virtual network for the VLAN IP range", + "name": "forvirtualnetwork", + "type": "boolean" }, + {}, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the Pod name for the VLAN IP range", + "name": "podname", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" - } - ] - }, - { - "description": "Lists dedicated clusters.", - "isasync": false, - "name": "listDedicatedClusters", - "params": [ + "description": "the start ip of the VLAN IP range", + "name": "startip", + "type": "string" + }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the ID of the cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "description": "the account of the VLAN IP range", + "name": "account", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the ID or VID of the VLAN.", + "name": "vlan", + "type": "string" }, { - "description": "list dedicated clusters by affinity group", - "length": 255, - "name": "affinitygroupid", - "related": "", - "required": false, - "type": "uuid" + "description": "the network id of vlan range", + "name": "networkid", + "type": "string" }, + {}, { - "description": "the ID of the domain associated with the cluster", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "the cidr of the VLAN IP range", + "name": "cidr", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the name of the account associated with the cluster. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "path of the domain to which the VLAN IP range belongs", + "name": "domainpath", "type": "string" - } - ], - "related": "", - "response": [ - {}, + }, { - "description": "the domain ID of the cluster", - "name": "domainid", + "description": "the Zone ID of the VLAN IP range", + "name": "zoneid", "type": "string" }, { - "description": "the ID of the cluster", - "name": "clusterid", + "description": "the gateway of the VLAN IP range", + "name": "gateway", "type": "string" }, { - "description": "the ID of the dedicated resource", - "name": "id", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the project id of the vlan range", + "name": "projectid", "type": "string" }, { - "description": "the Account ID of the cluster", - "name": "accountid", + "description": "the Pod ID for the VLAN IP range", + "name": "podid", "type": "string" }, { - "description": "the name of the cluster", - "name": "clustername", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the Dedication Affinity Group ID of the cluster", - "name": "affinitygroupid", + "description": "indicates whether VLAN IP range is dedicated to system vms or not", + "name": "forsystemvms", + "type": "boolean" + }, + { + "description": "indicates whether IP range is dedicated to NSX resources or not", + "name": "fornsx", + "type": "boolean" + } + ] + }, + { + "description": "Deletes an empty Bucket.", + "isasync": false, + "name": "deleteBucket", + "params": [ + { + "description": "The ID of the Bucket", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "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" }, { @@ -114736,434 +108583,478 @@ "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" } - ] + ], + "since": "4.19.0" }, { - "description": "Uploads a custom certificate for the console proxy VMs to use for SSL. Can be used to upload a single certificate signed by a known CA. Can also be used, through multiple calls, to upload a chain of certificates from CA to the custom certificate itself.", - "isasync": true, - "name": "uploadCustomCertificate", + "description": "Adds API permissions to a project role", + "isasync": false, + "name": "createProjectRolePermission", "params": [ { - "description": "The certificate to be uploaded.", - "length": 65535, - "name": "certificate", + "description": "The API name or wildcard rule such as list*", + "length": 255, + "name": "rule", "required": true, "type": "string" }, { - "description": "A name / alias for the certificate.", + "description": "The description of the role permission", "length": 255, - "name": "name", + "name": "description", "required": false, "type": "string" }, { - "description": "DNS domain suffix that the certificate is granted for.", + "description": "ID of project where project role permission is to be created", "length": 255, - "name": "domainsuffix", + "name": "projectid", + "related": "activateProject,suspendProject", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "An integer providing the location in a chain that the certificate will hold. Usually, this can be left empty. When creating a chain, the top level certificate should have an ID of 1, with each step in the chain incrementing by one. Example, CA with id = 1, Intermediate CA with id = 2, Site certificate with ID = 3", + "description": "The rule permission, allow or deny. Default: deny.", "length": 255, - "name": "id", - "required": false, - "type": "integer" + "name": "permission", + "required": true, + "type": "string" }, { - "description": "The private key for the attached certificate.", - "length": 65535, - "name": "privatekey", - "required": false, - "type": "string" + "description": "ID of the project role", + "length": 255, + "name": "projectroleid", + "related": "", + "required": true, + "type": "uuid" } ], "related": "", "response": [ + { + "description": "the ID of the project", + "name": "projectid", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, {}, + { + "description": "the ID of the project role to which the role permission belongs", + "name": "projectroleid", + "type": "string" + }, + { + "description": "the ID of the project role permission", + "name": "id", + "type": "string" + }, + { + "description": "the api name or wildcard rule", + "name": "rule", + "type": "string" + }, + { + "description": "the name of the project role to which the role permission belongs", + "name": "projectrolename", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - {}, { - "description": "message of the certificate upload operation", - "name": "message", + "description": "the permission type of the api name or wildcard rule, allow/deny", + "name": "permission", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the description of the role permission", + "name": "description", "type": "string" - } - ] + }, + {} + ], + "since": "4.15.0" }, { - "description": "list Tungsten-Fabric network", + "description": "lists registered service packages", "isasync": false, - "name": "listTungstenFabricNetwork", + "name": "listRegisteredServicePackages", "params": [ { - "description": "the ID of zone", + "description": "List by keyword", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the uuid of Tungsten-Fabric network", - "length": 255, - "name": "networkuuid", - "required": false, - "type": "string" - }, - { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that include public network. Default value is false", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" } ], "related": "", "response": [ - { - "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": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - { - "description": "Tungsten-Fabric network uuid", - "name": "uuid", + "description": "Service Package UUID", + "name": "id", "type": "string" }, {}, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "Tungsten-Fabric network name", + "description": "Service Package Name", "name": "name", "type": "string" - } + }, + { + "description": "Description of Service Package", + "name": "description", + "type": "string" + }, + {} ] }, { - "description": "List traffic monitor Hosts.", + "description": "Create a console endpoint to connect to a VM console", "isasync": false, - "name": "listTrafficMonitors", + "name": "createConsoleEndpoint", "params": [ { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "zone Id", + "description": "ID of the VM", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "virtualmachineid", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, "type": "uuid" }, { - "description": "List by keyword", + "description": "(optional) extra security token, valid when the extra validation is enabled", "length": 255, - "name": "keyword", + "name": "token", "required": false, "type": "string" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" } ], - "related": "addTrafficMonitor", + "related": "", "response": [ { - "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 timeout (in seconds) for requests to the external firewall", - "name": "timeout", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the management IP address of the external firewall", - "name": "ipaddress", - "type": "string" + "description": "true if the console endpoint is generated properly", + "name": "success", + "type": "boolean" }, - {}, - {}, { - "description": "the ID of the external firewall", - "name": "id", + "description": "the console url", + "name": "url", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "details in case of an error", + "name": "details", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the number of times to retry requests to the external firewall", - "name": "numretries", - "type": "string" + "description": "the console websocket options", + "name": "websocket", + "type": "consoleendpointwebsocketresponse" } - ] + ], + "since": "4.18.0" }, { - "description": "Releases an existing dedicated Bgp Peer.", + "description": "Change Disk offering of a Shared FileSystem", "isasync": true, - "name": "releaseBgpPeer", + "name": "changeSharedFileSystemDiskOffering", "params": [ { - "description": "Id of the Bgp Peer", + "description": "the disk offering to use for the underlying storage", + "length": 255, + "name": "diskofferingid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the size of the shared filesystem in GiB", + "length": 255, + "name": "size", + "required": false, + "type": "long" + }, + { + "description": "the ID of the shared filesystem", "length": 255, "name": "id", - "related": "releaseBgpPeer", + "related": "changeSharedFileSystemDiskOffering", "required": true, "type": "uuid" + }, + { + "description": "max iops", + "length": 255, + "name": "maxiops", + "required": false, + "type": "long" + }, + { + "description": "min iops", + "length": 255, + "name": "miniops", + "required": false, + "type": "long" } ], "related": "", "response": [ { - "description": "name of zone to which the bgp peer belongs to.", - "name": "zonename", + "description": "name of the storage fs data volume", + "name": "volumename", "type": "string" }, - {}, - {}, { - "description": "IPv4 address of bgp peer", - "name": "ipaddress", + "description": "disk offering display text for the shared filesystem", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the project id of the bgp peer", - "name": "projectid", + "description": "Network ID of the shared filesystem", + "name": "networkid", "type": "string" }, { - "description": "additional key/value details of the bgp peer", - "name": "details", - "type": "map" - }, - { - "description": "AS number of bgp peer", - "name": "asnumber", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path to mount the shared filesystem", + "name": "path", "type": "string" }, { - "description": "the domain name of the bgp peer", + "description": "the domain associated with the shared filesystem", "name": "domain", "type": "string" }, { - "description": "id of the bgp peer", - "name": "id", + "description": "ID of the storage fs vm", + "name": "vmstate", "type": "string" }, { - "description": "id of zone to which the bgp peer belongs to.", - "name": "zoneid", + "description": "service offering ID for the shared filesystem", + "name": "serviceofferingid", "type": "string" }, { - "description": "IPv6 address of bgp peer", - "name": "ip6address", + "description": "service offering for the shared filesystem", + "name": "serviceofferingname", "type": "string" }, { - "description": "the domain ID of the bgp peer", - "name": "domainid", + "description": "ID of the storage pool hosting the data volume", + "name": "storageid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "date when this bgp peer was created.", - "name": "created", - "type": "date" + "description": "Network name of the shared filesystem", + "name": "networkname", + "type": "string" }, { - "description": "the account of the bgp peer", - "name": "account", + "description": "size of the shared filesystem in GiB", + "name": "sizegb", "type": "string" }, { - "description": "the project name of the bgp peer", - "name": "project", - "type": "string" + "description": "the read (IO) of disk on the shared filesystem", + "name": "diskioread", + "type": "long" }, { - "description": "password of bgp peer", - "name": "password", + "description": "description of the shared filesystem", + "name": "description", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Updates a port forwarding rule. Only the private port and the virtual machine can be updated.", - "isasync": true, - "name": "updatePortForwardingRule", - "params": [ + }, { - "description": "the ID of the virtual machine for the port forwarding rule", - "length": 255, + "description": "ID of the storage fs vm", "name": "virtualmachineid", - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "VM guest nic Secondary ip address for the port forwarding rule", - "length": 255, - "name": "vmguestip", - "required": false, - "since": "4.5", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { - "description": "the private end port of the port forwarding rule", - "length": 255, - "name": "privateendport", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the private start port of the port forwarding rule", - "length": 255, - "name": "privateport", - "required": false, - "type": "integer" + "description": "the project name of the shared filesystem", + "name": "project", + "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" + }, + { + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "size of the shared filesystem", + "name": "size", + "type": "long" }, { - "description": "the ID of the port forwarding rule", - "length": 255, - "name": "id", - "related": "updatePortForwardingRule", - "required": true, - "since": "4.4", - "type": "uuid" - } - ], - "related": "", - "response": [ + "description": "ID of the storage fs data volume", + "name": "volumeid", + "type": "string" + }, { - "description": "the VM ID for the port forwarding rule", - "name": "virtualmachineid", + "description": "ID of the shared filesystem", + "name": "id", "type": "string" }, { - "description": "the public ip address id for the port forwarding rule", - "name": "ipaddressid", + "description": "the shared filesystem's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "path of the domain to which the shared filesystem", + "name": "domainpath", "type": "string" }, { - "description": "the ending port of port forwarding rule's private port range", - "name": "publicendport", + "description": "the ID of the domain associated with the shared filesystem", + "name": "domainid", "type": "string" }, { - "description": "the starting port of port forwarding rule's private port range", - "name": "privateport", + "description": "provisioning type used in the shared filesystem", + "name": "provisioningtype", "type": "string" }, + {}, { - "description": "the VM name for the port forwarding rule", - "name": "virtualmachinename", + "description": "name of the shared filesystem", + "name": "name", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "disk offering for the shared filesystem", + "name": "diskofferingname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" }, { "description": "the UUID of the latest async job acting on this object", @@ -115171,1003 +109062,1027 @@ "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", + "description": "the list of nics associated with the shared filesystem", + "name": "nic", "response": [ { - "description": "the project name where tag belongs to", - "name": "project", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" } ], "type": "list" }, { - "description": "is firewall for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the shared filesystem's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, {}, { - "description": "the ending port of port forwarding rule's private port range", - "name": "privateendport", - "type": "string" + "description": "disk offering for the shared filesystem has custom size", + "name": "iscustomdiskoffering", + "type": "boolean" }, { - "description": "the id of the guest network the port forwarding rule belongs to", - "name": "networkid", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the starting port of port forwarding rule's public port range", - "name": "publicport", + "description": "Name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the vm ip address for the port forwarding rule", - "name": "vmguestip", + "description": "the account associated with the shared filesystem", + "name": "account", "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the shared filesystem provider", + "name": "provider", "type": "string" }, { - "description": "the ID of the port forwarding rule", - "name": "id", + "description": "the state of the shared filesystem", + "name": "state", "type": "string" }, { - "description": "the protocol of the port forwarding rule", - "name": "protocol", + "description": "the filesystem format", + "name": "filesystem", "type": "string" }, { - "description": "the public ip address for the port forwarding rule", - "name": "ipaddress", + "description": "the project ID of the shared filesystem", + "name": "projectid", "type": "string" }, { - "description": "the VM display name for the port forwarding rule", - "name": "virtualmachinedisplayname", + "description": "disk offering ID for the shared filesystem", + "name": "diskofferingid", "type": "string" }, - {} - ] + { + "description": "the write (IO) of disk on the shared filesystem", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "name of the storage pool hosting the data volume", + "name": "storage", + "type": "string" + } + ], + "since": "4.20.0" }, { - "description": "Acquires and associates a public IP to an account.", - "isasync": true, - "name": "associateIpAddress", + "description": "Updates a project role permission and/or order", + "isasync": false, + "name": "updateProjectRolePermission", "params": [ { - "description": "the ID of the domain to associate with this IP address", + "description": "The parent role permission uuid, use 0 to move this rule at the top of the list", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "ruleorder", + "related": "", "required": false, - "type": "uuid" + "type": "list" }, { - "description": "IP Address to be associated", + "description": "ID of the project role", "length": 255, - "name": "ipaddress", - "required": false, - "type": "string" + "name": "projectroleid", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "the account to associate with this IP address", + "description": "ID of project where project role permission is to be updated", "length": 255, - "name": "account", - "required": false, - "type": "string" + "name": "projectid", + "related": "activateProject,suspendProject", + "required": true, + "type": "uuid" }, { - "description": "the ID of the availability zone you want to acquire an public IP address from", + "description": "Project Role permission rule id", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "projectrolepermissionid", + "related": "", "required": false, "type": "uuid" }, { - "description": "the VPC you want the IP address to be associated with", + "description": "Rule permission, can be: allow or deny", "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", + "name": "permission", "required": false, - "type": "uuid" + "type": "string" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "should be set to true if public IP is required to be transferable across zones, if not specified defaults to false", - "length": 255, - "name": "isportable", - "required": false, + "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": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {} + ], + "since": "4.15.0" + }, + { + "description": "Enables static NAT for given IP address", + "isasync": false, + "name": "enableStaticNat", + "params": [ { - "description": "The network this IP address should be associated to.", + "description": "The network of the VM the static NAT will be enabled for. Required when public IP address is not associated with any guest network yet (VPC case)", "length": 255, "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listBrocadeVcsDeviceNetworks", "required": false, "type": "uuid" }, { - "description": "Deploy VM for the project", + "description": "the public IP address ID for which static NAT feature is being enabled", "length": 255, - "name": "projectid", - "related": "", - "required": false, + "name": "ipaddressid", + "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, "type": "uuid" }, { - "description": "an optional field, whether to the display the IP to the end user or not", + "description": "VM guest NIC secondary IP address for the port forwarding rule", "length": 255, - "name": "fordisplay", + "name": "vmguestip", "required": false, - "since": "4.4", - "type": "boolean" + "type": "string" }, { - "description": "region ID from where portable IP is to be associated.", + "description": "the ID of the virtual machine for enabling static NAT feature", "length": 255, - "name": "regionid", - "related": "", - "required": false, - "type": "integer" + "name": "virtualmachineid", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" } ], - "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", "response": [ { - "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", - "name": "state", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", - "name": "hasrules", + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + { + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the ID of the Network associated with the IP address", - "name": "associatednetworkid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {} + ] + }, + { + "description": "Deletes a Zone.", + "isasync": false, + "name": "deleteZone", + "params": [ { - "description": "the name of the Network associated with the IP address", - "name": "associatednetworkname", + "description": "the ID of the Zone", + "length": 255, + "name": "id", + "related": "createZone,listZones", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "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 the entity/resource has annotations", - "name": "hasannotations", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" - }, + } + ] + }, + { + "description": "Adds user to a project", + "isasync": true, + "name": "addUserToProject", + "params": [ { - "description": "the VLAN associated with the IP address", - "name": "vlanname", - "type": "string" + "description": "ID of the project role", + "length": 255, + "name": "projectroleid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "virtual machine id the ip address is assigned to", - "name": "virtualmachineid", + "description": "email ID of user to which invitation to the project is going to be sent", + "length": 255, + "name": "email", + "required": false, "type": "string" }, { - "description": "the domain ID the public IP address is associated with", - "name": "domainid", + "description": "Project role type to be assigned to the user - Admin/Regular", + "length": 255, + "name": "roletype", + "required": false, "type": "string" }, { - "description": "the project id of the ipaddress", + "description": "ID of the project to add the user to", + "length": 255, "name": "projectid", + "related": "activateProject,suspendProject", + "required": true, + "type": "uuid" + }, + { + "description": "Name of the user to be added to the project", + "length": 255, + "name": "username", + "required": true, "type": "string" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the name of the Network where ip belongs to", - "name": "networkname", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the ID of the Network where ip belongs to", - "name": "networkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "is public ip for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {} + ], + "since": "4.14" + }, + { + "description": "Disables HA cluster-wide", + "isasync": true, + "name": "disableHAForCluster", + "params": [ { - "description": "public IP address id", - "name": "id", - "type": "string" + "description": "ID of the cluster", + "length": 255, + "name": "clusterid", + "related": "addCluster", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "virtual machine name the ip address is assigned to", - "name": "virtualmachinename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "path of the domain to which the public IP address belongs", - "name": "domainpath", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", - "name": "vmipaddress", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {} + ], + "since": "4.11" + }, + { + "description": "Expunge a Shared FileSystem by id", + "isasync": true, + "name": "expungeSharedFileSystem", + "params": [ + { + "description": "the ID of the shared filesystem to expunge", + "length": 255, + "name": "id", + "related": "", + "required": false, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the virtual network for the IP address", - "name": "forvirtualnetwork", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the ID of the zone the public IP address belongs to", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.20.0" + }, + { + "description": "Recovers a virtual machine.", + "isasync": false, + "name": "recoverVirtualMachine", + "params": [ + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "recoverVirtualMachine,attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "true if this ip is for static nat, false otherwise", - "name": "isstaticnat", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "the list of resource tags associated with ip address", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "list" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, { - "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", - "name": "purpose", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", - "name": "vlanid", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the name of the zone the public IP address belongs to", - "name": "zonename", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "public IP address", - "name": "ipaddress", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, + {}, + { + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "date the public IP address was acquired", - "name": "allocated", + "description": "the date when this virtual machine was created", + "name": "created", "type": "date" }, { - "description": "virtual machine type the ip address is assigned to", - "name": "virtualmachinetype", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, - {}, { - "description": "is public IP portable across the zones", - "name": "isportable", + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", - "name": "virtualmachinedisplayname", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" }, { - "description": "true if range is dedicated for System VMs", - "name": "forsystemvms", - "type": "boolean" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, - {}, { - "description": "the domain the public IP address is associated with", - "name": "domain", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "VPC name the ip belongs to", - "name": "vpcname", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", - "name": "issystem", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if the IP address is a source nat address, false otherwise", - "name": "issourcenat", - "type": "boolean" + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", + "type": "string" }, { - "description": "the account the public IP address is associated with", - "name": "account", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "VPC id the ip belongs to", - "name": "vpcid", - "type": "string" - } - ] - }, - { - "description": "Get the SF Volume Access Group IDs", - "isasync": false, - "name": "getSolidFireVolumeAccessGroupIds", - "params": [ + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, { - "description": "Cluster UUID", - "length": 255, - "name": "clusterid", - "required": true, + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "Storage Pool UUID", - "length": 255, - "name": "storageid", - "required": true, + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "SolidFire Volume Access Group Ids", - "name": "solidFireVolumeAccessGroupIds", - "type": "long[]" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "User VM type", + "name": "vmtype", "type": "string" }, - {} - ] - }, - { - "description": "Delete site to site vpn connection", - "isasync": true, - "name": "deleteVpnConnection", - "params": [ { - "description": "id of vpn connection", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Lists all alerts types", - "isasync": false, - "name": "listAlertTypes", - "params": [], - "related": "listAlerts", - "response": [ - {}, { - "description": "the id of the alert", - "name": "id", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the date and time the alert was sent", - "name": "sent", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", "type": "date" }, { - "description": "One of the following alert types: MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, SECONDARY_STORAGE = 6, HOST = 7, USERVM = 8, DOMAIN_ROUTER = 9, CONSOLE_PROXY = 10, ROUTING = 11: lost connection to default route (to the gateway), STORAGE_MISC = 12, USAGE_SERVER = 13, MANAGMENT_NODE = 14, DOMAIN_ROUTER_MIGRATE = 15, CONSOLE_PROXY_MIGRATE = 16, USERVM_MIGRATE = 17, VLAN = 18, SSVM = 19, USAGE_SERVER_RESULT = 20, STORAGE_DELETE = 21, UPDATE_RESOURCE_COUNT = 22, USAGE_SANITY_RESULT = 23, DIRECT_ATTACHED_PUBLIC_IP = 24, LOCAL_STORAGE = 25, RESOURCE_LIMIT_EXCEEDED = 26, SYNC = 27, UPLOAD_FAILED = 28, OOBM_AUTH_ERROR = 29", - "name": "type", - "type": "short" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" }, { - "description": "description of the alert", - "name": "description", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "the name of the alert", - "name": "name", + "description": "the project id of the vm", + "name": "projectid", "type": "string" - } - ] - }, - { - "description": "Creates a ACL rule in the given network (the network has to belong to VPC)", - "isasync": true, - "name": "createNetworkACL", - "params": [ + }, { - "description": "the traffic type for the ACL,can be ingress or egress, defaulted to ingress if not specified", - "length": 255, - "name": "traffictype", - "required": false, + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "The network of the VM the ACL will be created for", - "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the ending port of ACL", - "length": 255, - "name": "endport", - "required": false, - "type": "integer" + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" }, { - "description": "the CIDR list to allow traffic from/to. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "the starting port of ACL", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" + "description": "the user's name who deployed the virtual machine", + "name": "username", + "type": "string" }, { - "description": "A description indicating why the ACL rule is required.", - "length": 255, - "name": "reason", - "required": false, + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "type of the ICMP message being sent", - "length": 255, - "name": "icmptype", - "required": false, - "type": "integer" + "description": "the state of the virtual machine", + "name": "state", + "type": "string" }, { - "description": "The network of the VM the ACL will be created for", - "length": 255, - "name": "aclid", - "related": "createNetworkACLList", - "required": false, - "type": "uuid" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "error code for this ICMP message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" }, { - "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", - "length": 255, - "name": "protocol", - "required": true, + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "The number of the ACL item, its ordering", - "length": 255, - "name": "number", - "required": false, - "type": "integer" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, + {}, { - "description": "scl entry action, allow or deny", - "length": 255, - "name": "action", - "required": false, - "type": "string" - } - ], - "related": "updateNetworkACLItem,moveNetworkAclItem", - "response": [ - { - "description": "Action of ACL Item. Allow/Deny", - "name": "action", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the starting port of ACL's port range", - "name": "startport", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" }, { - "description": "an explanation on why this ACL rule is being applied", - "name": "reason", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, - {}, { - "description": "the list of resource tags associated with the network ACLs", - "name": "tags", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" - } - ], - "type": "list" - }, - { - "description": "the traffic type for the ACL", - "name": "traffictype", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the name of the ACL this item belongs to", - "name": "aclname", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the ID of the ACL this item belongs to", - "name": "aclid", - "type": "string" - }, - { - "description": "Number of the ACL Item", - "name": "number", - "type": "integer" - }, - { - "description": "the ID of the ACL Item", - "name": "id", - "type": "string" - }, - { - "description": "the protocol of the ACL", - "name": "protocol", - "type": "string" - }, - { - "description": "the ending port of ACL's port range", - "name": "endport", - "type": "string" - }, - { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" - }, - {} - ] - }, - { - "description": "Resets the SSH Key for virtual machine. The virtual machine must be in a \"Stopped\" state. [async]", - "isasync": true, - "name": "resetSSHKeyForVirtualMachine", - "params": [ - { - "description": "an optional project for the ssh key", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "name of the ssh key pair used to login to the virtual machine", - "length": 255, - "name": "keypair", - "required": false, - "type": "string" - }, - { - "description": "an optional account for the ssh key. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "names of the ssh key pairs to be used to login to the virtual machine", - "length": 255, - "name": "keypairs", - "required": false, - "since": "4.17", - "type": "list" - }, - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ + }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" } ], "type": "set" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" - }, - { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, - { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" - }, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", @@ -116182,57 +110097,57 @@ "type": "string" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" + "description": "account owning the security group rule", + "name": "account", + "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" }, { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", + "description": "the type of the ICMP message response", + "name": "icmptype", "type": "integer" }, { - "description": "account owning the security group rule", - "name": "account", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -116241,43 +110156,43 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], @@ -116286,63 +110201,23 @@ ], "type": "set" }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, { "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -116351,28 +110226,28 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { @@ -116380,11 +110255,6 @@ "name": "resourceid", "type": "string" }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, { "description": "the project id the tag belongs to", "name": "projectid", @@ -116393,14 +110263,49 @@ ], "type": "set" }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, { "description": "the number of virtualmachines associated with this securitygroup", "name": "virtualmachinecount", "type": "integer" }, { - "description": "the project name of the group", - "name": "project", + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", "type": "string" }, { @@ -116408,8 +110313,13 @@ "name": "ingressrule", "response": [ { - "description": "security group name", - "name": "securitygroupname", + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" }, { @@ -116421,432 +110331,143 @@ "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, { "description": "tag value", "name": "value", "type": "string" }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, { "description": "id of the resource", "name": "resourceid", "type": "string" }, { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { "description": "the ID of the domain associated with the tag", "name": "domainid", "type": "string" - } - ], - "type": "set" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" - }, - { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" - }, - { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" - }, - { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" - }, - { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, - { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" } ], "type": "set" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { @@ -116855,28 +110476,8 @@ "type": "map" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, - { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" - }, - { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { @@ -116884,180 +110485,96 @@ "name": "hasannotations", "type": "boolean" }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" - }, - { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" - }, - { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" - }, - { - "description": "Guest vm Boot Mode", - "name": "bootmode", - "type": "string" - }, - { - "description": "Guest vm Boot Type", - "name": "boottype", - "type": "string" - }, - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" - }, - { - "description": "ssh key-pairs", - "name": "keypairs", - "type": "string" - }, - { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" - }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", - "type": "string" - }, { "description": "the speed of each vCPU", "name": "cpuspeed", "type": "integer" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" - }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" - }, - { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" - }, - { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - {}, - { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the project name of the vm", + "name": "project", "type": "string" }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, { "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - }, - { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { @@ -117066,211 +110583,248 @@ "type": "boolean" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the name of the virtual machine", + "name": "name", + "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, + {}, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, - {}, { "description": "path of the domain in which the virtual machine exists", "name": "domainpath", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" } ] }, { - "description": "Deletes a management network IP range. This action is only allowed when no IPs in this range are allocated.", - "isasync": true, - "name": "deleteManagementNetworkIpRange", + "description": "upload an existing template into the CloudStack cloud. ", + "isasync": false, + "name": "getUploadParamsForTemplate", "params": [ { - "description": "UUID of POD, where the IP range belongs to.", + "description": "true if the template supports the sshkey upload feature; default is false", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": true, - "type": "uuid" + "name": "sshkeyenabled", + "required": false, + "type": "boolean" }, { - "description": "The vlan id the ip range sits on", + "description": "true if this template is a featured template, false otherwise", "length": 255, - "name": "vlan", - "required": true, - "type": "string" + "name": "isfeatured", + "required": false, + "type": "boolean" }, { - "description": "The ending IP address.", + "description": "the name of the volume/template/iso", "length": 255, - "name": "endip", + "name": "name", "required": true, "type": "string" }, { - "description": "The starting IP address.", + "description": "true if the template supports the password reset feature; default is false", "length": 255, - "name": "startip", - "required": true, - "type": "string" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "name": "passwordenabled", + "required": false, + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the format for the volume/template/iso. Possible values include QCOW2, OVA, and VHD.", + "length": 255, + "name": "format", + "required": true, "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Template details in key/value pairs.", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if the template is available to all accounts; default is true", + "length": 255, + "name": "ispublic", + "required": false, "type": "boolean" }, - {} - ], - "since": "4.11.0.0" - }, - { - "description": "Add a supported Kubernetes version", - "isasync": false, - "name": "addKubernetesSupportedVersion", - "params": [ { - "description": "the URL of the binaries ISO for Kubernetes supported version", + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", "length": 255, - "name": "url", + "name": "isdynamicallyscalable", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the minimum number of CPUs to be set with the Kubernetes version", + "description": "the ID of the OS Type that best represents the OS of this template. Not required for VMware as the guest OS is obtained from the OVF file.", "length": 255, - "name": "mincpunumber", - "required": true, - "type": "integer" + "name": "ostypeid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the semantic version of the Kubernetes version. It needs to be specified in MAJOR.MINOR.PATCH format", - "length": 255, - "name": "semanticversion", - "required": true, + "description": "the display text of the template. This is usually used for display purposes.", + "length": 4096, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "the checksum value of the binaries ISO. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "description": "Upload volume/template/iso for the project", "length": 255, - "name": "checksum", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "If set to true the Kubernetes supported version ISO will bypass Secondary Storage and be downloaded to Primary Storage on deployment. Default is false", + "description": "the tag for this template.", "length": 255, - "name": "directdownload", + "name": "templatetag", "required": false, - "since": "4.18.2", - "type": "boolean" + "type": "string" }, { - "description": "the name of the Kubernetes supported version", + "description": "an optional accountName. Must be used with domainId.", "length": 255, - "name": "name", + "name": "account", "required": false, "type": "string" }, { - "description": "the minimum RAM size in MB to be set with the Kubernetes version", + "description": "(VMware only) true if VM deployments should preserve all the configurations defined for this template", "length": 255, - "name": "minmemory", - "required": true, - "type": "integer" + "name": "deployasis", + "required": false, + "since": "4.15.1", + "type": "boolean" }, { - "description": "the CPU arch of the Kubernetes ISO. Valid options are: x86_64, aarch64", + "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", "length": 255, "name": "arch", "required": false, @@ -117278,436 +110832,270 @@ "type": "string" }, { - "description": "the ID of the zone in which Kubernetes supported version will be available", + "description": "the ID of the zone the volume/template/iso is to be hosted on", "length": 255, "name": "zoneid", - "related": "listZones", - "required": false, + "related": "createZone,listZones", + "required": true, "type": "uuid" - } - ], - "related": "listKubernetesSupportedVersions,updateKubernetesSupportedVersion", - "response": [ - { - "description": "the name of the binaries ISO for Kubernetes supported version", - "name": "isoname", - "type": "string" - }, - { - "description": "whether Kubernetes supported version supports HA, multi-control nodes", - "name": "supportsha", - "type": "boolean" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the id of the binaries ISO for Kubernetes supported version", - "name": "isoid", - "type": "string" - }, - { - "description": "the minimum number of CPUs needed for the Kubernetes supported version", - "name": "mincpunumber", - "type": "integer" - }, - { - "description": "the date when this Kubernetes supported version was created", - "name": "created", - "type": "date" - }, - { - "description": "the id of the zone in which Kubernetes supported version is available", - "name": "zoneid", - "type": "string" }, { - "description": "the minimum RAM size in MB needed for the Kubernetes supported version", - "name": "minmemory", + "description": "32 or 64 bits support. 64 by default", + "length": 255, + "name": "bits", + "required": false, "type": "integer" }, { - "description": "the state of the binaries ISO for Kubernetes supported version", - "name": "isostate", - "type": "string" - }, - { - "description": "the enabled or disabled state of the Kubernetes supported version", - "name": "state", - "type": "string" - }, - { - "description": "the name of the zone in which Kubernetes supported version is available", - "name": "zonename", - "type": "string" - }, - { - "description": "whether Kubernetes supported version supports Autoscaling", - "name": "supportsautoscaling", - "type": "boolean" - }, - { - "description": "KVM Only: true if the ISO for the Kubernetes supported version is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the id of the Kubernetes supported version", - "name": "id", - "type": "string" + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, - {}, { - "description": "Name of the Kubernetes supported version", - "name": "name", + "description": "the target hypervisor for the template", + "length": 255, + "name": "hypervisor", + "required": true, "type": "string" }, { - "description": "Kubernetes semantic version", - "name": "semanticversion", - "type": "string" - } - ] - }, - { - "description": "Link or unlink a userdata to a template.", - "isasync": false, - "name": "linkUserDataToTemplate", - "params": [ - { - "description": "the ID of the userdata that has to be linked to template/ISO. If not provided existing userdata will be unlinked from the template/ISO", + "description": "the checksum value of this volume/template/iso The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", "length": 255, - "name": "userdataid", - "related": "", + "name": "checksum", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the ID of the ISO for the virtual machine", + "description": "true if this template requires HVM", "length": 255, - "name": "isoid", - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "requireshvm", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "an optional override policy of the userdata. Possible values are - ALLOWOVERRIDE, APPEND, DENYOVERRIDE. Default policy is allowoverride", + "description": "true if the template or its derivatives are extractable; default is false", "length": 255, - "name": "userdatapolicy", + "name": "isextractable", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the ID of the template for the virtual machine", + "description": "true if the template type is routing i.e., if template is used to deploy router", "length": 255, - "name": "templateid", - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,linkUserDataToTemplate,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "isrouting", "required": false, - "type": "uuid" + "type": "boolean" } ], - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "getUploadParamsForIso", "response": [ { - "description": "the template display text", - "name": "displaytext", - "type": "string" - }, - { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", - "type": "string" - }, - { - "description": "the type of the template", - "name": "templatetype", - "type": "string" - }, - { - "description": "the status of the template", - "name": "status", - "type": "string" - }, - { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the name of userdata linked to this template", - "name": "userdataname", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project name of the template", - "name": "project", - "type": "string" - }, - { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", - "type": "string" - }, - { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" + "description": "the template/volume ID", + "name": "id", + "type": "uuid" }, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "signature to be sent in the POST request.", + "name": "signature", "type": "string" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, {}, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" - }, - { - "description": "the URL which the template/iso is registered from", - "name": "url", + "description": "encrypted data to be sent in the POST request.", + "name": "metadata", "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the tag of this template", - "name": "templatetag", + "description": "the timestamp after which the signature expires", + "name": "expires", "type": "string" }, - { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "the ID of the zone for this template", - "name": "zoneid", - "type": "string" - }, + "description": "POST url to upload the file to", + "name": "postURL", + "type": "url" + } + ], + "since": "4.6.0" + }, + { + "description": "Resets network permissions.", + "isasync": false, + "name": "resetNetworkPermissions", + "params": [ { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" - }, + "description": "the network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the size of the template", - "name": "size", - "type": "long" - }, - { - "description": "the template ID", - "name": "id", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {} + ], + "since": "4.17.0" + }, + { + "description": "Updates an existing Bgp Peer.", + "isasync": true, + "name": "updateBgpPeer", + "params": [ { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "The password of the Bgp Peer.", + "length": 255, + "name": "password", + "required": false, "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" - }, - { - "description": "additional key/value details tied with template", + "description": "BGP peer details in key/value pairs.", + "length": 255, "name": "details", + "required": false, "type": "map" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "The AS number of the Bgp Peer.", + "length": 255, + "name": "asnumber", + "required": false, + "type": "long" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" + "description": "Id of the Bgp Peer", + "length": 255, + "name": "id", + "related": "updateBgpPeer", + "required": true, + "type": "uuid" }, { - "description": "VMware only: true if template is deployed without orchestrating disks and networks but \"as-is\" defined in the template.", - "name": "deployasis", + "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details are removed for this resource; if false or not set, no action)", + "length": 255, + "name": "cleanupdetails", + "required": false, "type": "boolean" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "The IPv4 address of the Bgp Peer.", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "The IPv6 address of the Bgp Peer.", + "length": 255, + "name": "ip6address", + "required": false, "type": "string" - }, - { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" - }, + } + ], + "related": "", + "response": [ + {}, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "date when this bgp peer was created.", + "name": "created", + "type": "date" }, { - "description": "the template name", - "name": "name", + "description": "the account of the bgp peer", + "name": "account", "type": "string" }, { - "description": "checksum of the template", - "name": "checksum", + "description": "IPv6 address of bgp peer", + "name": "ip6address", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "AS number of bgp peer", + "name": "asnumber", + "type": "long" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "additional key/value details of the bgp peer", + "name": "details", + "type": "map" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "id of zone to which the bgp peer belongs to.", + "name": "zoneid", "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "the domain name of the bgp peer", + "name": "domain", + "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "password of bgp peer", + "name": "password", + "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the project id of the bgp peer", + "name": "projectid", "type": "string" }, + {}, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "id of the bgp peer", + "name": "id", "type": "string" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", - "type": "boolean" + "description": "name of zone to which the bgp peer belongs to.", + "name": "zonename", + "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "the domain ID of the bgp peer", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name of the bgp peer", + "name": "project", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -117715,420 +111103,295 @@ "type": "integer" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "IPv4 address of bgp peer", + "name": "ipaddress", "type": "string" - }, + } + ], + "since": "4.20.0" + }, + { + "description": "Release the dedication for host", + "isasync": true, + "name": "releaseDedicatedHost", + "params": [ { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the ID of the host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", - "type": "string" - } - ], - "since": "4.18.0" + {} + ] }, { - "description": "Lists load balancer rules.", - "isasync": false, - "name": "listGlobalLoadBalancerRules", + "description": "Accepts or declines project invitation", + "isasync": true, + "name": "updateProjectInvitation", "params": [ { - "description": "region ID", - "length": 255, - "name": "regionid", - "related": "", - "required": false, - "type": "integer" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", + "description": "account that is joining the project", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" }, { - "description": "", + "description": "if true, accept the invitation, decline if false. True by default", "length": 255, - "name": "pagesize", + "name": "accept", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "the ID of the global load balancer rule", + "description": "User UUID, required for adding account from external provisioning system", "length": 255, - "name": "id", - "related": "listGlobalLoadBalancerRules,updateGlobalLoadBalancerRule", + "name": "userid", + "related": "createUser,enableUser,getUser", "required": false, "type": "uuid" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "list invitations for specified account; this parameter has to be specified with domainId", "length": 255, - "name": "account", + "name": "token", "required": false, "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "id of the project to join", "length": 255, "name": "projectid", - "related": "", - "required": false, + "related": "activateProject,suspendProject", + "required": true, "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {}, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" - }, + } + ], + "since": "3.0.0" + }, + { + "description": "This is supposed to revert a volume snapshot. This command is only supported with KVM so far", + "isasync": true, + "name": "revertSnapshot", + "params": [ { - "description": "", + "description": "The ID of the snapshot", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "id", + "related": "revertSnapshot,listSnapshots", + "required": true, + "type": "uuid" } ], - "related": "updateGlobalLoadBalancerRule", + "related": "listSnapshots", "response": [ { - "description": "Load balancing method used for the global load balancer", - "name": "gslblbmethod", + "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", + "name": "state", + "type": "state" + }, + { + "description": "ID of the disk volume", + "name": "volumeid", "type": "string" }, { - "description": "the description of the global load balancer rule", - "name": "description", + "description": "the account associated with the snapshot", + "name": "account", "type": "string" }, - {}, { - "description": "GSLB service type", - "name": "gslbservicetype", + "description": "state of the snapshot on the datastore", + "name": "datastorestate", "type": "string" }, { - "description": "the domain of the load balancer rule", - "name": "domain", + "description": "ID of the snapshot", + "name": "id", "type": "string" }, - {}, { - "description": "name of the global load balancer rule", - "name": "name", + "description": "type of the datastore for the snapshot entry", + "name": "datastoretype", "type": "string" }, + {}, + {}, { - "description": "global load balancer rule ID", - "name": "id", + "description": "state of the disk volume", + "name": "volumestate", "type": "string" }, { - "description": "DNS domain name given for the global load balancer", - "name": "gslbdomainname", + "description": "virtual size of backedup snapshot on image store", + "name": "virtualsize", + "type": "long" + }, + { + "description": "name of the datastore for the snapshot entry", + "name": "datastorename", "type": "string" }, { - "description": "the account of the load balancer rule", - "name": "account", + "description": "name of the snapshot", + "name": "name", "type": "string" }, { - "description": "the project id of the load balancer", - "name": "projectid", + "description": "ID of the datastore for the snapshot entry", + "name": "datastoreid", "type": "string" }, { - "description": "the project name of the load balancer", - "name": "project", + "description": "the project id of the snapshot", + "name": "projectid", "type": "string" }, { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", + "description": "valid location types are primary and secondary.", + "name": "locationtype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "session persistence method used for the global load balancer", - "name": "gslbstickysessionmethodname", + "description": "type of the disk volume", + "name": "volumetype", "type": "string" }, { - "description": "Region Id in which global load balancer is created", - "name": "regionid", - "type": "integer" + "description": "the domain ID of the snapshot's account", + "name": "domainid", + "type": "string" }, { - "description": "List of load balancer rules that are part of GSLB rule", - "name": "loadbalancerrule", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the name of the load balancer", - "name": "name", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the load balancer rule ID", - "name": "id", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the list of resource tags associated with load balancer", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the public port", - "name": "publicport", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the domain of the load balancer rule", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the name of the zone the load balancer rule belongs to", - "name": "zonename", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", - "name": "cidrlist", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project name of the load balancer", + "description": "the project name where tag belongs to", "name": "project", "type": "string" }, { - "description": "the description of the load balancer", - "name": "description", - "type": "string" - }, - { - "description": "the project id of the load balancer", + "description": "the project id the tag belongs to", "name": "projectid", "type": "string" }, { - "description": "the public ip address", - "name": "publicip", - "type": "string" - }, - { - "description": "the id of the guest network the lb rule belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the account of the load balancer rule", - "name": "account", - "type": "string" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "the protocol of the loadbalanacer rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the id of the zone the rule belongs to", - "name": "zoneid", - "type": "string" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the public ip address id", - "name": "publicipid", - "type": "string" - }, - { - "description": "the private port", - "name": "privateport", - "type": "string" - }, - { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the domain ID of the load balancer rule", - "name": "domainid", + "description": "tag key name", + "name": "key", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "physical size of backedup snapshot on image store", + "name": "physicalsize", + "type": "long" }, { - "description": "the domain ID of the load balancer rule", - "name": "domainid", + "description": "the type of the snapshot", + "name": "snapshottype", "type": "string" - } - ] - }, - { - "description": "Release the dedication for cluster", - "isasync": true, - "name": "releaseDedicatedCluster", - "params": [ - { - "description": "the ID of the Cluster", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "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", @@ -118136,83 +111399,23 @@ "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {}, - {} - ] - }, - { - "description": "Updates a disk offering.", - "isasync": false, - "name": "deleteDiskOffering", - "params": [ - { - "description": "ID of the disk offering", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "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", + "description": "the project name of the snapshot", + "name": "project", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Get Kubernetes cluster config", - "isasync": false, - "name": "getKubernetesClusterConfig", - "params": [ - { - "description": "the ID of the Kubernetes cluster", - "length": 255, - "name": "id", - "related": "createKubernetesCluster,startKubernetesCluster", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the config data of the cluster", - "name": "configdata", + "description": "display name of the os on volume", + "name": "osdisplayname", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the Domain the snapshot's account belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the id of the container cluster", - "name": "id", + "description": "the status of the template", + "name": "status", "type": "string" }, { @@ -118221,434 +111424,308 @@ "type": "integer" }, { - "description": "Name of the container cluster", - "name": "name", + "description": "id of the availability zone", + "name": "zoneid", "type": "string" }, - {} - ] - }, - { - "description": "Deletes a autoscale policy.", - "isasync": true, - "name": "deleteAutoScalePolicy", - "params": [ - { - "description": "the ID of the autoscale policy", - "length": 255, - "name": "id", - "related": "listAutoScalePolicies", - "required": true, - "type": "uuid" - } - ], - "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the disk volume", + "name": "volumename", "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", + "description": "valid types are hourly, daily, weekly, monthy, template, and none.", + "name": "intervaltype", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "download progress of a snapshot", + "name": "downloaddetails", + "type": "map" }, - {} - ] - }, - { - "description": "Deletes a role", - "isasync": false, - "name": "deleteRole", - "params": [ - { - "description": "ID of the role", - "length": 255, - "name": "id", - "related": "createRole,listRoles,updateRole", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain name of the snapshot's account", + "name": "domain", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": " the date the snapshot was created", + "name": "created", + "type": "date" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", + "name": "revertable", + "type": "boolean" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" + }, + { + "description": "id of the os on volume", + "name": "ostypeid", + "type": "string" } - ], - "since": "4.9.0" + ] }, { - "description": " delete a Cisco Nexus VSM device", + "description": "Updates a condition for VM auto scaling", "isasync": true, - "name": "deleteCiscoNexusVSM", + "name": "updateCondition", "params": [ { - "description": "Id of the Cisco Nexus 1000v VSM device to be deleted", + "description": "the ID of the condition.", "length": 255, "name": "id", - "related": "listCiscoNexusVSMs,disableCiscoNexusVSM", + "related": "", "required": true, "type": "uuid" + }, + { + "description": "Value for which the Counter will be evaluated with the Operator selected.", + "length": 255, + "name": "threshold", + "required": true, + "type": "long" + }, + { + "description": "Relational Operator to be used with threshold. Valid values are EQ, GT, LT, GE, LE.", + "length": 255, + "name": "relationaloperator", + "required": true, + "type": "string" } ], "response": [ - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, - {}, { "description": "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": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" } - ] + ], + "since": "4.18.0" }, { - "description": "List internal LB VMs.", + "description": "Lists Regions", "isasync": false, - "name": "listInternalLoadBalancerVMs", + "name": "listRegions", "params": [ { - "description": "the Pod ID of the Internal LB VM", + "description": "", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the ID of the Internal LB VM", + "description": "", "length": 255, - "name": "id", - "related": "deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "List Region by region name.", "length": 255, - "name": "account", + "name": "name", "required": false, "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "List Region by region ID.", "length": 255, - "name": "isrecursive", + "name": "id", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "if true is passed for this parameter, also fetch last executed health check results for the VM. Default is false", + "description": "List by keyword", "length": 255, - "name": "fetchhealthcheckresults", + "name": "keyword", "required": false, - "since": "4.14", - "type": "boolean" - }, + "type": "string" + } + ], + "related": "addRegion", + "response": [ + {}, + {}, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, + "description": "true if security groups support is enabled, false otherwise", + "name": "portableipserviceenabled", "type": "boolean" }, { - "description": "List Internal LB VMs by VPC", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" + "description": "the end point of the region", + "name": "endpoint", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the name of the region", + "name": "name", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "true if GSLB service is enabled in the region, false otherwise", + "name": "gslbserviceenabled", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the ID of the region", + "name": "id", "type": "integer" }, { - "description": "if true is passed for this parameter, list only VPC Internal LB VMs", - "length": 255, - "name": "forvpc", - "required": false, - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Attempts Migration of a system virtual machine to the host specified.", + "isasync": true, + "name": "migrateSystemVm", + "params": [ { - "description": "list by network id", + "description": "destination Host ID to migrate VM to", "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", "required": false, "type": "uuid" }, { - "description": "the name of the Internal LB VM", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "the Zone ID of the Internal LB VM", + "description": "Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", "required": false, + "since": "4.16.0", "type": "uuid" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "the state of the Internal LB VM", + "description": "the ID of the virtual machine", "length": 255, - "name": "state", - "required": false, - "type": "string" + "name": "virtualmachineid", + "related": "migrateSystemVm", + "required": true, + "type": "uuid" }, { - "description": "the host ID of the Internal LB VM", + "description": "Automatically select a destination host which do not require storage migration, if hostId and storageId are not specified. false by default", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", + "name": "autoselect", "required": false, - "type": "uuid" + "since": "4.16.0", + "type": "boolean" } ], - "related": "listRouters", + "related": "", "response": [ { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", - "type": "boolean" - }, - { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", - "type": "boolean" - }, - { - "description": "the domain ID associated with the router", - "name": "domainid", - "type": "string" - }, - { - "description": "the public MAC address for the router", + "description": "the public MAC address for the system VM", "name": "publicmacaddress", "type": "string" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", - "type": "string" - }, - { - "description": "the state of the router", - "name": "state", - "type": "state" - }, - { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" - }, - { - "description": "the version of the code / software in the router", - "name": "softwareversion", - "type": "string" - }, - { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", - "type": "string" - }, - { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", - "type": "string" - }, - { - "description": "the guest IP address for the router", - "name": "guestipaddress", - "type": "string" - }, - { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "the name of the system VM", + "name": "name", "type": "string" }, { - "description": "the template name for the router", + "description": "the template name for the system VM", "name": "templatename", "type": "string" }, { - "description": "the public IP address for the router", - "name": "publicip", + "description": "the control state of the host for the system VM", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "the gateway for the system VM", + "name": "gateway", "type": "string" }, { - "description": "the first DNS for the router", - "name": "dns1", - "type": "string" + "description": "the date and time the system VM was created", + "name": "created", + "type": "date" }, + {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the second DNS for the system VM", + "name": "dns2", "type": "string" }, { - "description": "the host ID for the router", - "name": "hostid", + "description": "the hostname for the system VM", + "name": "hostname", "type": "string" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "the host ID for the system VM", + "name": "hostid", "type": "string" }, { - "description": "the version of template", - "name": "version", - "type": "string" + "description": "the number of active console sessions for the console proxy system vm", + "name": "activeviewersessions", + "type": "integer" }, { - "description": "the Zone name for the router", - "name": "zonename", + "description": "the ID of the system VM", + "name": "id", "type": "string" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", + "description": "the Zone ID for the system VM", + "name": "zoneid", "type": "string" }, { - "description": "the hostname for the router", - "name": "hostname", + "description": "the private netmask for the system VM", + "name": "privatenetmask", "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", + "description": "the private IP address for the system VM", + "name": "privateip", "type": "string" }, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", - "response": [ - { - "description": "result of the health check", - "name": "success", - "type": "boolean" - }, - { - "description": "the name of the health check on the router", - "name": "checkname", - "type": "string" - }, - { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" - }, - { - "description": "detailed response generated on running health check", - "name": "details", - "type": "string" - }, - { - "description": "the type of the health check - basic or advanced", - "name": "checktype", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the version of scripts", - "name": "scriptsversion", - "type": "string" + "description": "the last disconnected date of host", + "name": "disconnected", + "type": "date" }, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "the network domain for the system VM", + "name": "networkdomain", "type": "string" }, { @@ -118657,412 +111734,210 @@ "type": "boolean" }, { - "description": "the gateway for the router", - "name": "gateway", - "type": "string" - }, - { - "description": "the link local MAC address for the router", + "description": "the link local MAC address for the system vm", "name": "linklocalmacaddress", "type": "string" }, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", - "type": "string" - }, - { - "description": "the network domain for the router", - "name": "networkdomain", - "type": "string" - }, - { - "description": "the domain associated with the router", - "name": "domain", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the second DNS for the router", - "name": "dns2", - "type": "string" - }, - { - "description": "path of the Domain the router belongs to", - "name": "domainpath", + "description": "the link local IP address for the system vm", + "name": "linklocalip", "type": "string" }, { - "description": "the id of the router", - "name": "id", + "description": "the state of the system VM", + "name": "state", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the first DNS for the system VM", + "name": "dns1", "type": "string" }, { - "description": "role of the domain router", - "name": "role", + "description": "public vlan range", + "name": "publicvlan", + "type": "list" + }, + { + "description": "the Zone name for the system VM", + "name": "zonename", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the agent state of the system VM", + "name": "agentstate", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the public netmask for the system VM", + "name": "publicnetmask", "type": "string" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobid", "type": "string" }, { - "description": "the state of redundant virtual router", - "name": "redundantstate", + "description": "the Pod ID for the system VM", + "name": "podid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the date and time the router was created", - "name": "created", - "type": "date" + "description": "the public IP address for the system VM", + "name": "publicip", + "type": "string" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the template ID for the system VM", + "name": "templateid", "type": "string" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "the name of the service offering of the system virtual machine.", + "name": "serviceofferingname", "type": "string" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", + "description": "the system VM type", + "name": "systemvmtype", "type": "string" }, { - "description": "the Pod ID for the router", - "name": "podid", + "description": "guest vlan range", + "name": "guestvlan", "type": "string" }, {}, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", + "description": "the link local netmask for the system vm", + "name": "linklocalnetmask", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the systemvm agent version", + "name": "version", "type": "string" }, { - "description": "the list of nics associated with the router", - "name": "nic", - "response": [ - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - } - ], - "type": "set" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the name of the router", - "name": "name", + "description": "the Pod name for the system VM", + "name": "podname", "type": "string" }, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", + "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the ID of the service offering of the system virtual machine.", + "name": "serviceofferingid", "type": "string" }, - {}, { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "the private MAC address for the system VM", + "name": "privatemacaddress", "type": "string" } ] }, { - "description": "Lists Cisco VNMC controllers", + "description": "List the counters for VM auto scaling", "isasync": false, - "name": "listCiscoVnmcResources", + "name": "listCounters", "params": [ { - "description": "Cisco VNMC resource ID", + "description": "", "length": 255, - "name": "resourceid", - "related": "listCiscoVnmcResources", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "List by keyword", + "description": "ID of the Counter.", "length": 255, - "name": "keyword", + "name": "id", + "related": "createCounter,listCounters", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "", + "description": "Network provider of the counter.", "length": 255, - "name": "page", + "name": "provider", "required": false, - "type": "integer" + "since": "4.18.0", + "type": "string" }, { - "description": "the Physical Network ID", + "description": "Name of the counter.", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "name", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "", + "description": "List by keyword", "length": 255, - "name": "pagesize", + "name": "keyword", "required": false, - "type": "integer" - } - ], - "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": "Execute DRS for a cluster. If there is another plan in progress for the same cluster, this command will fail.", - "isasync": true, - "name": "executeClusterDrsPlan", - "params": [ { - "description": "ID of cluster", + "description": "Source of the counter.", "length": 255, - "name": "id", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" + "name": "source", + "required": false, + "type": "string" }, { - "description": "Virtual Machine to destination host mapping. This parameter specifies the mapping between a vm and a host to migrate that VM. clusterid is required if this parameter is set.Format of this parameter: migrateto[vm-index].vm=&migrateto[vm-index].host= Where, [vm-index] indicates the index to identify the vm that you want to migrate, vm= indicates the UUID of the vm that you want to migrate, and host= indicates the UUID of the host where you want to migrate the vm. Example: migrateto[0].vm=<71f43cd6-69b0-4d3b-9fbc-67f50963d60b>&migrateto[0].host=&migrateto[1].vm=<88de0173-55c0-4c1c-a269-83d0279eeedf>&migrateto[1].host=<95d6e97c-6766-4d67-9a30-c449c15011d1>&migrateto[2].vm=<1b331390-59f2-4796-9993-bf11c6e76225>&migrateto[2].host=<41fdb564-9d3b-447d-88ed-7628f7640cbc>", + "description": "", "length": 255, - "name": "migrateto", + "name": "page", "required": false, - "type": "map" + "type": "integer" } ], - "related": "", + "related": "createCounter", "response": [ { - "description": "Start event Id of the DRS Plan", - "name": "eventid", + "description": "the id of the Counter", + "name": "id", "type": "string" }, { - "description": "Id of the cluster", - "name": "clusterid", + "description": "Name of the counter.", + "name": "name", "type": "string" }, { - "description": "Status of DRS Plan", - "name": "status", - "type": "status" + "description": "Source of the counter.", + "name": "source", + "type": "string" }, - {}, { - "description": "unique ID of the drs plan for cluster", - "name": "id", + "description": "zone id of counter", + "name": "zoneid", "type": "string" }, { @@ -119071,44 +111946,50 @@ "type": "string" }, {}, - { - "description": "List of migrations", - "name": "migrations", - "type": "list" - }, - { - "description": "Type of DRS Plan (Automated or Manual))", - "name": "type", - "type": "type" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - {} - ], - "since": "4.19.0" + { + "description": "Value in case of snmp or other specific counters.", + "name": "value", + "type": "string" + }, + {}, + { + "description": "Provider of the counter.", + "name": "provider", + "type": "string" + } + ] }, { - "description": "Deletes a particular egress rule from this security group", + "description": "Configures an Internal Load Balancer element.", "isasync": true, - "name": "revokeSecurityGroupEgress", + "name": "configureInternalLoadBalancerElement", "params": [ { - "description": "The ID of the egress rule", + "description": "the ID of the internal lb provider", "length": 255, "name": "id", - "related": "authorizeSecurityGroupIngress", + "related": "configureInternalLoadBalancerElement", "required": true, "type": "uuid" + }, + { + "description": "Enables/Disables the Internal Load Balancer element", + "length": 255, + "name": "enabled", + "required": true, + "type": "boolean" } ], + "related": "", "response": [ - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "Enabled/Disabled the element", + "name": "enabled", "type": "boolean" }, { @@ -119117,125 +111998,91 @@ "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the physical network service provider id of the element", + "name": "nspid", + "type": "string" }, + {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the id of the internal load balancer element", + "name": "id", "type": "string" }, - {} + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } ], - "since": "3.0.0" + "since": "4.2.0" }, { - "description": "Uploads an icon for the specified resource(s)", + "description": "Lists all available virtual router elements.", "isasync": false, - "name": "uploadResourceIcon", + "name": "listVirtualRouterElements", "params": [ { - "description": "list of resources to upload the icon/image for", - "length": 255, - "name": "resourceids", - "required": true, - "type": "list" - }, - { - "description": "type of the resource", + "description": "List by keyword", "length": 255, - "name": "resourcetype", - "required": true, - "type": "string" - }, - { - "description": "Base64 string representation of the resource icon/image", - "length": 2097152, - "name": "base64image", - "required": true, + "name": "keyword", + "required": false, "type": "string" - } - ], - "response": [ - { - "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": "list virtual router elements by id", + "length": 255, + "name": "id", + "related": "listVirtualRouterElements", + "required": false, + "type": "uuid" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "list virtual router elements by network service provider id", + "length": 255, + "name": "nspid", + "related": "listNetworkServiceProviders", + "required": false, + "type": "uuid" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "list network offerings by enabled state", + "length": 255, + "name": "enabled", + "required": false, + "type": "boolean" }, - {} - ], - "since": "4.16.0.0" - }, - { - "description": "Update a supported Kubernetes version", - "isasync": false, - "name": "updateKubernetesSupportedVersion", - "params": [ { - "description": "the ID of the Kubernetes supported version", + "description": "", "length": 255, - "name": "id", - "related": "listKubernetesSupportedVersions,updateKubernetesSupportedVersion", - "required": true, - "type": "uuid" + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the enabled or disabled state of the Kubernetes supported version", + "description": "", "length": 255, - "name": "state", - "required": true, - "type": "string" + "name": "page", + "required": false, + "type": "integer" } ], - "related": "listKubernetesSupportedVersions", + "related": "", "response": [ { - "description": "whether Kubernetes supported version supports Autoscaling", - "name": "supportsautoscaling", - "type": "boolean" + "description": "the domain associated with the provider", + "name": "domain", + "type": "string" }, { - "description": "the id of the Kubernetes supported version", + "description": "the id of the router", "name": "id", "type": "string" }, - { - "description": "the minimum number of CPUs needed for the Kubernetes supported version", - "name": "mincpunumber", - "type": "integer" - }, - {}, - { - "description": "KVM Only: true if the ISO for the Kubernetes supported version is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" - }, {}, { - "description": "the id of the binaries ISO for Kubernetes supported version", - "name": "isoid", - "type": "string" - }, - { - "description": "the name of the zone in which Kubernetes supported version is available", - "name": "zonename", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { @@ -119244,23 +112091,8 @@ "type": "string" }, { - "description": "the id of the zone in which Kubernetes supported version is available", - "name": "zoneid", - "type": "string" - }, - { - "description": "the state of the binaries ISO for Kubernetes supported version", - "name": "isostate", - "type": "string" - }, - { - "description": "the name of the binaries ISO for Kubernetes supported version", - "name": "isoname", - "type": "string" - }, - { - "description": "whether Kubernetes supported version supports HA, multi-control nodes", - "name": "supportsha", + "description": "Enabled/Disabled the service provider", + "name": "enabled", "type": "boolean" }, { @@ -119269,47 +112101,57 @@ "type": "integer" }, { - "description": "Kubernetes semantic version", - "name": "semanticversion", + "description": "the domain ID associated with the provider", + "name": "domainid", "type": "string" }, + {}, { - "description": "the enabled or disabled state of the Kubernetes supported version", - "name": "state", + "description": "the account associated with the provider", + "name": "account", "type": "string" }, { - "description": "the date when this Kubernetes supported version was created", - "name": "created", - "type": "date" + "description": "path of the domain to which the provider belongs", + "name": "domainpath", + "type": "string" }, { - "description": "the minimum RAM size in MB needed for the Kubernetes supported version", - "name": "minmemory", - "type": "integer" + "description": "the project name of the address", + "name": "project", + "type": "string" }, { - "description": "Name of the Kubernetes supported version", - "name": "name", + "description": "the physical network service provider id of the provider", + "name": "nspid", "type": "string" } ] }, { - "description": "Deletes an existing IPv4 subnet for a zone.", - "isasync": true, - "name": "deleteIpv4SubnetForZone", + "description": "Deletes snapshot policies for the account.", + "isasync": false, + "name": "deleteSnapshotPolicies", "params": [ { - "description": "Id of the guest network IPv4 subnet", + "description": "list of snapshots policy IDs separated by comma", + "length": 255, + "name": "ids", + "related": "updateSnapshotPolicy", + "required": false, + "type": "list" + }, + { + "description": "the Id of the snapshot policy", "length": 255, "name": "id", - "related": "dedicateIpv4SubnetForZone", - "required": true, + "related": "updateSnapshotPolicy", + "required": false, "type": "uuid" } ], "response": [ + {}, { "description": "any text associated with the success or failure", "name": "displaytext", @@ -119320,7 +112162,6 @@ "name": "jobid", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -119332,41 +112173,32 @@ "type": "boolean" }, {} - ], - "since": "4.20.0" + ] }, { - "description": "Creates a guest network IPv6 prefix.", + "description": "Deletes an existing IPv4 subnet for guest network.", "isasync": true, - "name": "createGuestNetworkIpv6Prefix", + "name": "deleteIpv4SubnetForGuestNetwork", "params": [ { - "description": "UUID of zone to which the IPv6 prefix belongs to.", + "description": "Id of the guest network IPv4 subnet", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "id", + "related": "", "required": true, "type": "uuid" - }, - { - "description": "The /56 or higher IPv6 CIDR for network prefix.", - "length": 255, - "name": "prefix", - "required": true, - "type": "string" } ], - "related": "listGuestNetworkIpv6Prefixes", "response": [ { - "description": "count of the used IPv6 subnets for the prefix.", - "name": "usedsubnets", - "type": "integer" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "count of the total IPv6 subnets for the prefix.", - "name": "totalsubnets", - "type": "integer" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, {}, { @@ -119374,98 +112206,61 @@ "name": "jobstatus", "type": "integer" }, - { - "description": "count of the available IPv6 subnets for the prefix.", - "name": "availablesubnets", - "type": "integer" - }, - { - "description": "id of zone to which the IPv6 prefix belongs to.", - "name": "zoneid", - "type": "string" - }, - { - "description": "guest IPv6 prefix", - "name": "prefix", - "type": "string" - }, - { - "description": "id of the guest IPv6 prefix", - "name": "id", - "type": "string" - }, {}, - { - "description": " date when this IPv6 prefix was created.", - "name": "created", - "type": "date" - }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" } ], - "since": "4.17.0.0" + "since": "4.20.0" }, { - "description": "Creates a role", + "description": "Lists implementors of implementor of a network traffic type or implementors of all network traffic types", "isasync": false, - "name": "createRole", + "name": "listTrafficTypeImplementors", "params": [ { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). Default is true.", + "description": "Optional. The network traffic type, if specified, return its implementor. Otherwise, return all traffic types with their implementor", "length": 255, - "name": "ispublic", + "name": "traffictype", "required": false, - "type": "boolean" - }, - { - "description": "Creates a role with this unique name", - "length": 255, - "name": "name", - "required": true, "type": "string" }, { - "description": "The description of the role", + "description": "", "length": 255, - "name": "description", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "ID of the role to be cloned from. Either roleid or type must be passed in", + "description": "", "length": 255, - "name": "roleid", - "related": "createRole,listRoles,updateRole", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User", + "description": "List by keyword", "length": 255, - "name": "type", + "name": "keyword", "required": false, "type": "string" } ], - "related": "listRoles,updateRole", + "related": "", "response": [ - { - "description": "the name of the role", - "name": "name", - "type": "string" - }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", - "type": "boolean" + "description": "network traffic type", + "name": "traffictype", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -119473,119 +112268,186 @@ "type": "string" }, { - "description": "the type of the role", - "name": "type", - "type": "string" - }, - {}, - { - "description": "the description of the role", - "name": "description", - "type": "string" - }, - {}, - { - "description": "true if role is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the state of the role", - "name": "state", + "description": "implementor of network traffic type", + "name": "traffictypeimplementor", "type": "string" }, - { - "description": "the ID of the role", - "name": "id", - "type": "string" - } + {} ], - "since": "4.9.0" + "since": "3.0.0" }, { - "description": "Upload a data disk to the cloudstack cloud.", - "isasync": false, - "name": "getUploadParamsForVolume", + "description": "Creates a routing firewall rule in the given network in ROUTED mode", + "isasync": true, + "name": "createRoutingFirewallRule", "params": [ { - "description": "the name of the volume/template/iso", + "description": "the traffic type for the Routing firewall rule, can be ingress or egress, defaulted to ingress if not specified", "length": 255, - "name": "name", - "required": true, + "name": "traffictype", + "required": false, "type": "string" }, { - "description": "the format for the volume/template/iso. Possible values include QCOW2, OVA, and VHD.", + "description": "The network of the VM the firewall rule will be created for", "length": 255, - "name": "format", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listBrocadeVcsDeviceNetworks", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "the checksum value of this volume/template/iso The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "description": "the ending port of firewall rule", "length": 255, - "name": "checksum", + "name": "endport", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Image store uuid", + "description": "error code for this ICMP message", "length": 255, - "name": "imagestoreuuid", + "name": "icmpcode", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the ID of the zone the volume/template/iso is to be hosted on", + "description": "the source CIDR list to allow traffic from. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "name": "cidrlist", + "required": false, + "type": "list" }, { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", + "description": "the starting port of firewall rule", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "startport", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "Upload volume/template/iso for the project", + "description": "type of the ICMP message being sent", "length": 255, - "name": "projectid", - "related": "", + "name": "icmptype", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "an optional accountName. Must be used with domainId.", + "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", "length": 255, - "name": "account", - "required": false, + "name": "protocol", + "required": true, "type": "string" }, { - "description": "the ID of the disk offering. This must be a custom sized offering since during upload of volume/template size is unknown.", + "description": "an optional field, whether to the display the rule to the end user or not", "length": 255, - "name": "diskofferingid", - "related": "", + "name": "fordisplay", "required": false, - "type": "uuid" + "type": "boolean" + }, + { + "description": "the destination CIDR list to allow traffic to. Multiple entries must be separated by a single comma character (,).", + "length": 255, + "name": "destcidrlist", + "required": false, + "type": "list" } ], - "related": "getUploadParamsForTemplate,getUploadParamsForIso", + "related": "updateIpv6FirewallRule", "response": [ { - "description": "signature to be sent in the POST request.", - "name": "signature", + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, { - "description": "POST url to upload the file to", - "name": "postURL", - "type": "url" + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "list" + }, + {}, + {}, + { + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", + "type": "string" + }, + { + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the ID of the port forwarding rule", + "name": "id", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", @@ -119593,211 +112455,219 @@ "type": "string" }, { - "description": "the timestamp after which the signature expires", - "name": "expires", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "the template/volume ID", - "name": "id", - "type": "uuid" + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", + "type": "string" }, - {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", + "type": "string" }, { - "description": "encrypted data to be sent in the POST request.", - "name": "metadata", + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", "type": "string" - } - ], - "since": "4.6.0" - }, - { - "description": "Updates an existing autoscale vm profile.", - "isasync": true, - "name": "updateAutoScaleVmProfile", - "params": [ + }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", "type": "string" }, { - "description": "the ID of the user used to launch and destroy the VMs", - "length": 255, - "name": "autoscaleuserid", - "related": "disableUser,getUser,listUsers,lockUser", - "required": false, - "type": "uuid" + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", + "type": "string" }, { - "description": "used to specify the parameters values for the variables in userdata.", - "length": 255, - "name": "userdatadetails", - "required": false, - "since": "4.18.1", - "type": "map" + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", + "type": "string" }, { - "description": "an optional field, whether to the display the profile to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", + "type": "string" }, { - "description": "parameters other than zoneId/serviceOfferringId/templateId of the auto deployed virtual machine. \nExample: otherdeployparams[0].name=serviceofferingid&otherdeployparams[0].value=a7fb50f6-01d9-11ed-8bc1-77f8f0228926&otherdeployparams[1].name=rootdisksize&otherdeployparams[1].value=10 .\nPossible parameters are \"rootdisksize\", \"diskofferingid\",\"size\", \"securitygroupids\", \"overridediskofferingid\", \"keypairs\", \"affinitygroupids'\" and \"networkids\".", - "length": 255, - "name": "otherdeployparams", - "required": false, - "since": "4.18.0", - "type": "map" + "description": "the state of the rule", + "name": "state", + "type": "string" }, { - "description": "the template of the auto deployed virtual machine", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", + "type": "string" + }, + { + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" + } + ], + "since": "4.20.0" + }, + { + "description": "link a cloudstack account to a group or OU in ldap", + "isasync": false, + "name": "linkAccountToLdap", + "params": [ + { + "description": "name of the group or OU in LDAP", "length": 255, - "name": "templateid", - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "uuid" + "name": "ldapdomain", + "required": true, + "type": "string" }, { - "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", + "description": "domain admin username in LDAP ", + "length": 255, + "name": "admin", "required": false, - "since": "4.18.0", "type": "string" }, { - "description": "the service offering of the auto deployed virtual machine", + "description": "Creates the account under the specified role.", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", + "name": "roleid", + "related": "importRole,listRoles", "required": false, - "since": "4.18.0", + "since": "4.19.1", "type": "uuid" }, { - "description": "the time allowed for existing connections to get closed before a vm is destroyed", + "description": "name of the account, it will be created if it does not exist", "length": 255, - "name": "expungevmgraceperiod", - "required": false, - "type": "integer" + "name": "account", + "required": true, + "type": "string" }, { - "description": "the ID of the userdata", - "length": 255, - "name": "userdataid", - "related": "", + "description": "Type of the account to auto import. Specify 0 for user and 2 for domain admin", + "length": 255, + "name": "accounttype", "required": false, - "since": "4.18.1", - "type": "uuid" + "type": "integer" }, { - "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161", + "description": "type of the ldap name. GROUP or OU, defaults to GROUP", "length": 255, - "name": "counterparam", + "name": "type", "required": false, - "type": "map" + "type": "string" }, { - "description": "the ID of the autoscale vm profile", + "description": "The id of the domain that is to contain the linked account.", "length": 255, - "name": "id", - "related": "listAutoScaleVmProfiles,updateAutoScaleVmProfile", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": true, "type": "uuid" } ], - "related": "listAutoScaleVmProfiles", + "related": "", "response": [ - {}, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "Domain Admin accountId that is created", + "name": "accountid", + "type": "string" + }, + { + "description": "type of the name in LDAP which is linked to the domain", + "name": "type", "type": "string" }, {}, { - "description": "is profile for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the availability zone to be used while deploying a virtual machine", - "name": "zoneid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name of the vm profile", - "name": "project", + "description": "id of the Domain which is linked to LDAP", + "name": "domainid", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "name of the group or OU in LDAP which is linked to the domain", + "name": "ldapdomain", "type": "string" }, { - "description": "the template to be used while deploying a virtual machine", - "name": "templateid", + "description": "name of the group or OU in LDAP which is linked to the domain", + "name": "name", "type": "string" }, { - "description": "the time allowed for existing connections to get closed before a vm is destroyed", - "name": "expungevmgraceperiod", - "type": "integer" + "description": "Type of the account to auto import", + "name": "accounttype", + "type": "int" }, + {} + ], + "since": "4.11.0" + }, + { + "description": "list the db hosts and statistics", + "isasync": false, + "name": "listDbMetrics", + "params": [], + "related": "", + "response": [ { - "description": "the domain ID of the vm profile", - "name": "domainid", + "description": "the name of the active usage server", + "name": "hostname", "type": "string" }, { - "description": "path of the domain to which the vm profile belongs", - "name": "domainpath", - "type": "string" + "description": "the state of the usage server", + "name": "replicas", + "type": "string[]" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the version of the currently running DB", + "name": "version", "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the ID of the user used to launch and destroy the VMs", - "name": "autoscaleuserid", + "description": "the tls versions currently in use (accepted) by the DB", + "name": "tlsversions", "type": "string" }, { - "description": "the account owning the instance group", - "name": "account", + "description": "the version of the currently running DB", + "name": "versioncomment", "type": "string" }, { - "description": "the project id vm profile", - "name": "projectid", - "type": "string" + "description": "the number of queries performed on the DB", + "name": "queries", + "type": "long" }, { - "description": "the domain name of the vm profile", - "name": "domain", - "type": "string" + "description": "the uptime of the DB in seconds", + "name": "uptime", + "type": "long" + }, + { + "description": "the number of connections to the DB", + "name": "connections", + "type": "int" }, {}, { @@ -119806,326 +112676,321 @@ "type": "integer" }, { - "description": "the autoscale vm profile ID", - "name": "id", - "type": "string" - }, - { - "description": "Base64 encoded VM user data", - "name": "userdata", - "type": "string" - }, - { - "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine", - "name": "otherdeployparams", - "type": "map" + "description": "the time these statistics were collected", + "name": "collectiontime", + "type": "date" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" + "description": "the last measured load averages on the DB", + "name": "dbloadaverages", + "type": "double[]" }, - { - "description": "the service offering to be used while deploying a virtual machine", - "name": "serviceofferingid", - "type": "string" - } - ] + {} + ], + "since": "4.17.0" }, { - "description": "Enables an AutoScale Vm Group", - "isasync": true, - "name": "enableAutoScaleVmGroup", + "description": "Deletes an image store or Secondary Storage.", + "isasync": false, + "name": "deleteImageStore", "params": [ { - "description": "the ID of the autoscale group", + "description": "The image store ID or Secondary Storage ID.", "length": 255, "name": "id", - "related": "enableAutoScaleVmGroup", + "related": "listSwifts,addImageStoreS3,listImageStores", "required": true, "type": "uuid" } ], - "related": "", "response": [ { - "description": "the date when this vm group was created", - "name": "created", - "type": "date" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "the domain ID of the vm group", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "is group for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "list of scaledown autoscale policies", - "name": "scaledownpolicies", - "type": "list" - }, + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ], + "since": "4.2.0" + }, + { + "description": "Lists autoscale vm profiles.", + "isasync": false, + "name": "listAutoScaleVmProfiles", + "params": [ { - "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", - "name": "availablevirtualmachinecount", - "type": "int" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the id of the guest network the lb rule belongs to", - "name": "associatednetworkid", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", - "name": "minmembers", - "type": "int" + "description": "the otherdeployparameters of the autoscale vm profile", + "length": 255, + "name": "otherdeployparams", + "required": false, + "type": "string" }, { - "description": "the name of the guest network the lb rule belongs to", - "name": "associatednetworkname", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the project id of the vm group", - "name": "projectid", - "type": "string" + "description": "availability zone for the auto deployed virtual machine", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones", + "required": false, + "since": "4.4", + "type": "uuid" }, { - "description": "the autoscale vm group ID", - "name": "id", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the project name of the vm group", - "name": "project", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the lb provider of the guest network the lb rule belongs to", - "name": "lbprovider", - "type": "string" + "description": "list profiles by service offering id", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": false, + "since": "4.4", + "type": "uuid" }, { - "description": "the current state of the AutoScale Vm Group", - "name": "state", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "list of scaleup autoscale policies", - "name": "scaleuppolicies", - "type": "list" + "description": "the ID of the autoscale vm profile", + "length": 255, + "name": "id", + "related": "createAutoScaleVmProfile,listAutoScaleVmProfiles", + "required": false, + "type": "uuid" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the frequency at which the conditions have to be evaluated", - "name": "interval", - "type": "int" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" }, { - "description": "the name of the autoscale vm group ", - "name": "name", - "type": "string" + "description": "the templateid of the autoscale vm profile", + "length": 255, + "name": "templateid", + "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "type": "uuid" }, { - "description": "the private port", - "name": "privateport", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" - }, + } + ], + "related": "createAutoScaleVmProfile", + "response": [ { - "description": "the domain name of the vm group", - "name": "domain", + "description": "the availability zone to be used while deploying a virtual machine", + "name": "zoneid", "type": "string" }, + {}, { - "description": "the public ip address id", - "name": "publicipid", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain ID of the vm profile", + "name": "domainid", "type": "string" }, { - "description": "path of the domain to which the vm group belongs", + "description": "path of the domain to which the vm profile belongs", "name": "domainpath", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", - "name": "maxmembers", - "type": "int" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the autoscale profile that contains information about the vms in the vm group.", - "name": "vmprofileid", + "description": "the service offering to be used while deploying a virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the load balancer rule ID", - "name": "lbruleid", + "description": "the account owning the instance group", + "name": "account", "type": "string" }, - {}, { - "description": "the public ip address", - "name": "publicip", - "type": "string" + "description": "is profile for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the account owning the vm group", - "name": "account", - "type": "string" + "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine", + "name": "otherdeployparams", + "type": "map" }, {}, { - "description": "the public port", - "name": "publicport", + "description": "the ID of the user used to launch and destroy the VMs", + "name": "autoscaleuserid", "type": "string" - } - ] - }, - { - "description": "Lists guest network IPv6 prefixes", - "isasync": false, - "name": "listGuestNetworkIpv6Prefixes", - "params": [ - { - "description": "UUID of zone to which the IPv6 prefix belongs to.", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "UUID of the IPv6 prefix.", - "length": 255, + "description": "the autoscale vm profile ID", "name": "id", - "related": "listGuestNetworkIpv6Prefixes", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "count of the total IPv6 subnets for the prefix.", - "name": "totalsubnets", - "type": "integer" + "type": "string" }, { - "description": "id of zone to which the IPv6 prefix belongs to.", - "name": "zoneid", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": " date when this IPv6 prefix was created.", - "name": "created", - "type": "date" + "description": "the project id vm profile", + "name": "projectid", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the time allowed for existing connections to get closed before a vm is destroyed", + "name": "expungevmgraceperiod", "type": "integer" }, { - "description": "id of the guest IPv6 prefix", - "name": "id", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "guest IPv6 prefix", - "name": "prefix", + "description": "the project name of the vm profile", + "name": "project", "type": "string" }, + {}, { - "description": "count of the used IPv6 subnets for the prefix.", - "name": "usedsubnets", - "type": "integer" + "description": "the domain name of the vm profile", + "name": "domain", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Base64 encoded VM user data", + "name": "userdata", "type": "string" }, + {}, { - "description": "count of the available IPv6 subnets for the prefix.", - "name": "availablesubnets", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, - {} - ], - "since": "4.17.0" + { + "description": "the template to be used while deploying a virtual machine", + "name": "templateid", + "type": "string" + } + ] }, { - "description": "Updates the information about Guest OS to Hypervisor specific name mapping", + "description": "Disables out-of-band management for a host", "isasync": true, - "name": "updateGuestOsMapping", + "name": "disableOutOfBandManagementForHost", "params": [ { - "description": "UUID of the Guest OS to hypervisor name Mapping", + "description": "the ID of the host", "length": 255, - "name": "id", - "related": "updateGuestOsMapping", + "name": "hostid", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", "required": true, "type": "uuid" + } + ], + "related": "enableOutOfBandManagementForHost,disableOutOfBandManagementForCluster", + "response": [ + {}, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Hypervisor specific name for this Guest OS", - "length": 255, - "name": "osnameforhypervisor", - "required": true, + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "When set to true, checks for the correct guest os mapping name in the provided hypervisor (supports VMware and XenServer only. At least one hypervisor host with the version specified must be available. Default version will not work.)", - "length": 255, - "name": "osmappingcheckenabled", - "required": false, - "since": "4.19.0", + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", "type": "boolean" - } - ], - "related": "", - "response": [ + }, { - "description": "the ID of the Guest OS mapping", - "name": "id", + "description": "the operation result description", + "name": "description", "type": "string" }, { @@ -120134,1113 +112999,883 @@ "type": "string" }, { - "description": "the ID of the Guest OS type", - "name": "ostypeid", - "type": "string" + "description": "the operation result", + "name": "status", + "type": "boolean" }, { - "description": "version of the hypervisor for mapping", - "name": "hypervisorversion", + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" + }, + { + "description": "the out-of-band management interface password", + "name": "password", "type": "string" }, { - "description": "is the mapping user defined", - "name": "isuserdefined", + "description": "the out-of-band management driver for the host", + "name": "driver", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the out-of-band management interface address", + "name": "address", + "type": "string" }, { - "description": "standard display name for the Guest OS", - "name": "osdisplayname", + "description": "the out-of-band management interface port", + "name": "port", "type": "string" }, { - "description": "hypervisor specific name for the Guest OS", - "name": "osnameforhypervisor", + "description": "the out-of-band management interface username", + "name": "username", "type": "string" }, - {}, - {}, { - "description": "the hypervisor", - "name": "hypervisor", + "description": "the out-of-band management action (if issued)", + "name": "action", "type": "string" } ], - "since": "4.4.0" + "since": "4.9.0" }, { - "description": "delete Tungsten-Fabric tag", + "description": "Cancel host status from 'Degraded'. Host will transit back to status 'Enabled'.", "isasync": true, - "name": "deleteTungstenFabricTag", + "name": "cancelHostAsDegraded", "params": [ { - "description": "the uuid of Tungsten-Fabric tag", - "length": 255, - "name": "taguuid", - "required": true, - "type": "string" - }, - { - "description": "the ID of zone", + "description": "host ID", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "id", + "related": "addBaremetalHost,cancelHostAsDegraded,reconnectHost", "required": true, "type": "uuid" } ], + "related": "addBaremetalHost,reconnectHost", "response": [ { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "CPU Arch of the host", + "name": "arch", "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", + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", "type": "boolean" }, - {} - ] - }, - { - "description": "Update password of a host/pool on management server.", - "isasync": false, - "name": "updateHostPassword", - "params": [ { - "description": "the cluster ID", - "length": 255, - "name": "clusterid", - "related": "addCluster,updateCluster", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "if the password should also be updated on the hosts", - "length": 255, - "name": "update_passwd_on_host", - "required": false, + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", "type": "boolean" }, { - "description": "the host ID", - "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", - "required": false, - "type": "uuid" + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" }, { - "description": "the username for the host/cluster", - "length": 255, - "name": "username", - "required": true, + "description": "the host version", + "name": "version", "type": "string" }, { - "description": "the new password for the host/cluster", - "length": 255, - "name": "password", - "required": true, + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" - } - ], - "response": [ + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the OS category name of the host", + "name": "oscategoryname", + "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "adds a range of portable public IP's to a region", - "isasync": true, - "name": "createPortableIpRange", - "params": [ - { - "description": "the gateway for the portable IP range", - "length": 255, - "name": "gateway", - "required": true, - "type": "string" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "the beginning IP address in the portable IP range", - "length": 255, - "name": "startip", - "required": true, - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "the netmask of the portable IP range", - "length": 255, - "name": "netmask", - "required": true, + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "VLAN id, if not specified defaulted to untagged", - "length": 255, - "name": "vlan", - "required": false, + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "Id of the Region", - "length": 255, - "name": "regionid", - "related": "", - "required": true, - "type": "integer" + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" }, { - "description": "the ending IP address in the portable IP range", - "length": 255, - "name": "endip", - "required": true, + "description": "the name of the host", + "name": "name", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the CPU number of the host", + "name": "cpunumber", "type": "integer" }, { - "description": "portable IP range ID", - "name": "id", + "description": "the Zone ID of the host", + "name": "zoneid", "type": "string" }, { - "description": "the gateway of the VLAN IP range", - "name": "gateway", + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "the netmask of the VLAN IP range", - "name": "netmask", - "type": "string" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, - {}, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", - "type": "string" + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" }, { - "description": "Region Id in which portable ip range is provisioned", - "name": "regionid", - "type": "integer" + "description": "the admin that annotated this host", + "name": "username", + "type": "string" }, { - "description": "List of portable IP and association with zone/network/vpc details that are part of GSLB rule", - "name": "portableipaddress", + "description": "GPU cards present in the host", + "name": "gpugroup", "response": [ { - "description": "Region Id in which global load balancer is created", - "name": "regionid", - "type": "integer" - }, - { - "description": "the ID of the Network where ip belongs to", - "name": "networkid", - "type": "string" - }, - { - "description": "the ID of the zone the public IP address belongs to", - "name": "zoneid", - "type": "string" - }, - { - "description": "date the portal IP address was acquired", - "name": "allocated", - "type": "date" - }, - { - "description": "the account ID the portable IP address is associated with", - "name": "accountid", - "type": "string" - }, - { - "description": "the domain ID the portable IP address is associated with", - "name": "domainid", - "type": "string" - }, - { - "description": "State of the ip address. Can be: Allocating, Allocated, Releasing and Free", - "name": "state", - "type": "string" - }, - { - "description": "VPC the ip belongs to", - "name": "vpcid", - "type": "string" - }, - { - "description": "public IP address", - "name": "ipaddress", + "description": "GPU cards present in the host", + "name": "gpugroupname", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + } + ], + "type": "list" } ], "type": "list" }, { - "description": "the start ip of the portable IP range", - "name": "startip", - "type": "string" - }, - { - "description": "the end ip of the portable IP range", - "name": "endip", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "Deletes Webhook delivery", - "isasync": false, - "name": "deleteWebhookDelivery", - "params": [ - { - "description": "The ID of the Webhook", - "length": 255, - "name": "webhookid", - "related": "createWebhook", - "required": false, - "type": "uuid" - }, - { - "description": "The start date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having start date equal to or after the specified date will be considered.", - "length": 255, - "name": "startdate", - "required": false, - "type": "date" - }, - { - "description": "The ID of the Webhook delivery", - "length": 255, - "name": "id", - "related": "", - "required": false, - "type": "uuid" }, { - "description": "The ID of the management server", - "length": 255, - "name": "managementserverid", - "related": "", - "required": false, - "type": "uuid" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, - { - "description": "The end date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having end date equal to or before the specified date will be considered.", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" - } - ], - "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": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {} - ], - "since": "4.20.0" - }, - { - "description": "Updates an existing cluster", - "isasync": false, - "name": "updateCluster", - "params": [ - { - "description": "the ID of the Cluster", - "length": 255, - "name": "id", - "related": "addCluster,updateCluster", - "required": true, - "type": "uuid" - }, - { - "description": "hypervisor type of the cluster", - "length": 255, - "name": "hypervisor", - "required": false, - "type": "string" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "the CPU arch of the cluster. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "hypervisor type of the cluster", - "length": 255, - "name": "clustertype", - "required": false, - "type": "string" + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" }, { - "description": "the cluster name", - "length": 255, - "name": "clustername", - "required": false, + "description": "events available for the host", + "name": "events", "type": "string" }, + {}, { - "description": "whether this cluster is managed by cloudstack", - "length": 255, - "name": "managedstate", - "required": false, - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "Allocation state of this cluster for allocation of new resources", - "length": 255, - "name": "allocationstate", - "required": false, - "type": "string" - } - ], - "related": "addCluster", - "response": [ - { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", + "description": "Host details in key/value pairs.", + "name": "details", "type": "map" }, { - "description": "the capacity of the Cluster", - "name": "capacity", - "response": [ - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the capacity name", - "name": "name", - "type": "string" - } - ], - "type": "list" + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", + "type": "string" }, { - "description": "CPU Arch of the hosts in the cluster", - "name": "arch", + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, - {}, { - "description": "the cluster ID", - "name": "id", - "type": "string" + "description": "the date and time the host was created", + "name": "created", + "type": "date" }, - {}, { - "description": "The memory overcommit ratio of the cluster", - "name": "memoryovercommitratio", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "whether this cluster is managed by cloudstack", - "name": "managedstate", + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "The cpu overcommit ratio of the cluster", - "name": "cpuovercommitratio", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "the Zone ID of the cluster", - "name": "zoneid", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, { - "description": "the Zone name of the cluster", - "name": "zonename", - "type": "string" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the allocation state of the cluster", - "name": "allocationstate", + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" + }, + {}, + { + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" + }, + { + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", + "type": "long" + }, + { + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" + }, + { + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", + "type": "long" + }, + { + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" + }, + { + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the amount of the host's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the type of the cluster", - "name": "clustertype", + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" + }, + { + "description": "the state of the host", + "name": "state", + "type": "status" + }, + { + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "Ovm3 VIP to use for pooling and/or clustering", - "name": "ovm3vip", + "description": "the Pod ID of the host", + "name": "podid", "type": "string" }, { - "description": "the hypervisor type of the cluster", - "name": "hypervisortype", + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" + }, + { + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "the cluster name", - "name": "name", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "the Pod ID of the cluster", - "name": "podid", + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "the Pod name of the cluster", + "description": "the Pod name of the host", "name": "podname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the resource state of the host", + "name": "resourcestate", + "type": "string" + }, + { + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" + }, + { + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" + }, + { + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" + }, + { + "description": "the hypervisor version", + "name": "hypervisorversion", + "type": "string" } - ] + ], + "since": "4.16.0.0" }, { - "description": "Lists the VMs in a VMware Datacenter", - "isasync": false, - "name": "listVmwareDcVms", + "description": "Authorizes a particular ingress rule for this security group", + "isasync": true, + "name": "authorizeSecurityGroupIngress", "params": [ { - "description": "The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", + "description": "error code for this icmp message", "length": 255, - "name": "vcenter", + "name": "icmpcode", "required": false, - "type": "string" + "type": "integer" }, { - "description": "List by keyword", + "description": "type of the icmp message being sent", "length": 255, - "name": "keyword", + "name": "icmptype", + "required": false, + "type": "integer" + }, + { + "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number (see /etc/protocols). ALL is default.", + "length": 255, + "name": "protocol", "required": false, "type": "string" }, { - "description": "The password for specified username.", + "description": "the cidr list associated. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "password", + "name": "cidrlist", + "required": false, + "type": "list" + }, + { + "description": "an optional project of the security group", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" + }, + { + "description": "an optional account for the security group. Must be used with domainId.", + "length": 255, + "name": "account", "required": false, "type": "string" }, { - "description": "", + "description": "start port for this ingress rule", "length": 255, - "name": "page", + "name": "startport", "required": false, "type": "integer" }, { - "description": "UUID of a linked existing vCenter", + "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "existingvcenterid", - "related": "", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" }, { - "description": "The Username required to connect to resource.", + "description": "user to security group mapping", "length": 255, - "name": "username", + "name": "usersecuritygrouplist", "required": false, - "type": "string" + "type": "map" }, { - "description": "", + "description": "end port for this ingress rule", "length": 255, - "name": "pagesize", + "name": "endport", "required": false, "type": "integer" }, { - "description": "Name of VMware datacenter.", + "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter", "length": 255, - "name": "datacentername", + "name": "securitygroupid", + "related": "createSecurityGroup", + "required": false, + "type": "uuid" + }, + { + "description": "The name of the security group. Mutually exclusive with securityGroupId parameter", + "length": 255, + "name": "securitygroupname", "required": false, "type": "string" } ], - "related": "listUnmanagedInstances", + "related": "", "response": [ { - "description": "the name of the host to which virtual machine belongs", - "name": "hostname", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, - {}, { - "description": "the ID of the host to which virtual machine belongs", - "name": "hostid", - "type": "string" + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the protocol of the security group rule", + "name": "protocol", "type": "string" }, { - "description": "the CPU speed of the virtual machine", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "the power state of the virtual machine", - "name": "powerstate", + "description": "account owning the security group rule", + "name": "account", "type": "string" }, + {}, + {}, { - "description": "the memory of the virtual machine in MB", - "name": "memory", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the list of disks associated with the virtual machine", - "name": "disk", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "the controller of the disk", - "name": "datastorehost", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the controller unit of the disk", - "name": "controllerunit", - "type": "integer" + "description": "the account associated with the tag", + "name": "account", + "type": "string" }, { - "description": "the label of the disk", - "name": "label", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the file path of the disk image", - "name": "imagepath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the capacity of the disk in bytes", - "name": "capacity", - "type": "long" + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" }, { - "description": "the controller of the disk", - "name": "datastoretype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the position of the disk", - "name": "position", - "type": "integer" + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "the controller of the disk", - "name": "datastorename", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the ID of the disk", - "name": "id", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the controller of the disk", - "name": "controller", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the controller of the disk", - "name": "datastorepath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "set" }, { - "description": "the CPU cores of the virtual machine", - "name": "cpunumber", + "description": "the starting IP of the security group rule", + "name": "startport", "type": "integer" }, { - "description": "the operating system ID of the virtual machine", - "name": "osid", + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ] + }, + { + "description": "Sync storage pool with management server (currently supported for Datastore Cluster in VMware and syncs the datastores in it)", + "isasync": true, + "name": "syncStoragePool", + "params": [ + { + "description": "Storage pool id", + "length": 255, + "name": "id", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "required": true, + "type": "uuid" + } + ], + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance", + "response": [ + {}, + { + "description": "the storage pool type", + "name": "type", "type": "string" }, { - "description": "the CPU cores per socket for the virtual machine. VMware specific", - "name": "cpucorepersocket", - "type": "integer" + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" }, { - "description": "the name of the cluster to which virtual machine belongs", - "name": "clustername", + "description": "the scope of the storage pool", + "name": "scope", "type": "string" }, { - "description": "the operating system of the virtual machine", - "name": "osdisplayname", + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" + }, + { + "description": "the storage pool path", + "name": "path", "type": "string" }, { - "description": "the ID of the cluster to which virtual machine belongs", - "name": "clusterid", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of nics associated with the virtual machine", - "name": "nic", - "response": [ - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - } - ], - "type": "set" - } - ] - }, - { - "description": "Lists storage providers.", - "isasync": false, - "name": "listStorageProviders", - "params": [ + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" + }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the type of storage provider: either primary or image", - "length": 255, - "name": "type", - "required": true, + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the name of the storage provider", - "name": "name", + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" + }, + { + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" + }, + { + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, {}, { - "description": "the type of the storage provider: primary or image provider", - "name": "type", + "description": "the Pod ID of the storage pool", + "name": "podid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "List profile in ucs manager", - "isasync": false, - "name": "listUcsProfiles", - "params": [ + "description": "the tags for the storage pool", + "name": "tags", + "type": "string" + }, { - "description": "the id for the ucs manager", - "length": 255, - "name": "ucsmanagerid", - "related": "", - "required": true, - "type": "uuid" + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" + }, + { + "description": "Storage provider for this pool", + "name": "provider", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", + "type": "string" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the Zone ID of the storage pool", + "name": "zoneid", + "type": "string" }, - {}, { - "description": "ucs profile dn", - "name": "ucsdn", + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" + }, + { + "description": "the name of the storage pool", + "name": "name", "type": "string" }, - {} - ] + { + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", + "type": "string" + }, + { + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", + "type": "boolean" + }, + { + "description": "the ID of the storage pool", + "name": "id", + "type": "string" + } + ], + "since": "4.15.1" }, { - "description": "This command allows the user to query the seceret and API keys for the account", + "description": "Releases an AS Number back to the pool", "isasync": false, - "name": "getUserKeys", + "name": "releaseASNumber", "params": [ { - "description": "ID of the user whose keys are required", + "description": "the zone ID", "length": 255, - "name": "id", - "related": "disableUser,getUser,listUsers,lockUser", + "name": "zoneid", + "related": "createZone,listZones", "required": true, "type": "uuid" + }, + { + "description": "the AS Number to be released", + "length": 255, + "name": "asnumber", + "required": true, + "type": "long" } ], - "related": "", "response": [ - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "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", @@ -121248,136 +113883,321 @@ }, {}, { - "description": "the api key of the registered user", - "name": "apikey", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the secret key of the registered user", - "name": "secretkey", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ], - "since": "4.10.0" + "since": "4.20.0" }, { - "description": "update global load balancer rules.", - "isasync": true, - "name": "updateGlobalLoadBalancerRule", + "description": "Creates a security group", + "isasync": false, + "name": "createSecurityGroup", "params": [ { - "description": "session sticky method (sourceip) if not specified defaults to sourceip", + "description": "the description of the security group", "length": 255, - "name": "gslbstickysessionmethodname", + "name": "description", "required": false, "type": "string" }, { - "description": "load balancer algorithm (roundrobin, leastconn, proximity) that is used to distributed traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'", + "description": "name of the security group", "length": 255, - "name": "gslblbmethod", - "required": false, + "name": "name", + "required": true, "type": "string" }, { - "description": "the ID of the global load balancer rule", + "description": "Create security group for project", "length": 255, - "name": "id", - "related": "updateGlobalLoadBalancerRule", - "required": true, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, "type": "uuid" }, { - "description": "the description of the load balancer rule", - "length": 4096, - "name": "description", + "description": "an optional account for the security group. Must be used with domainId.", + "length": 255, + "name": "account", "required": false, "type": "string" + }, + { + "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" } ], "related": "", "response": [ { - "description": "Load balancing method used for the global load balancer", - "name": "gslblbmethod", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the project name of the load balancer", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "name of the global load balancer rule", + "description": "the name of the security group", "name": "name", "type": "string" }, { - "description": "the domain ID of the load balancer rule", - "name": "domainid", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the domain of the load balancer rule", - "name": "domain", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "DNS domain name given for the global load balancer", - "name": "gslbdomainname", + "description": "the project name of the group", + "name": "project", "type": "string" }, { - "description": "the project id of the load balancer", - "name": "projectid", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "List of load balancer rules that are part of GSLB rule", - "name": "loadbalancerrule", + "description": "the list of resource tags associated with the rule", + "name": "tags", "response": [ { - "description": "the public ip address", - "name": "publicip", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the id of the zone the rule belongs to", - "name": "zoneid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the private port", - "name": "privateport", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account of the load balancer rule", + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", "name": "account", "type": "string" }, { - "description": "the domain ID of the load balancer rule", - "name": "domainid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" }, { - "description": "the load balancer rule ID", - "name": "id", + "description": "security group name", + "name": "securitygroupname", "type": "string" }, { - "description": "the protocol of the loadbalanacer rule", - "name": "protocol", - "type": "string" + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" }, { - "description": "the list of resource tags associated with load balancer", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { @@ -121391,38 +114211,38 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { @@ -121431,168 +114251,167 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "resource type", + "name": "resourcetype", "type": "string" } ], - "type": "list" - }, - { - "description": "the description of the load balancer", - "name": "description", - "type": "string" - }, - { - "description": "the name of the load balancer", - "name": "name", - "type": "string" - }, - { - "description": "the name of the zone the load balancer rule belongs to", - "name": "zonename", - "type": "string" - }, - { - "description": "the domain of the load balancer rule", - "name": "domain", - "type": "string" - }, - { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" - }, - { - "description": "the project id of the load balancer", - "name": "projectid", - "type": "string" - }, - { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", - "type": "string" - }, - { - "description": "the project name of the load balancer", - "name": "project", - "type": "string" + "type": "set" }, { - "description": "the state of the rule", - "name": "state", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "the public ip address id", - "name": "publicipid", - "type": "string" + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" }, { - "description": "the public port", - "name": "publicport", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, { - "description": "the id of the guest network the lb rule belongs to", - "name": "networkid", + "description": "account owning the security group rule", + "name": "account", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", "type": "integer" }, - {}, { - "description": "global load balancer rule ID", - "name": "id", + "description": "the account owning the security group", + "name": "account", "type": "string" }, { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + {} + ] + }, + { + "description": "List network visibility and all accounts that have permissions to view this network.", + "isasync": false, + "name": "listNetworkPermissions", + "params": [ + { + "description": "Lists network permission by network ID", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listBrocadeVcsDeviceNetworks", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "GSLB service type", - "name": "gslbservicetype", + "description": "the ID of the domain to which the network belongs", + "name": "domainid", "type": "string" }, - {}, { - "description": "Region Id in which global load balancer is created", - "name": "regionid", - "type": "integer" + "description": "the ID of project the network is available for", + "name": "projectid", + "type": "string" }, { - "description": "session persistence method used for the global load balancer", - "name": "gslbstickysessionmethodname", + "description": "the account the network is available for", + "name": "account", "type": "string" }, { - "description": "the description of the global load balancer rule", - "name": "description", + "description": "the ID of account the network is available for", + "name": "accountid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the domain to which the network belongs", + "name": "domain", "type": "string" }, { - "description": "the account of the load balancer rule", - "name": "account", + "description": "the network ID", + "name": "networkid", "type": "string" - } - ] + }, + { + "description": "the project the network is available for", + "name": "project", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + {} + ], + "since": "4.17.0" }, { - "description": "Lists host tags", + "description": "Updates Bucket properties", "isasync": false, - "name": "listHostTags", + "name": "updateBucket", "params": [ { - "description": "", + "description": "Bucket Quota in GB", "length": 255, - "name": "page", + "name": "quota", "required": false, "type": "integer" }, { - "description": "", + "description": "Enable/Disable Bucket Versioning", "length": 255, - "name": "pagesize", + "name": "versioning", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "List by keyword", + "description": "The ID of the Bucket", "length": 255, - "name": "keyword", + "name": "id", + "related": "", + "required": true, + "type": "uuid" + }, + { + "description": "Bucket Access Policy", + "length": 255, + "name": "policy", "required": false, "type": "string" + }, + { + "description": "Enable/Disable Bucket encryption", + "length": 255, + "name": "encryption", + "required": false, + "type": "boolean" } ], - "related": "", "response": [ { - "description": "the host ID of the host tag", - "name": "hostid", - "type": "long" - }, - { - "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", @@ -121600,87 +114419,89 @@ "type": "integer" }, { - "description": "the ID of the host tag", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - { - "description": "true if the host tag is implicit", - "name": "isimplicit", - "type": "boolean" - }, - {}, {}, { - "description": "the name of the host tag", - "name": "name", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - } - ] + }, + {} + ], + "since": "4.19.0" }, { - "description": "Add a new guest OS type", - "isasync": true, - "name": "addGuestOs", + "description": "Recalculate and update resource count for an account or domain. This also executes some cleanup tasks before calculating resource counts.", + "isasync": false, + "name": "updateResourceCount", "params": [ { - "description": "Map of (key/value pairs)", - "length": 255, - "name": "details", - "required": false, - "type": "map" - }, - { - "description": "Optional name for Guest OS", + "description": "Update resource count for a specified account. Must be used with the domainId parameter.", "length": 255, - "name": "name", + "name": "account", "required": false, "type": "string" }, { - "description": "Unique display name for Guest OS", + "description": "Tag for the resource type", "length": 255, - "name": "osdisplayname", - "required": true, + "name": "tag", + "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "whether this guest OS is available for end users", + "description": "Update resource limits for project", "length": 255, - "name": "forDisplay", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "ID of Guest OS category", + "description": "If account parameter specified then updates resource counts for a specified account in this domain else update resource counts for all accounts & child domains in specified domain.", "length": 255, - "name": "oscategoryid", - "related": "listOsCategories", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": true, "type": "uuid" + }, + { + "description": "Type of resource to update. If specifies valid values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 and 11. If not specified will update all resource counts0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 5 - Project. Number of projects that a user can create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", + "length": 255, + "name": "resourcetype", + "required": false, + "type": "integer" } ], "related": "", "response": [ { - "description": "the name of the OS type", - "name": "name", + "description": "Tag for the resource", + "name": "tag", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id for which resource count's are updated", + "name": "projectid", "type": "string" }, - {}, { - "description": "the name of the OS category", - "name": "oscategoryname", + "description": "the domain ID for which resource count's are updated", + "name": "domainid", "type": "string" }, { - "description": "the name/description of the OS type", - "name": "description", + "description": "the domain name for which resource count's are updated", + "name": "domain", + "type": "string" + }, + { + "description": "path of the domain to which the resource counts are updated", + "name": "domainpath", "type": "string" }, { @@ -121688,82 +114509,148 @@ "name": "jobstatus", "type": "integer" }, + {}, + {}, { - "description": "the ID of the OS category", - "name": "oscategoryid", + "description": "the account for which resource count's are updated", + "name": "account", "type": "string" }, { - "description": "is the guest OS visible for the users", - "name": "fordisplay", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, - {}, { - "description": "the ID of the OS type", - "name": "id", + "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.", + "name": "resourcetypename", "type": "string" }, { - "description": "is the guest OS user defined", - "name": "isuserdefined", - "type": "boolean" + "description": "the project name for which resource count's are updated", + "name": "project", + "type": "string" + }, + { + "description": "resource type. Values include 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.", + "name": "resourcetype", + "type": "string" + }, + { + "description": "The resource count", + "name": "resourcecount", + "type": "long" } - ], - "since": "4.4.0" + ] }, { - "description": "add an annotation.", + "description": "Lists site 2 site vpn gateways", "isasync": false, - "name": "addAnnotation", + "name": "listVpnGateways", "params": [ { - "description": "The following entity types are allowed VM, VOLUME, SNAPSHOT, VM_SNAPSHOT, INSTANCE_GROUP, SSH_KEYPAIR, USER_DATA, NETWORK, VPC, PUBLIC_IP_ADDRESS, VPN_CUSTOMER_GATEWAY, TEMPLATE, ISO, KUBERNETES_CLUSTER, SERVICE_OFFERING, DISK_OFFERING, NETWORK_OFFERING, ZONE, POD, CLUSTER, HOST, DOMAIN, PRIMARY_STORAGE, SECONDARY_STORAGE, VR, SYSTEM_VM, AUTOSCALE_VM_GROUP, MANAGEMENT_SERVER", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "entitytype", + "name": "account", "required": false, "type": "string" }, { - "description": "the annotation is visible for admins only", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "adminsonly", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, - "since": "4.16.0", - "type": "boolean" + "type": "uuid" }, { - "description": "the id of the entity to annotate", + "description": "List by keyword", "length": 255, - "name": "entityid", + "name": "keyword", "required": false, "type": "string" }, { - "description": "the annotation text", + "description": "id of the vpn gateway", "length": 255, - "name": "annotation", + "name": "id", + "related": "createVpnGateway,listVpnGateways", "required": false, - "type": "string" + "type": "uuid" + }, + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "id of vpc", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC", + "required": false, + "type": "uuid" } ], - "related": "", + "related": "createVpnGateway", "response": [ { - "description": "the contents of the annotation", - "name": "annotation", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the removal timestamp for this annotation", - "name": "removed", - "type": "date" + "description": "is vpn gateway for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, - {}, - {}, { - "description": "the type of the annotated entity", - "name": "entitytype", + "description": "the vpc name of this gateway", + "name": "vpcname", + "type": "string" + }, + { + "description": "the domain id of the owner", + "name": "domainid", "type": "string" }, { @@ -121772,34 +114659,40 @@ "type": "string" }, { - "description": "the name of the entity to which this annotation pertains", - "name": "entityname", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { - "description": "the (uu)id of the annotation", - "name": "id", + "description": "the project id", + "name": "projectid", "type": "string" }, { - "description": "the (uu)id of the entity to which this annotation pertains", - "name": "entityid", + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" + }, + {}, + { + "description": "the vpn gateway ID", + "name": "id", "type": "string" }, { - "description": "the creation timestamp for this annotation", - "name": "created", - "type": "date" + "description": "the public IP address", + "name": "publicip", + "type": "string" }, { - "description": "The (uu)id of the user that entered the annotation", - "name": "userid", + "description": "the vpc id of this gateway", + "name": "vpcid", "type": "string" }, { - "description": "True if the annotation is available for admins only", - "name": "adminsonly", - "type": "boolean" + "description": "the domain path of the owner", + "name": "domainpath", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -121807,129 +114700,256 @@ "type": "integer" }, { - "description": "The username of the user that entered the annotation", - "name": "username", + "description": "the project name", + "name": "project", "type": "string" - } - ], - "since": "4.11" + }, + {} + ] }, { - "description": "Creates new NS Vpx", - "isasync": true, - "name": "deployNetscalerVpx", + "description": "Lists dynamic roles in CloudStack", + "isasync": false, + "name": "listRoles", "params": [ { - "description": "the ID of the service offering for the virtual machine", + "description": "List by keyword", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "The network this ip address should be associated to.", + "description": "", "length": 255, - "name": "networkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the ID of the template for the virtual machine", + "description": "List role by role type, valid options are: Admin, ResourceAdmin, DomainAdmin, User.", "length": 255, - "name": "templateid", - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, + "name": "type", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List role by role type status, valid options are: enabled, disabled", + "length": 255, + "name": "state", + "required": false, + "type": "string" + }, + { + "description": "List role by role name.", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "List role by role ID.", + "length": 255, + "name": "id", + "related": "importRole,listRoles", + "required": false, "type": "uuid" + } + ], + "related": "importRole", + "response": [ + { + "description": "the name of the role", + "name": "name", + "type": "string" }, { - "description": "availability zone for the virtual machine", + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the ID of the role", + "name": "id", + "type": "string" + }, + {}, + { + "description": "the state of the role", + "name": "state", + "type": "string" + }, + { + "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": "true if role is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the type of the role", + "name": "type", + "type": "string" + }, + { + "description": "the description of the role", + "name": "description", + "type": "string" + } + ], + "since": "4.9.0" + }, + { + "description": "Download object at a specified path on an image store.", + "isasync": true, + "name": "downloadImageStoreObject", + "params": [ + { + "description": "path to download on image store", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "path", + "required": false, + "type": "string" + }, + { + "description": "id of the image store", + "length": 255, + "name": "id", + "related": "listSwifts,addImageStoreS3,listImageStores", "required": true, "type": "uuid" } ], - "related": "addNetscalerLoadBalancer,registerNetscalerControlCenter", + "related": "extractSnapshot,extractTemplate", "response": [ + {}, { - "description": "the management IP address of the external load balancer", - "name": "ipaddress", + "description": "zone name the object was extracted from", + "name": "zonename", "type": "string" }, { - "description": "private IP of the NetScaler representing GSLB site", - "name": "gslbproviderprivateip", + "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", + "name": "url", "type": "string" }, + {}, { - "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", - "name": "podids", - "type": "list" + "description": "the id of extracted object", + "name": "id", + "type": "string" }, { - "description": "device name", - "name": "lbdevicename", + "description": "the state of the extracted object", + "name": "state", "type": "string" }, { - "description": "name of the provider", - "name": "provider", + "description": "the status of the extraction", + "name": "status", "type": "string" }, { - "description": "device state", - "name": "lbdevicestate", + "description": "the mode of extraction - upload or download", + "name": "extractMode", "type": "string" }, { - "description": "the physical network to which this netscaler device belongs to", - "name": "physicalnetworkid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the percentage of the entity uploaded to the specified location", + "name": "uploadpercentage", + "type": "integer" + }, + { + "description": "", + "name": "resultstring", "type": "string" }, { - "description": "true if device is dedicated for an account", - "name": "lbdevicededicated", - "type": "boolean" + "description": "type of the storage", + "name": "storagetype", + "type": "string" }, { - "description": "the public interface of the load balancer", - "name": "publicinterface", + "description": "the time and date the object was created", + "name": "created", + "type": "date" + }, + { + "description": "the account id to which the extracted object belongs", + "name": "accountid", "type": "string" }, { - "description": "public IP of the NetScaler representing GSLB site", - "name": "gslbproviderpublicip", + "description": "the name of the extracted object", + "name": "name", "type": "string" }, - {}, { - "description": "device capacity", - "name": "lbdevicecapacity", - "type": "long" + "description": "the upload id of extracted object", + "name": "extractId", + "type": "string" }, { - "description": "the private interface of the load balancer", - "name": "privateinterface", + "description": "zone ID the object was extracted from", + "name": "zoneid", "type": "string" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - }, + } + ], + "since": "4.19.0" + }, + { + "description": "Retrieves a cloud identifier.", + "isasync": false, + "name": "getCloudIdentifier", + "params": [ { - "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", - "name": "isexclusivegslbprovider", - "type": "boolean" - }, + "description": "the user ID for the cloud identifier", + "length": 255, + "name": "userid", + "related": "createUser,enableUser,getUser", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, {}, { - "description": "true if NetScaler device is provisioned to be a GSLB service provider", - "name": "gslbprovider", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the signed response for the cloud identifier", + "name": "signature", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -121937,40 +114957,98 @@ "type": "integer" }, { - "description": "device id of the netscaler load balancer", - "name": "lbdeviceid", + "description": "the cloud identifier", + "name": "cloudidentifier", + "type": "string" + }, + { + "description": "the user ID for the cloud identifier", + "name": "userid", "type": "string" } ] }, { - "description": "Lists the volumes of elastistor", - "isasync": false, - "name": "listElastistorVolume", + "description": "Creates a load balancer stickiness policy ", + "isasync": true, + "name": "createLBStickinessPolicy", "params": [ { - "description": "the ID of the account", + "description": "param list. Example: param[0].name=cookiename¶m[0].value=LBCookie ", "length": 255, - "name": "id", + "name": "param", + "required": false, + "type": "map" + }, + { + "description": "name of the load balancer stickiness policy", + "length": 255, + "name": "name", + "required": true, + "type": "string" + }, + { + "description": "the description of the load balancer stickiness policy", + "length": 255, + "name": "description", + "required": false, + "type": "string" + }, + { + "description": "the ID of the load balancer rule", + "length": 255, + "name": "lbruleid", + "related": "updateIpv6FirewallRule", + "required": true, + "type": "uuid" + }, + { + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "name of the load balancer stickiness policy method, possible values are LbCookie, AppCookie, SourceBased", + "length": 255, + "name": "methodname", "required": true, "type": "string" } ], - "related": "", + "related": "listLBStickinessPolicies", "response": [ { - "description": "deduplication", - "name": "deduplication", + "description": "the LB rule ID", + "name": "lbruleid", "type": "string" }, + {}, { - "description": "synchronization", - "name": "sync", + "description": "the account of the Stickiness policy", + "name": "account", "type": "string" }, { - "description": "compression", - "name": "compression", + "description": "the id of the zone the Stickiness policy belongs to", + "name": "zoneid", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the name of the Stickiness policy", + "name": "name", + "type": "string" + }, + { + "description": "the description of the Stickiness policy", + "name": "description", "type": "string" }, { @@ -121979,91 +115057,148 @@ "type": "string" }, { - "description": "the id of the volume", - "name": "id", + "description": "the domain of the Stickiness policy", + "name": "domain", "type": "string" }, { - "description": "the name of the volume", - "name": "name", + "description": "the state of the policy", + "name": "state", "type": "string" }, - {}, - {}, { - "description": "graceallowed", - "name": "graceallowed", + "description": "the domain ID of the Stickiness policy", + "name": "domainid", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the list of stickinesspolicies", + "name": "stickinesspolicy", + "response": [ + { + "description": "the params of the policy", + "name": "params", + "type": "map" + }, + { + "description": "the method name of the Stickiness policy", + "name": "methodname", + "type": "string" + }, + { + "description": "the name of the Stickiness policy", + "name": "name", + "type": "string" + }, + { + "description": "the LB Stickiness policy ID", + "name": "id", + "type": "string" + }, + { + "description": "is policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the description of the Stickiness policy", + "name": "description", + "type": "string" + }, + { + "description": "the state of the policy", + "name": "state", + "type": "string" + } + ], + "type": "list" } - ] + ], + "since": "3.0.0" }, { - "description": "add a baremetal pxe server", + "description": "Configures a Palo Alto firewall device", "isasync": true, - "name": "addBaremetalPxeKickStartServer", + "name": "configurePaloAltoFirewall", "params": [ { - "description": "the Physical Network ID", + "description": "Palo Alto firewall device ID", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "fwdeviceid", + "related": "addPaloAltoFirewall,configurePaloAltoFirewall,listPaloAltoFirewalls", "required": true, "type": "uuid" }, { - "description": "URL of the external pxe device", + "description": "capacity of the firewall device, Capacity will be interpreted as number of networks device can handle", "length": 255, - "name": "url", - "required": true, + "name": "fwdevicecapacity", + "required": false, + "type": "long" + } + ], + "related": "addPaloAltoFirewall,listPaloAltoFirewalls", + "response": [ + { + "description": "the username that's used to log in to the external firewall", + "name": "username", "type": "string" }, { - "description": "type of pxe device", - "length": 255, - "name": "pxeservertype", - "required": true, + "description": "name of the provider", + "name": "provider", "type": "string" }, { - "description": "Tftp root directory of PXE server", - "length": 255, - "name": "tftpdir", - "required": true, + "description": "the private security zone of the external firewall", + "name": "privatezone", "type": "string" }, + {}, { - "description": "Credentials to reach external pxe device", - "length": 255, - "name": "password", - "required": true, + "description": "the usage interface of the external firewall", + "name": "usageinterface", "type": "string" }, { - "description": "Pod Id", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "device name", + "name": "fwdevicename", + "type": "string" }, { - "description": "Credentials to reach external pxe device", - "length": 255, - "name": "username", - "required": true, + "description": "device capacity", + "name": "fwdevicecapacity", + "type": "long" + }, + { + "description": "the zone ID of the external firewall", + "name": "zoneid", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "device id of ", - "name": "id", + "description": "device state", + "name": "fwdevicestate", + "type": "string" + }, + { + "description": "the number of times to retry requests to the external firewall", + "name": "numretries", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the physical network to which this Palo Alto firewall belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "the private interface of the external firewall", + "name": "privateinterface", "type": "string" }, {}, @@ -122073,102 +115208,252 @@ "type": "string" }, { - "description": "the physical network to which this external dhcp device belongs to", - "name": "physicalnetworkid", + "description": "the management IP address of the external firewall", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the timeout (in seconds) for requests to the external firewall", + "name": "timeout", + "type": "string" + }, + { + "description": "the public security zone of the external firewall", + "name": "publiczone", + "type": "string" + }, + { + "description": "device id of the Palo Alto firewall", + "name": "fwdeviceid", + "type": "string" + }, + { + "description": "the public interface of the external firewall", + "name": "publicinterface", + "type": "string" + } + ] + }, + { + "description": "Updates ACL item with specified ID", + "isasync": true, + "name": "updateNetworkACLItem", + "params": [ + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", + "type": "string" + }, + { + "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", + "length": 255, + "name": "protocol", + "required": false, "type": "string" }, { - "description": "Tftp root directory of PXE server", - "name": "tftpdir", - "type": "string" + "description": "type of the ICMP message being sent", + "length": 255, + "name": "icmptype", + "required": false, + "type": "integer" + }, + { + "description": "the cidr list to allow traffic from/to. Multiple entries must be separated by a single comma character (,).", + "length": 255, + "name": "cidrlist", + "required": false, + "type": "list" + }, + { + "description": "The network of the vm the ACL will be created for", + "length": 255, + "name": "number", + "required": false, + "type": "integer" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the ending port of ACL", + "length": 255, + "name": "endport", + "required": false, "type": "integer" }, { - "description": "name of the provider", - "name": "provider", + "description": "the traffic type for the ACL, can be Ingress or Egress, defaulted to Ingress if not specified", + "length": 255, + "name": "traffictype", + "required": false, "type": "string" }, { - "description": "url", - "name": "url", - "type": "string" + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, - {} - ] - }, - { - "description": "Lists Nicira NVP devices", - "isasync": false, - "name": "listNiciraNvpDevices", - "params": [ { - "description": "List by keyword", + "description": "error code for this ICMP message", "length": 255, - "name": "keyword", + "name": "icmpcode", "required": false, - "type": "string" + "type": "integer" }, { - "description": "", + "description": "the starting port of ACL", "length": 255, - "name": "pagesize", + "name": "startport", "required": false, "type": "integer" }, { - "description": "", + "description": "scl entry action, allow or deny", "length": 255, - "name": "page", + "name": "action", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the Physical Network ID", + "description": "A description indicating why the ACL rule is required.", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "reason", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "nicira nvp device ID", + "description": "Indicates if the ACL rule is to be updated partially (merging the parameters sent with current configuration) or completely (disconsidering all of the current configurations). The default value is 'true'.", "length": 255, - "name": "nvpdeviceid", - "related": "addNiciraNvpDevice,listNiciraNvpDevices", + "name": "partialupgrade", "required": false, + "type": "boolean" + }, + { + "description": "the ID of the network ACL item", + "length": 255, + "name": "id", + "related": "updateNetworkACLItem,moveNetworkAclItem", + "required": true, "type": "uuid" } ], - "related": "addNiciraNvpDevice", + "related": "moveNetworkAclItem", "response": [ { - "description": "name of the provider", - "name": "provider", + "description": "the ID of the ACL this item belongs to", + "name": "aclid", "type": "string" }, { - "description": "device name", - "name": "niciradevicename", + "description": "the traffic type for the ACL", + "name": "traffictype", "type": "string" }, - {}, { - "description": "this L3 gateway service Uuid", - "name": "l3gatewayserviceuuid", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the physical network to which this Nirica Nvp belongs to", - "name": "physicalnetworkid", + "description": "Action of ACL Item. Allow/Deny", + "name": "action", "type": "string" }, { - "description": "the transport zone Uuid", - "name": "transportzoneuuid", + "description": "an explanation on why this ACL rule is being applied", + "name": "reason", + "type": "string" + }, + { + "description": "the list of resource tags associated with the network ACLs", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the ending port of ACL's port range", + "name": "endport", + "type": "string" + }, + { + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" + }, + {}, + { + "description": "the starting port of ACL's port range", + "name": "startport", "type": "string" }, { @@ -122177,694 +115462,854 @@ "type": "integer" }, { - "description": "the controller Ip address", - "name": "hostname", + "description": "Number of the ACL Item", + "name": "number", + "type": "integer" + }, + { + "description": "the name of the ACL this item belongs to", + "name": "aclname", "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, { - "description": "device id of the Nicire Nvp", - "name": "nvpdeviceid", + "description": "the protocol of the ACL", + "name": "protocol", "type": "string" }, { - "description": "this L2 gateway service Uuid", - "name": "l2gatewayserviceuuid", + "description": "the ID of the ACL Item", + "name": "id", "type": "string" + }, + { + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" } ] }, { - "description": "Lists all alerts.", + "description": "Moves a user to another account in the same domain.", "isasync": false, - "name": "listAlerts", + "name": "moveUser", "params": [ { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the alert", + "description": "id of the user to be moved.", "length": 255, "name": "id", - "related": "listAlerts", - "required": false, + "related": "createUser,enableUser,getUser", + "required": true, "type": "uuid" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - }, - { - "description": "list by alert name", + "description": "Moves the user under the specified account. If no account name is specified, it is necessary to provide an account id.", "length": 255, - "name": "name", + "name": "account", "required": false, - "since": "4.3", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "list by alert type", + "description": "Moves the user under the specified account. If no account id is specified, it is necessary to provide an account name.", "length": 255, - "name": "type", + "name": "accountid", + "related": "enableAccount,listAccounts,listAccounts", "required": false, - "type": "string" + "type": "uuid" } ], - "related": "", "response": [ - { - "description": "the date and time the alert was sent", - "name": "sent", - "type": "date" - }, - {}, - { - "description": "One of the following alert types: MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, SECONDARY_STORAGE = 6, HOST = 7, USERVM = 8, DOMAIN_ROUTER = 9, CONSOLE_PROXY = 10, ROUTING = 11: lost connection to default route (to the gateway), STORAGE_MISC = 12, USAGE_SERVER = 13, MANAGMENT_NODE = 14, DOMAIN_ROUTER_MIGRATE = 15, CONSOLE_PROXY_MIGRATE = 16, USERVM_MIGRATE = 17, VLAN = 18, SSVM = 19, USAGE_SERVER_RESULT = 20, STORAGE_DELETE = 21, UPDATE_RESOURCE_COUNT = 22, USAGE_SANITY_RESULT = 23, DIRECT_ATTACHED_PUBLIC_IP = 24, LOCAL_STORAGE = 25, RESOURCE_LIMIT_EXCEEDED = 26, SYNC = 27, UPLOAD_FAILED = 28, OOBM_AUTH_ERROR = 29", - "name": "type", - "type": "short" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + {}, + {}, { - "description": "the id of the alert", - "name": "id", - "type": "string" - }, - { - "description": "description of the alert", - "name": "description", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the alert", - "name": "name", - "type": "string" + "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", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } - ] + ], + "since": "4.11" }, { - "description": "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", - "isasync": true, - "name": "deployVirtualMachine", + "description": "List routers.", + "isasync": false, + "name": "listRouters", "params": [ { - "description": "name of the ssh key pair used to login to the virtual machine", + "description": "", "length": 255, - "name": "keypair", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "destination Pod ID to deploy the VM to - parameter available for root admin only", + "description": "if this parameter is passed, list only routers by health check results", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", + "name": "healthchecksfailed", "required": false, - "since": "4.13", - "type": "uuid" + "since": "4.16", + "type": "boolean" }, { - "description": "the ipv6 address for default vm's network", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "ip6address", + "name": "isrecursive", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "destination Cluster ID to deploy the VM to - parameter available for root admin only", + "description": "list virtual router elements by version", "length": 255, - "name": "clusterid", - "related": "addCluster", + "name": "version", "required": false, - "since": "4.13", - "type": "uuid" + "type": "string" }, { - "description": "an optional user generated name for the virtual machine", + "description": "the state of the router", "length": 255, - "name": "displayname", + "name": "state", "required": false, "type": "string" }, { - "description": "host name for the virtual machine", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "name", + "name": "account", "required": false, "type": "string" }, { - "description": "the hypervisor on which to deploy the virtual machine. The parameter is required and respected only when hypervisor info is not set on the ISO/Template passed to the call", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "hypervisor", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "used to specify the parameters values for the variables in userdata.", + "description": "List by keyword", "length": 255, - "name": "userdatadetails", + "name": "keyword", "required": false, - "since": "4.18", - "type": "map" + "type": "string" }, { - "description": "an optional account for the virtual machine. Must be used with domainId.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "account", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "an optional URL encoded string that can be passed to the virtual machine upon successful deployment", - "length": 5120, - "name": "extraconfig", + "description": "the ID of the disk router", + "length": 255, + "name": "id", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "since": "4.12", - "type": "string" + "type": "uuid" }, { - "description": "Boot Mode [Legacy] or [Secure] Applicable when Boot Type Selected is UEFI, otherwise Legacy only for BIOS. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", + "description": "the name of the router", "length": 255, - "name": "bootmode", + "name": "name", "required": false, - "since": "4.14.0.0", "type": "string" }, { - "description": "DHCP options which are passed to the VM on start up Example: dhcpoptionsnetworklist[0].dhcp:114=url&dhcpoptionsetworklist[0].networkid=networkid&dhcpoptionsetworklist[0].dhcp:66=www.test.com", + "description": "the cluster ID of the router", "length": 255, - "name": "dhcpoptionsnetworklist", + "name": "clusterid", + "related": "addCluster", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid&iptonetworklist[0].mac=aa:bb:cc:dd:ee::ff - requests to use ip 10.10.10.11 in network id=uuid", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "iptonetworklist", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, - "type": "map" + "type": "uuid" }, { - "description": "destination Host ID to deploy the VM to - parameter available for root admin only", + "description": "if true is passed for this parameter, list only VPC routers", "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", + "name": "forvpc", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskOfferingId is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateId parameter passed is from a Template object, the diskOfferingId refers to a DATA Disk Volume created. If the templateId parameter passed is from an ISO object, the diskOfferingId refers to a ROOT Disk Volume created.", + "description": "if true is passed for this parameter, also fetch last executed health check results for the router. Default is false", "length": 255, - "name": "diskofferingid", - "related": "", + "name": "fetchhealthcheckresults", "required": false, - "type": "uuid" + "since": "4.14", + "type": "boolean" }, { - "description": "the ID of the service offering for the virtual machine", + "description": "the Pod ID of the router", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", - "required": true, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, "type": "uuid" }, { - "description": "VMware only: used to specify network mapping of a vApp VMware template registered \"as-is\". Example nicnetworklist[0].ip=Nic-101&nicnetworklist[0].network=uuid", + "description": "List networks by VPC", "length": 255, - "name": "nicnetworklist", + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC", "required": false, - "since": "4.15", - "type": "map" + "type": "uuid" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "list by network id", "length": 255, - "name": "customid", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork,listBrocadeVcsDeviceNetworks", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Controls specific policies on IO", + "description": "the host ID of the router", "length": 255, - "name": "iodriverpolicy", + "name": "hostid", + "related": "addBaremetalHost,reconnectHost", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used. If account is NOT provided then virtual machine will be assigned to the caller account and domain.", + "description": "the Zone ID of the router", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "zoneid", + "related": "createZone,listZones", "required": false, "type": "uuid" }, { - "description": "list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter", + "description": "", "length": 255, - "name": "networkids", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", + "name": "page", "required": false, - "type": "list" + "type": "integer" + } + ], + "related": "destroyRouter", + "response": [ + { + "description": "the guest MAC address for the router", + "name": "guestmacaddress", + "type": "string" }, { - "description": "the ID of the template for the virtual machine", - "length": 255, - "name": "templateid", - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "the gateway for the router", + "name": "gateway", + "type": "string" }, { - "description": "Deploy vm for the project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the public netmask for the router", + "name": "publicnetmask", + "type": "string" }, { - "description": "the ID of the Userdata", - "length": 255, - "name": "userdataid", - "related": "", - "required": false, - "since": "4.18", - "type": "uuid" + "description": "the template ID for the router", + "name": "templateid", + "type": "string" }, { - "description": "Guest VM Boot option either custom[UEFI] or default boot [BIOS]. Not applicable with VMware if the template is marked as deploy-as-is, as we honour what is defined in the template.", - "length": 255, - "name": "boottype", - "required": false, - "since": "4.14.0.0", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, + {}, { - "description": "Boot into hardware setup or not (ignored if startVm = false, only valid for vmware)", - "length": 255, - "name": "bootintosetup", - "required": false, - "since": "4.15.0.0", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter", - "length": 255, - "name": "securitygroupids", - "related": "", - "required": false, - "type": "list" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, { - "description": "used to specify the vApp properties.", - "length": 255, - "name": "properties", - "required": false, - "since": "4.15", - "type": "map" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "if true the image tags (if any) will be copied to the VM, default value is false", - "length": 255, - "name": "copyimagetags", - "required": false, - "since": "4.13", - "type": "boolean" + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", + "type": "string" }, { - "description": "used to specify the custom parameters. 'extraconfig' is not allowed to be passed in details", - "length": 255, - "name": "details", - "required": false, - "since": "4.3", - "type": "map" + "description": "the control state of the host for the router", + "name": "hostcontrolstate", + "type": "string" }, + {}, { - "description": "the ID of the disk offering for the virtual machine to be used for root volume instead of the disk offering mapped in service offering.In case of virtual machine deploying from ISO, then the diskofferingid specified for root volume is ignored and uses this override disk offering id", - "length": 255, - "name": "overridediskofferingid", - "related": "", - "required": false, - "since": "4.17", - "type": "uuid" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "the arbitrary size for the DATADISK volume. Mutually exclusive with diskOfferingId", - "length": 255, - "name": "size", - "required": false, - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter", - "length": 255, - "name": "affinitygroupnames", - "related": "", - "required": false, - "type": "list" + "description": "the public IP address for the router", + "name": "publicip", + "type": "string" }, { - "description": "comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", - "length": 255, - "name": "securitygroupnames", - "related": "", - "required": false, - "type": "list" + "description": "the version of scripts", + "name": "scriptsversion", + "type": "string" }, { - "description": "The number of queues for multiqueue NICs.", - "length": 255, - "name": "nicmultiqueuenumber", - "required": false, - "since": "4.18", - "type": "integer" + "description": "the state of redundant virtual router", + "name": "redundantstate", + "type": "string" }, { - "description": "names of the ssh key pairs used to login to the virtual machine", - "length": 255, - "name": "keypairs", - "required": false, - "since": "4.17", + "description": "the id of the router", + "name": "id", + "type": "string" + }, + { + "description": "the guest IP address for the router", + "name": "guestipaddress", + "type": "string" + }, + { + "description": "Last executed health check result for the router", + "name": "healthcheckresults", + "response": [ + { + "description": "the name of the health check on the router", + "name": "checkname", + "type": "string" + }, + { + "description": "detailed response generated on running health check", + "name": "details", + "type": "string" + }, + { + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the type of the health check - basic or advanced", + "name": "checktype", + "type": "string" + }, + { + "description": "result of the health check", + "name": "success", + "type": "boolean" + } + ], "type": "list" }, { - "description": "Deployment planner to use for vm allocation. Available to ROOT admin only", - "length": 255, - "name": "deploymentplanner", - "required": false, - "since": "4.4", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "an optional group for the virtual machine", - "length": 255, - "name": "group", - "required": false, + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" + }, + { + "description": "the template name for the router", + "name": "templatename", "type": "string" }, { - "description": "The password of the virtual machine. If null, a random password will be generated for the VM.", - "length": 255, - "name": "password", - "required": false, - "since": "4.19.0.0", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "an optional field, whether to the display the vm to the end user or not.", - "length": 255, - "name": "displayvm", - "required": false, - "since": "4.2", - "type": "boolean" + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", + "type": "string" }, { - "description": "availability zone for the virtual machine", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", + "type": "string" }, { - "description": "IOThreads are dedicated event loop threads for supported disk devices to perform block I/O requests in order to improve scalability especially on an SMP host/guest with many LUNs.", - "length": 255, - "name": "iothreadsenabled", - "required": false, + "description": "the hostname for the router", + "name": "hostname", + "type": "string" + }, + { + "description": "the project name of the address", + "name": "project", + "type": "string" + }, + { + "description": "true if any health checks had failed", + "name": "healthchecksfailed", "type": "boolean" }, { - "description": "true if virtual machine needs to be dynamically scalable", - "length": 255, - "name": "dynamicscalingenabled", - "required": false, - "since": "4.16", + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", "type": "boolean" }, { - "description": "the ip address for default vm's network", - "length": 255, - "name": "ipaddress", - "required": false, + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", "type": "string" }, { - "description": "true if start vm after creating; defaulted to true if not specified", - "length": 255, - "name": "startvm", - "required": false, - "type": "boolean" + "description": "the link local IP address for the router", + "name": "linklocalip", + "type": "string" }, { - "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", - "length": 1048576, - "name": "userdata", - "required": false, + "description": "the first DNS for the router", + "name": "dns1", "type": "string" }, { - "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter", - "length": 255, - "name": "affinitygroupids", - "related": "", - "required": false, - "type": "list" + "description": "the name of the router", + "name": "name", + "type": "string" }, { - "description": "datadisk template to disk-offering mapping; an optional parameter used to create additional data disks from datadisk templates; can't be specified with diskOfferingId parameter", - "length": 255, - "name": "datadiskofferinglist", - "required": false, - "since": "4.11", - "type": "map" + "description": "the Pod ID for the router", + "name": "podid", + "type": "string" }, { - "description": "an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us", - "length": 255, - "name": "keyboard", - "required": false, + "description": "the link local netmask for the router", + "name": "linklocalnetmask", "type": "string" }, { - "description": "the mac address for default vm's network", - "length": 255, - "name": "macaddress", - "required": false, + "description": "the Zone ID for the router", + "name": "zoneid", "type": "string" }, { - "description": "Enable packed virtqueues or not.", - "length": 255, - "name": "nicpackedvirtqueuesenabled", - "required": false, - "since": "4.18", - "type": "boolean" + "description": "the network domain for the router", + "name": "networkdomain", + "type": "string" }, { - "description": "Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided", - "length": 255, - "name": "rootdisksize", - "required": false, - "since": "4.4", - "type": "long" - } - ], - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ + "description": "path of the Domain the router belongs to", + "name": "domainpath", + "type": "string" + }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the host ID for the router", + "name": "hostid", "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "the domain associated with the router", + "name": "domain", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the name of VPC the router belongs to", + "name": "vpcname", + "type": "string" + }, + { + "description": "the Zone name for the router", + "name": "zonename", + "type": "string" + }, + { + "description": "the domain ID associated with the router", + "name": "domainid", + "type": "string" + }, + { + "description": "the version of template", + "name": "version", + "type": "string" + }, + { + "description": "the second DNS for the router", + "name": "dns2", + "type": "string" + }, + { + "description": "the account associated with the router", + "name": "account", + "type": "string" + }, + { + "description": "role of the domain router", + "name": "role", + "type": "string" + }, + { + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", + "type": "string" + }, + { + "description": "the list of nics associated with the router", + "name": "nic", "response": [ { - "description": "the description of the affinity group", - "name": "description", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "the type of the affinity group", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the type of the nic", "name": "type", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", "type": "list" }, { - "description": "the ID of the affinity group", + "description": "the ID of the nic", "name": "id", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" } ], "type": "set" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the guest netmask for the router", + "name": "guestnetmask", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the public MAC address for the router", + "name": "publicmacaddress", + "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" + }, + { + "description": "the Pod name for the router", + "name": "podname", + "type": "string" + } + ] + }, + { + "description": "Releases host reservation.", + "isasync": true, + "name": "releaseHostReservation", + "params": [ + { + "description": "the host ID", + "length": 255, + "name": "id", + "related": "addBaremetalHost,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "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" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {} + ] + }, + { + "description": "Create site to site vpn connection", + "isasync": true, + "name": "createVpnConnection", + "params": [ + { + "description": "connection is passive or not", + "length": 255, + "name": "passive", + "required": false, + "type": "boolean" }, { - "description": "User VM type", - "name": "vmtype", - "type": "string" + "description": "id of the vpn gateway", + "length": 255, + "name": "s2svpngatewayid", + "related": "createVpnGateway", + "required": true, + "type": "uuid" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" + "description": "an optional field, whether to the display the vpn to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" - }, + "description": "id of the customer gateway", + "length": 255, + "name": "s2scustomergatewayid", + "related": "createVpnCustomerGateway", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", + "type": "boolean" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "is connection for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, + {}, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", + "description": "the date and time the host was removed", + "name": "removed", "type": "date" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the domain id of the owner", + "name": "domainid", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "Split multiple remote networks into multiple phase 2 SAs. Often used with Cisco some products.", + "name": "splitconnections", + "type": "boolean" + }, + { + "description": "public ip address id of the customer gateway", + "name": "gateway", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { @@ -122873,2313 +116318,1881 @@ "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", + "type": "long" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" + "description": "the date and time the host was created", + "name": "created", + "type": "date" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "IPsec Preshared-Key of the customer gateway", + "name": "ipsecpsk", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the connection ID", + "name": "id", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the project id", + "name": "projectid", + "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", + "type": "long" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "ESP policy of the customer gateway", + "name": "esppolicy", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "State of vpn connection", + "name": "passive", + "type": "boolean" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the customer gateway ID", + "name": "s2scustomergatewayid", + "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", + "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the vpn gateway ID", + "name": "s2svpngatewayid", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the public IP address", + "name": "publicip", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "IKE policy of the customer gateway", + "name": "ikepolicy", + "type": "string" }, + {}, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "State of vpn connection", + "name": "state", "type": "string" + } + ] + }, + { + "description": "lists network that are using a brocade vcs switch", + "isasync": false, + "name": "listBrocadeVcsDeviceNetworks", + "params": [ + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" + "description": "brocade vcs switch ID", + "length": 255, + "name": "vcsdeviceid", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", + "response": [ + { + "description": "the domain id of the network owner", + "name": "domainid", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the id of the network", + "name": "id", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "ACL name associated with the VPC network", + "name": "aclname", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "The internet protocol of network offering", + "name": "internetprotocol", "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", "type": "string" }, - {}, - {}, { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "the list of services", + "name": "service", "response": [ { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the service name", + "name": "name", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + } + ], "type": "list" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + } + ], "type": "list" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, + } + ], + "type": "list" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the domain name of the network owner", + "name": "domain", + "type": "string" + }, + {}, + { + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", + "type": "integer" + }, + { + "description": "the list of resource tags associated with network", + "name": "tags", + "response": [ { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "tag key name", + "name": "key", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the second IPv4 DNS for the network", + "name": "dns2", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "related to what other network configuration", + "name": "related", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", + "type": "boolean" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", + "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" + "description": "network offering id the network is created from", + "name": "networkofferingid", + "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "name of the network offering the network is created from", + "name": "networkofferingname", + "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the physical network id", + "name": "physicalnetworkid", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", "type": "boolean" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "the date this network was created", + "name": "created", + "type": "date" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "VPC the network belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the displaytext of the network", + "name": "displaytext", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", + "type": "string" + }, + { + "description": "ACL Id associated with the VPC network", + "name": "aclid", + "type": "string" + }, + { + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", + "type": "string" + }, + { + "description": "zone id of the network", + "name": "zoneid", + "type": "string" + }, + { + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", "type": "boolean" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - } - ], - "type": "set" - } - ], + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" + }, + { + "description": "the network domain", + "name": "networkdomain", + "type": "string" + }, + { + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" + }, + { + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", "type": "set" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the name of the network", + "name": "name", + "type": "string" + }, + { + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", + "type": "string" + }, + { + "description": "the owner of the network", + "name": "account", "type": "string" }, - {}, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the network's gateway", + "name": "gateway", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "list networks available for vm deployment", + "name": "canusefordeploy", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the name of the Network associated with this network", + "name": "associatednetwork", + "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "path of the Domain the network belongs to", + "name": "domainpath", "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "The IPv4 routing type of network", + "name": "ip4routing", + "type": "string" }, + {}, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the traffic type of the network", + "name": "traffictype", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the first IPv4 DNS for the network", + "name": "dns1", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "list networks that are persistent", + "name": "ispersistent", + "type": "boolean" + }, + { + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "The external id of the network", + "name": "externalid", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" + }, + { + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "acl type - access type to the network", + "name": "acltype", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the network's netmask", + "name": "netmask", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the details of the network", + "name": "details", + "type": "map" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "state of the network", + "name": "state", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "UUID of AS NUMBER", + "name": "asnumberid", + "type": "string" + }, + { + "description": "the type of the network", + "name": "type", + "type": "string" + }, + { + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" + }, + { + "description": "true network requires restart", + "name": "restartrequired", + "type": "boolean" + }, + { + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", "type": "boolean" + }, + { + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" + }, + { + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", + "type": "string" } ] }, { - "description": "Lists all volumes.", + "description": "Lists Webhook deliveries", "isasync": false, - "name": "listVolumes", + "name": "listWebhookDeliveries", "params": [ { - "description": "list only volumes that are encrypted", + "description": "The start date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having start date equal to or after the specified date will be listed.", "length": 255, - "name": "isencrypted", + "name": "startdate", "required": false, - "since": "4.19.1", - "type": "boolean" + "type": "date" }, { - "description": "list volumes by disk offering", + "description": "", "length": 255, - "name": "diskofferingid", + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "The ID of the management server", + "length": 255, + "name": "managementserverid", "related": "", "required": false, - "since": "4.4", "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "The event type of the Webhook delivery", "length": 255, - "name": "listall", + "name": "eventtype", "required": false, - "type": "boolean" + "type": "string" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "the name of the disk volume", + "description": "The end date range for the Webhook delivery (use format \"yyyy-MM-dd\" or \"yyyy-MM-dd HH:mm:ss\"). All deliveries having end date equal to or before the specified date will be listed.", "length": 255, - "name": "name", + "name": "enddate", "required": false, - "type": "string" + "type": "date" }, { - "description": "the IDs of the volumes, mutually exclusive with id", + "description": "List by keyword", "length": 255, - "name": "ids", - "related": "createVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "name": "keyword", "required": false, - "since": "4.9", - "type": "list" + "type": "string" }, { - "description": "the cluster id the disk volume belongs to", + "description": "The ID of the Webhook delivery", "length": 255, - "name": "clusterid", - "related": "addCluster", + "name": "id", + "related": "", "required": false, "type": "uuid" }, { - "description": "", + "description": "The ID of the Webhook", "length": 255, - "name": "pagesize", + "name": "webhookid", + "related": "createWebhook,listWebhookDeliveries", "required": false, - "type": "integer" + "type": "uuid" + } + ], + "related": "createWebhook", + "response": [ + { + "description": "The scope of the Webhook", + "name": "scope", + "type": "string" + }, + {}, + { + "description": "path of the domain to which the Webhook belongs", + "name": "domainpath", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "displayvolume", - "required": false, - "since": "4.4", + "description": "Whether SSL verification is enabled for the Webhook", + "name": "sslverification", "type": "boolean" }, { - "description": "the ID of the availability zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "The date when this Webhook was created", + "name": "created", + "type": "date" }, { - "description": "state of the volume. Possible values are: Ready, Allocated, Destroy, Expunging, Expunged.", - "length": 255, + "description": "The ID of the Webhook", + "name": "id", + "type": "string" + }, + { + "description": "The name of the domain in which the Webhook exists", + "name": "domain", + "type": "string" + }, + { + "description": "The account associated with the Webhook", + "name": "account", + "type": "string" + }, + { + "description": "The state of the Webhook", "name": "state", - "required": false, "type": "string" }, { - "description": "the ID of the disk volume", - "length": 255, - "name": "id", - "related": "createVolume,listVolumes,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", - "required": false, - "type": "uuid" + "description": "The payload URL end point for the Webhook", + "name": "payloadurl", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the project name of the Kubernetes cluster", + "name": "project", + "type": "string" }, + {}, { - "description": "the ID of the virtual machine", - "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "list volumes on specified host", - "length": 255, - "name": "hostid", - "related": "declareHostAsDegraded,reconnectHost", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the storage pool, available to ROOT admin only", - "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", - "required": false, - "since": "4.3", + "description": "The ID of the domain in which the Webhook exists", + "name": "domainid", "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "The secret key for the Webhook", + "name": "secretkey", "type": "string" }, { - "description": "makes the API's response contains only the resource count", - "length": 255, - "name": "retrieveonlyresourcecount", - "required": false, - "type": "boolean" + "description": "The description of the Webhook", + "name": "description", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "the project id of the Kubernetes cluster", + "name": "projectid", + "type": "string" + }, + { + "description": "The name of the Webhook", + "name": "name", + "type": "string" + } + ], + "since": "4.20.0" + }, + { + "description": "Deletes a Physical Network.", + "isasync": true, + "name": "deletePhysicalNetwork", + "params": [ + { + "description": "the ID of the Physical network", "length": 255, - "name": "isrecursive", - "required": false, + "name": "id", + "related": "createPhysicalNetwork", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the pod id the disk volume belongs to", + "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": "3.0.0" + }, + { + "description": "Creates a Webhook", + "isasync": false, + "name": "createWebhook", + "params": [ + { + "description": "Project for the Webhook", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, "type": "uuid" }, { - "description": "the type of disk volume", + "description": "State of the Webhook", "length": 255, - "name": "type", + "name": "state", "required": false, "type": "string" }, { - "description": "list system VMs; only ROOT admin is eligible to pass this parameter", + "description": "Payload URL of the Webhook", "length": 255, - "name": "listsystemvms", - "required": false, - "since": "4.18", - "type": "boolean" + "name": "payloadurl", + "required": true, + "type": "string" }, { - "description": "list volumes by disk offering of a service offering. If both service offering and disk offering are passed, service offering is ignored", + "description": "Description for the Webhook", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", + "name": "description", "required": false, - "since": "4.19.1", - "type": "uuid" + "type": "string" }, { - "description": "List resources by tags (key/value pairs)", + "description": "If set to true then SSL verification will be done for the Webhook otherwise not", "length": 255, - "name": "tags", + "name": "sslverification", "required": false, - "type": "map" + "type": "boolean" }, { - "description": "list only resources belonging to the domain specified", + "description": "an optional domainId for the Webhook. If the account parameter is used, domainId must also be used.", "length": 255, "name": "domainid", - "related": "listDomains", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" - } - ], - "related": "createVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", - "response": [ - { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "Secret key of the Webhook", + "length": 255, + "name": "secretkey", + "required": false, + "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "Name for the Webhook", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "Scope of the Webhook", + "length": 255, + "name": "scope", + "required": false, + "type": "string" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "An optional account for the Webhook. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "name of the virtual machine", - "name": "vmname", + "description": "The description of the Webhook", + "name": "description", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "The name of the domain in which the Webhook exists", + "name": "domain", + "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "The account associated with the Webhook", + "name": "account", "type": "string" }, + {}, + {}, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", + "description": "Whether SSL verification is enabled for the Webhook", + "name": "sslverification", "type": "boolean" }, { - "description": "the path of the volume", - "name": "path", + "description": "The ID of the domain in which the Webhook exists", + "name": "domainid", "type": "string" }, { - "description": "name of the disk volume", - "name": "name", + "description": "The ID of the Webhook", + "name": "id", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "The date when this Webhook was created", + "name": "created", + "type": "date" }, { - "description": "type of the virtual machine", - "name": "vmtype", + "description": "The state of the Webhook", + "name": "state", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "The payload URL end point for the Webhook", + "name": "payloadurl", "type": "string" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "path of the domain to which the Webhook belongs", + "name": "domainpath", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "The name of the Webhook", + "name": "name", "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "The secret key for the Webhook", + "name": "secretkey", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "The scope of the Webhook", + "name": "scope", + "type": "string" }, { - "description": "the project id of the vpn", + "description": "the project id of the Kubernetes cluster", "name": "projectid", "type": "string" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "the project name of the Kubernetes cluster", + "name": "project", "type": "string" - }, - { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, + } + ], + "since": "4.20.0" + }, + { + "description": "Dedicates a host.", + "isasync": true, + "name": "dedicateHost", + "params": [ { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the name of the account which needs dedication. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", - "type": "string" + "description": "the ID of the host to update", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,reconnectHost", + "required": true, + "type": "uuid" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" - }, + "description": "the ID of the containing domain", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": true, + "type": "uuid" + } + ], + "related": "listDedicatedHosts", + "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Account ID of the host", + "name": "accountid", "type": "string" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "the ID of the host", + "name": "hostid", + "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "the domain ID of the host", + "name": "domainid", + "type": "string" }, {}, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" - }, - { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" - }, - { - "description": "shared or local storage", - "name": "storagetype", + "description": "the Dedication Affinity Group ID of the host", + "name": "affinitygroupid", "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the ID of the dedicated resource", + "name": "id", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the name of the host", + "name": "hostname", "type": "string" }, + {} + ] + }, + { + "description": "Removes vpn user", + "isasync": true, + "name": "removeVpnUser", + "params": [ { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "an optional account for the vpn user. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" + "description": "remove vpn user from the project", + "length": 255, + "name": "projectid", + "related": "activateProject,suspendProject", + "required": false, + "type": "uuid" }, { - "description": "the disk utilization", - "name": "utilization", - "type": "string" + "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "username for the vpn user", + "length": 255, + "name": "username", + "required": true, "type": "string" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, - {}, { - "description": "the state of the disk volume", - "name": "state", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "ID of the disk volume", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "Adds the GloboDNS external host", + "isasync": true, + "name": "addGloboDnsHost", + "params": [ { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "GloboDNS url", + "length": 255, + "name": "url", + "required": true, "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "Password for GloboDNS", + "length": 255, + "name": "password", + "required": true, "type": "string" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", - "type": "string" + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": true, + "type": "uuid" }, { - "description": "the status of the volume", - "name": "status", + "description": "Username for GloboDNS", + "length": 255, + "name": "username", + "required": true, "type": "string" - }, + } + ], + "response": [ { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" - }, - { - "description": "the account associated with the disk volume", - "name": "account", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "state of the virtual machine", - "name": "vmstate", - "type": "string" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.5.0" + }, + { + "description": "List public IP addresses in quarantine.", + "isasync": false, + "name": "listQuarantinedIps", + "params": [ { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", + "description": "Show IPs that are no longer in quarantine.", + "length": 255, + "name": "showinactive", + "required": false, "type": "boolean" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" - }, - { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", - "type": "string" + "description": "Show IPs removed from quarantine.", + "length": 255, + "name": "showremoved", + "required": false, + "type": "boolean" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" - }, + } + ], + "related": "updateQuarantinedIp", + "response": [ { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "Account ID of the previous public IP address owner.", + "name": "previousownerid", "type": "string" }, + {}, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", + "description": "When the quarantine 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 UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "ID of the quarantine process.", + "name": "id", "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "ID of the account that removed the IP from quarantine.", + "name": "removeraccountid", "type": "string" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "Account name of the previous public IP address owner.", + "name": "previousownername", "type": "string" }, + {}, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "The reason for removing the IP from quarantine prematurely.", + "name": "removalreason", + "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", - "type": "string" + "description": "When the quarantine was removed.", + "name": "removed", + "type": "date" }, { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" + "description": "End date for the quarantine.", + "name": "enddate", + "type": "date" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "The public IP address in quarantine.", + "name": "ipaddress", "type": "string" - }, + } + ], + "since": "4.19" + }, + { + "description": "Logs out the user", + "isasync": false, + "name": "logout", + "params": [], + "related": "", + "response": [ { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "Response description", + "name": "description", "type": "string" }, + {}, + {}, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" } ] }, { - "description": "Creates a load balancer health check policy", + "description": "Deletes a load balancer health check policy.", "isasync": true, - "name": "createLBHealthCheckPolicy", + "name": "deleteLBHealthCheckPolicy", "params": [ { - "description": "Time to wait when receiving a response from the health check (2sec - 60 sec)", + "description": "the ID of the load balancer health check policy", "length": 255, - "name": "responsetimeout", - "required": false, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the description of the load balancer health check policy", - "length": 255, - "name": "description", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "Number of consecutive health check success before declaring an instance healthy", - "length": 255, - "name": "healthythreshold", - "required": false, - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {}, { - "description": "HTTP ping path", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ], + "since": "4.2.0" + }, + { + "description": "Imports a role based on provided map of rule permissions", + "isasync": false, + "name": "importRole", + "params": [ + { + "description": "Creates a role with this unique name", "length": 255, - "name": "pingpath", - "required": false, + "name": "name", + "required": true, "type": "string" }, { - "description": "the ID of the load balancer rule", + "description": "Rules param list, rule and permission is must. Example: rules[0].rule=create*&rules[0].permission=allow&rules[0].description=create%20rule&rules[1].rule=list*&rules[1].permission=allow&rules[1].description=listing", + "length": 255, + "name": "rules", + "required": true, + "type": "map" + }, + { + "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User", "length": 255, - "name": "lbruleid", - "related": "", - "required": true, - "type": "uuid" + "name": "type", + "required": false, + "type": "string" }, { - "description": "Number of consecutive health check failures before declaring an instance unhealthy", + "description": "The description of the role", "length": 255, - "name": "unhealthythreshold", + "name": "description", "required": false, - "type": "integer" + "type": "string" }, { - "description": "Amount of time between health checks (1 sec - 20940 sec)", + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", "length": 255, - "name": "intervaltime", + "name": "ispublic", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "an optional field, whether to the display the rule to the end user or not", + "description": "Force create a role with the same name. This overrides the role type, description and rule permissions for the existing role. Default is false.", "length": 255, - "name": "fordisplay", + "name": "forced", "required": false, - "since": "4.4", "type": "boolean" } ], "related": "", "response": [ { - "description": "the domain ID of the HealthCheck policy", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the account of the HealthCheck policy", - "name": "account", + "description": "the ID of the role", + "name": "id", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the state of the role", + "name": "state", + "type": "string" }, { - "description": "the list of healthcheckpolicies", - "name": "healthcheckpolicy", - "response": [ - { - "description": "Time to wait when receiving a response from the health check", - "name": "responsetime", - "type": "int" - }, - { - "description": "Amount of time between health checks", - "name": "healthcheckinterval", - "type": "int" - }, - { - "description": "is policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the pingpath of the healthcheck policy", - "name": "pingpath", - "type": "string" - }, - { - "description": "Number of consecutive health check success before declaring an instance healthy", - "name": "healthcheckthresshold", - "type": "int" - }, - { - "description": "Number of consecutive health check failures before declaring an instance unhealthy.", - "name": "unhealthcheckthresshold", - "type": "int" - }, - { - "description": "the description of the healthcheck policy", - "name": "description", - "type": "string" - }, - { - "description": "the state of the policy", - "name": "state", - "type": "string" - }, - { - "description": "the LB HealthCheck policy ID", - "name": "id", - "type": "string" - } - ], - "type": "list" + "description": "the name of the role", + "name": "name", + "type": "string" }, - {}, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", + "name": "ispublic", + "type": "boolean" + }, + { + "description": "the type of the role", + "name": "type", "type": "string" }, {}, { - "description": "the domain of the HealthCheck policy", - "name": "domain", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the id of the zone the HealthCheck policy belongs to", - "name": "zoneid", - "type": "string" + "description": "true if role is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the description of the role", + "name": "description", "type": "string" } ], - "since": "4.2.0" + "since": "4.15.0" }, { - "description": "Change Service offering of a Shared FileSystem", - "isasync": true, - "name": "changeSharedFileSystemServiceOffering", + "description": "List Swift.", + "isasync": false, + "name": "listSwifts", "params": [ { - "description": "the ID of the shared filesystem", + "description": "the id of the swift", "length": 255, "name": "id", - "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering,changeSharedFileSystemServiceOffering", - "required": true, - "type": "uuid" + "required": false, + "type": "long" }, { - "description": "the offering to use for the shared filesystem instance", + "description": "List by keyword", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" } ], - "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering", + "related": "addImageStoreS3,listImageStores", "response": [ + {}, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", - "type": "long" + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" }, { - "description": "Network name of the shared filesystem", - "name": "networkname", + "description": "the provider name of the image store", + "name": "providername", "type": "string" }, { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", + "description": "the url of the image store", + "name": "url", "type": "string" }, + {}, { - "description": "the project ID of the shared filesystem", - "name": "projectid", - "type": "string" + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" }, { - "description": "name of the shared filesystem", - "name": "name", + "description": "the ID of the image store", + "name": "id", "type": "string" }, { - "description": "ID of the storage fs data volume", - "name": "volumeid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "description of the shared filesystem", - "name": "description", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "service offering ID for the shared filesystem", - "name": "serviceofferingid", + "description": "the Zone name of the image store", + "name": "zonename", "type": "string" }, { - "description": "size of the shared filesystem", - "name": "size", - "type": "long" - }, - { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "name of the storage pool hosting the data volume", - "name": "storage", + "description": "the name of the image store", + "name": "name", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" - }, - { - "description": "the shared filesystem's disk read in KiB", - "name": "diskkbsread", + "description": "the host's currently used disk size", + "name": "disksizeused", "type": "long" }, { - "description": "the state of the shared filesystem", - "name": "state", - "type": "string" - }, - { - "description": "the shared filesystem provider", - "name": "provider", - "type": "string" - }, - { - "description": "ID of the availability zone", + "description": "the Zone ID of the image store", "name": "zoneid", "type": "string" }, { - "description": "ID of the storage fs vm", - "name": "vmstate", - "type": "string" - }, - { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", - "type": "string" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" - }, - { - "description": "disk offering for the shared filesystem", - "name": "diskofferingname", - "type": "string" - }, + } + ], + "since": "3.0.0" + }, + { + "description": "Disables HA for a host", + "isasync": true, + "name": "disableHAForHost", + "params": [ { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", - "type": "string" - }, + "description": "ID of the host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "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": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" + "description": "if host HA is enabled for the host", + "name": "haenable", + "type": "boolean" }, - {}, { - "description": "Network ID of the shared filesystem", - "name": "networkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "ID of the shared filesystem", - "name": "id", - "type": "string" + "description": "operation status", + "name": "status", + "type": "boolean" }, + {}, { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", + "description": "the host HA provider", + "name": "haprovider", "type": "string" }, { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" - }, + "description": "the HA state of the host", + "name": "hastate", + "type": "hastate" + } + ], + "since": "4.11" + }, + { + "description": "Enables out-of-band management for a host", + "isasync": true, + "name": "enableOutOfBandManagementForHost", + "params": [ { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, + "description": "the ID of the host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "related": "disableOutOfBandManagementForCluster", + "response": [ { - "description": "name of the storage fs data volume", - "name": "volumename", - "type": "string" + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" }, + {}, + {}, { - "description": "the account associated with the shared filesystem", - "name": "account", + "description": "the operation result description", + "name": "description", "type": "string" }, { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", - "type": "string" + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" }, { - "description": "path to mount the shared filesystem", - "name": "path", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the filesystem format", - "name": "filesystem", + "description": "the out-of-band management interface password", + "name": "password", "type": "string" }, { - "description": "Name of the availability zone", - "name": "zonename", + "description": "the out-of-band management interface port", + "name": "port", "type": "string" }, { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "the out-of-band management driver for the host", + "name": "driver", "type": "string" }, { - "description": "the domain associated with the shared filesystem", - "name": "domain", - "type": "string" + "description": "the operation result", + "name": "status", + "type": "boolean" }, { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "the project name of the shared filesystem", - "name": "project", + "description": "the out-of-band management interface address", + "name": "address", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the list of nics associated with the shared filesystem", - "name": "nic", - "response": [ - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - } - ], - "type": "list" + "description": "the out-of-band management interface username", + "name": "username", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the out-of-band management action (if issued)", + "name": "action", "type": "string" } ], - "since": "4.20.0" + "since": "4.9.0" }, { - "description": "Locks a user account", + "description": "Deletes a service offering.", "isasync": false, - "name": "lockUser", + "name": "deleteServiceOffering", "params": [ { - "description": "Locks user by user ID.", + "description": "the ID of the service offering", "length": 255, "name": "id", - "related": "disableUser,getUser,listUsers,lockUser", + "related": "updateServiceOffering,listServiceOfferings", "required": true, "type": "uuid" } ], - "related": "disableUser,getUser,listUsers", "response": [ - { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, {}, { - "description": "the domain name of the user", - "name": "domain", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the user lastname", - "name": "lastname", + "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": "the timezone user was created in", - "name": "timezone", - "type": "string" - }, - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {} + ] + }, + { + "description": "Adds a Nicira NVP device", + "isasync": true, + "name": "addNiciraNvpDevice", + "params": [ { - "description": "the user state", - "name": "state", + "description": "Hostname of ip address of the Nicira NVP Controller.", + "length": 255, + "name": "hostname", + "required": true, "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - { - "description": "the domain ID of the user", - "name": "domainid", + "description": "Credentials to access the Nicira Controller API", + "length": 255, + "name": "password", + "required": true, "type": "string" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the name of the role", - "name": "rolename", + "description": "The L3 Gateway Service UUID configured on the Nicira Controller", + "length": 255, + "name": "l3gatewayserviceuuid", + "required": false, "type": "string" }, { - "description": "the account name of the user", - "name": "account", + "description": "The L2 Gateway Service UUID configured on the Nicira Controller", + "length": 255, + "name": "l2gatewayserviceuuid", + "required": false, "type": "string" }, { - "description": "the account ID of the user", - "name": "accountid", + "description": "The Transportzone UUID configured on the Nicira Controller", + "length": 255, + "name": "transportzoneuuid", + "required": true, "type": "string" }, { - "description": "the api key of the user", - "name": "apikey", - "type": "string" + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", + "required": true, + "type": "uuid" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "Credentials to access the Nicira Controller API", + "length": 255, + "name": "username", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ + {}, { - "description": "the ID of the role", - "name": "roleid", + "description": "device name", + "name": "niciradevicename", "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the controller Ip address", + "name": "hostname", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the user ID", - "name": "id", + "description": "this L2 gateway service Uuid", + "name": "l2gatewayserviceuuid", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the physical network to which this Nirica Nvp belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "the user firstname", - "name": "firstname", + "description": "the transport zone Uuid", + "name": "transportzoneuuid", "type": "string" }, { - "description": "the user email address", - "name": "email", + "description": "device id of the Nicire Nvp", + "name": "nvpdeviceid", "type": "string" }, { @@ -125188,406 +118201,381 @@ "type": "string" }, { - "description": "the user name", - "name": "username", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "name of the provider", + "name": "provider", "type": "string" }, + {}, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "this L3 gateway service Uuid", + "name": "l3gatewayserviceuuid", "type": "string" } ] }, { - "description": "Checks if the Cloudian Connector is enabled", - "isasync": false, - "name": "cloudianIsEnabled", - "params": [], - "related": "", + "description": "Restart a Shared FileSystem", + "isasync": true, + "name": "restartSharedFileSystem", + "params": [ + { + "description": "the ID of the shared filesystem", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + }, + { + "description": "is cleanup required", + "length": 255, + "name": "cleanup", + "required": false, + "type": "boolean" + } + ], "response": [ - {}, {}, { - "description": "the Cloudian connector enabled state", - "name": "enabled", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the Cloudian Management Console base URL", - "name": "url", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "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" - } + }, + {} ], - "since": "4.11.0" + "since": "4.20.0" }, { - "description": "Creates a network", + "description": "Lists network serviceproviders for a given physical network.", "isasync": false, - "name": "createNetwork", + "name": "listNetworkServiceProviders", "params": [ { - "description": "Defines whether to allow subdomains to use networks dedicated to their parent domain(s). Should be used with aclType=Domain, defaulted to allow.subdomain.network.access global config if not specified", - "length": 255, - "name": "subdomainaccess", - "required": false, - "type": "boolean" - }, - { - "description": "Ids of the Bgp Peer for the network", + "description": "", "length": 255, - "name": "bgppeerids", - "related": "", + "name": "page", "required": false, - "since": "4.20.0", - "type": "list" + "type": "integer" }, { - "description": "the second IPv6 DNS for the network", + "description": "the Physical Network ID", "length": 255, - "name": "ip6dns2", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": false, - "since": "4.18.0", - "type": "string" + "type": "uuid" }, { - "description": "domain ID of the account owning a network. If the account is not specified, but the acltype is Account or not specified, the network will be automatically assigned to the caller account and domain. To create a network under the domain without linking it to any account, make sure to include acltype=Domain parameter in the api call. If account is not specified, but acltype is Domain, the network will be created for the specified domain.", + "description": "", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the ID or VID of the network", + "description": "list providers by name", "length": 255, - "name": "vlan", + "name": "name", "required": false, "type": "string" }, { - "description": "the ending IPv6 address in the IPv6 network range", + "description": "List by keyword", "length": 255, - "name": "endipv6", + "name": "keyword", "required": false, "type": "string" }, { - "description": "the beginning IP address in the network IP range", + "description": "list providers by state", "length": 255, - "name": "startip", + "name": "state", "required": false, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the AS Number of the network", - "length": 255, - "name": "asnumber", - "required": false, - "since": "4.20.0", - "type": "long" + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" }, { - "description": "the ending IP address in the network IP range. If not specified, will be defaulted to startIP", - "length": 255, - "name": "endip", - "required": false, + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the second IPv4 DNS for the network", - "length": 255, - "name": "dns2", - "required": false, - "since": "4.18.0", - "type": "string" + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" }, { - "description": "the isolated private VLAN type for this network", - "length": 255, - "name": "isolatedpvlantype", - "required": false, + "description": "state of the network provider", + "name": "state", "type": "string" }, { - "description": "the zone ID for the network", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "services for this provider", + "name": "servicelist", + "type": "list" }, { - "description": "MTU to be configured on the network VR's public facing interfaces", - "length": 255, - "name": "publicmtu", - "required": false, - "since": "4.18.0", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the network offering ID", - "length": 255, - "name": "networkofferingid", - "related": "listNetworkOfferings", - "required": true, - "type": "uuid" + "description": "uuid of the network provider", + "name": "id", + "type": "string" }, { - "description": "Network ACL ID associated for the network", - "length": 255, - "name": "aclid", - "related": "createNetworkACLList", - "required": false, - "type": "uuid" + "description": "the provider name", + "name": "name", + "type": "string" }, + {}, + {}, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "length": 255, - "name": "tungstenvirtualrouteruuid", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Lists infrastructure", + "isasync": false, + "name": "listInfrastructure", + "params": [], + "related": "", + "response": [ + { + "description": "Number of management servers", + "name": "managementservers", + "type": "integer" }, { - "description": "network domain", - "length": 255, - "name": "networkdomain", - "required": false, - "type": "string" + "description": "Number of Alerts", + "name": "alerts", + "type": "integer" }, { - "description": "the first IPv4 DNS for the network", - "length": 255, - "name": "dns1", - "required": false, - "since": "4.18.0", - "type": "string" + "description": "Number of cpu sockets", + "name": "cpusockets", + "type": "integer" }, + {}, { - "description": "the VPC network belongs to", - "length": 255, - "name": "vpcid", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" + "description": "Number of internal LBs", + "name": "ilbvms", + "type": "integer" }, + {}, { - "description": "the name of the network", - "length": 255, - "name": "name", - "required": true, - "type": "string" + "description": "Number of zones", + "name": "zones", + "type": "integer" }, { - "description": "the CIDR of IPv6 network, must be at least /64", - "length": 255, - "name": "ip6cidr", - "required": false, + "description": "Number of storage pools", + "name": "storagepools", + "type": "integer" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "The network this network is associated to. only available if create a Shared network", - "length": 255, - "name": "associatednetworkid", - "related": "createNetwork,createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "since": "4.17.0", - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "an optional project for the network", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "Number of pods", + "name": "pods", + "type": "integer" }, { - "description": "the gateway of the IPv6 network. Required for Shared networks", - "length": 255, - "name": "ip6gateway", - "required": false, - "type": "string" + "description": "Number of object stores", + "name": "objectstores", + "type": "integer" }, { - "description": "the physical network ID the network belongs to", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": false, - "type": "uuid" + "description": "Number of clusters", + "name": "clusters", + "type": "integer" }, { - "description": "Account that will own the network. Account should be under the selected domain", - "length": 255, - "name": "account", - "required": false, - "type": "string" + "description": "Number of images stores", + "name": "imagestores", + "type": "integer" }, { - "description": "the display text of the network", - "length": 255, - "name": "displaytext", - "required": false, - "type": "string" + "description": "Number of routers", + "name": "routers", + "type": "integer" }, { - "description": "Access control type; supported values are account and domain. In 3.0 all shared networks should have aclType=Domain, and all isolated networks - Account. Account means that only the account owner can use the network, domain - all accounts in the domain can use the network", - "length": 255, - "name": "acltype", - "required": false, - "type": "string" + "description": "Number of systemvms", + "name": "systemvms", + "type": "integer" }, { - "description": "MTU to be configured on the network VR's private interface(s)", + "description": "Number of hypervisor hosts", + "name": "hosts", + "type": "integer" + } + ], + "since": "4.9.3" + }, + { + "description": "Lists usage records for accounts", + "isasync": false, + "name": "listUsageRecords", + "params": [ + { + "description": "Specify if usage records should be fetched recursively per domain. If an account id is passed, records will be limited to that account.", "length": 255, - "name": "privatemtu", + "name": "isrecursive", "required": false, - "since": "4.18.0", - "type": "integer" + "since": "4.15", + "type": "boolean" }, { - "description": "the beginning IPv6 address in the IPv6 network range", + "description": "Flag to enable display of Tags for a resource", "length": 255, - "name": "startipv6", + "name": "includetags", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the CIDR size of IPv4 network. For regular users, this is required for isolated networks with ROUTED mode.", + "description": "", "length": 255, - "name": "cidrsize", + "name": "page", "required": false, - "since": "4.20.0", "type": "integer" }, { - "description": "IPV4 address to be assigned to the public interface of the network router. This address will be used as source NAT address for the network. \nIf an address is given and it cannot be acquired, an error will be returned and the network won´t be implemented,", + "description": "Flag to enable description rendered in old format which uses internal database IDs instead of UUIDs. False by default.", "length": 255, - "name": "sourcenatipaddress", + "name": "oldformat", "required": false, - "since": "4.19", - "type": "string" + "type": "boolean" }, { - "description": "IPV6 address to be assigned to a router in a shared network", + "description": "End date range for usage record query. The recommended format is \"yyyy-MM-dd'T'HH:mm:ssZ\" (e.g.: \"2023-01-01T12:00:00+0100\"); however, the following formats are also accepted: \"yyyy-MM-dd HH:mm:ss\" (e.g.: \"2023-01-01 12:00:00\") and \"yyyy-MM-dd\" (e.g.: \"2023-01-01\" - if the time is not added, it will be interpreted as \"23:59:59\"). If the recommended format is not used, the date will be considered in the server timezone.", "length": 255, - "name": "routeripv6", - "required": false, - "since": "4.16", - "type": "string" + "name": "enddate", + "required": true, + "type": "date" }, { - "description": "the gateway of the network. Required for shared networks and isolated networks when it belongs to VPC", + "description": "List usage records for the specified user.", "length": 255, - "name": "gateway", + "name": "account", "required": false, "type": "string" }, { - "description": "the netmask of the network. Required for shared networks and isolated networks when it belongs to VPC", + "description": "List by keyword", "length": 255, - "name": "netmask", + "name": "keyword", "required": false, "type": "string" }, { - "description": "when true ip address usage for the network will not be exported by the listUsageRecords API", + "description": "List usage records for specified project", "length": 255, - "name": "hideipaddressusage", + "name": "projectid", + "related": "activateProject,suspendProject", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "the isolated private VLAN for this network", + "description": "List usage records for the specified domain.", "length": 255, - "name": "isolatedpvlan", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the first IPv6 DNS for the network", + "description": "", "length": 255, - "name": "ip6dns1", + "name": "pagesize", "required": false, - "since": "4.18.0", - "type": "string" + "type": "integer" }, { - "description": "ID of the network in an external system.", + "description": "List usage records for the specified usage type", "length": 255, - "name": "externalid", + "name": "type", "required": false, - "type": "string" + "type": "long" }, { - "description": "IPV4 address to be assigned to a router in a shared network", + "description": "Start date range for usage record query. The recommended format is \"yyyy-MM-dd'T'HH:mm:ssZ\" (e.g.: \"2023-01-01T12:00:00+0100\"); however, the following formats are also accepted: \"yyyy-MM-dd HH:mm:ss\" (e.g.: \"2023-01-01 12:00:00\") and \"yyyy-MM-dd\" (e.g.: \"2023-01-01\" - if the time is not added, it will be interpreted as \"00:00:00\"). If the recommended format is not used, the date will be considered in the server timezone.", "length": 255, - "name": "routerip", - "required": false, - "since": "4.16", - "type": "string" + "name": "startdate", + "required": true, + "type": "date" }, { - "description": "when true bypasses VLAN id/range overlap check during network creation for shared and L2 networks", + "description": "List usage records for the specified account", "length": 255, - "name": "bypassvlanoverlapcheck", + "name": "accountid", + "related": "enableAccount,listAccounts,listAccounts", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "an optional field, whether to the display the network to the end user or not.", + "description": "List usage records for the specified usage UUID. Can be used only together with TYPE parameter.", "length": 255, - "name": "displaynetwork", + "name": "usageid", "required": false, - "type": "boolean" + "type": "string" } ], - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", + "related": "", "response": [ { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the domain id of the network owner", - "name": "domainid", + "description": "virtual machine ID", + "name": "virtualmachineid", "type": "string" }, { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", - "type": "boolean" - }, - { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "offering ID", + "name": "offeringid", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "ACL name associated with the VPC network", - "name": "aclname", + "description": "usage in hours", + "name": "usage", "type": "string" }, { @@ -125596,48 +118584,23 @@ "type": "string" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", - "type": "integer" - }, - { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" - }, - { - "description": "the network's gateway", - "name": "gateway", - "type": "string" - }, - { - "description": "The IPv4 routing type of network", - "name": "ip4routing", + "description": "the zone ID", + "name": "zoneid", "type": "string" }, { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", - "type": "string" + "description": "speed of each cpu of resource", + "name": "cpuspeed", + "type": "long" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "the domain the resource is associated with", + "name": "domain", "type": "string" }, { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", + "description": "True if the IPAddress is system IP - allocated during vm deploy or lb rule create", + "name": "issystem", "type": "boolean" }, { @@ -125646,380 +118609,452 @@ "type": "integer" }, { - "description": "the physical network id", - "name": "physicalnetworkid", + "description": "raw usage in hours", + "name": "rawusage", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "resource type", + "name": "type", + "type": "string" }, { - "description": "the network's netmask", - "name": "netmask", - "type": "string" + "description": "virtual size of resource", + "name": "virtualsize", + "type": "long" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the domain ID", + "name": "domainid", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "virtual machine os category name", + "name": "oscategoryname", + "type": "string" }, { - "description": "the date this network was created", - "name": "created", - "type": "date" + "description": "usage type ID", + "name": "usagetype", + "type": "integer" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "the user account Id", + "name": "accountid", "type": "string" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", + "description": "the project name of the resource", + "name": "project", "type": "string" }, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "id of the vpc", + "name": "vpcid", "type": "string" }, { - "description": "true network requires restart", - "name": "restartrequired", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the details of the network", - "name": "details", - "type": "map" - }, - { - "description": "VPC the network belongs to", - "name": "vpcid", - "type": "string" + "description": "memory allocated for the resource", + "name": "memory", + "type": "long" }, + {}, { - "description": "the traffic type of the network", - "name": "traffictype", + "description": "the user account name", + "name": "account", "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", - "type": "boolean" - }, - { - "description": "the list of services", - "name": "service", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the service name", - "name": "name", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - } - ], - "type": "list" + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" }, { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - } - ], - "type": "list" + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "end date of the usage record", + "name": "enddate", + "type": "date" }, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", + "description": "path of the domain to which the usage reocrd belongs", + "name": "domainpath", "type": "string" }, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "id of the resource", + "name": "usageid", "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", - "type": "string" + "description": "start date of the usage record", + "name": "startdate", + "type": "date" }, { - "description": "the type of the network", - "name": "type", + "description": "resource or virtual machine name", + "name": "name", "type": "string" }, { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", - "type": "string" + "description": "number of cpu of resource", + "name": "cpunumber", + "type": "long" }, { - "description": "the first IPv4 DNS for the network", - "name": "dns1", + "description": "virtual machine guest os category ID", + "name": "oscategoryid", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "description of the usage record", + "name": "description", + "type": "string" }, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", + "description": "template ID", + "name": "templateid", "type": "string" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "virtual machine os type ID", + "name": "ostypeid", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "True if the resource is default", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "resource size", + "name": "size", "type": "long" }, { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", + "description": "id of the network", + "name": "networkid", "type": "string" }, + {}, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the project id of the resource", + "name": "projectid", "type": "string" }, { - "description": "related to what other network configuration", - "name": "related", - "type": "string" + "description": "True if the IPAddress is source NAT", + "name": "issourcenat", + "type": "boolean" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "virtual machine os display name", + "name": "osdisplayname", "type": "string" - }, + } + ] + }, + { + "description": "Deletes an Object Storage Pool", + "isasync": false, + "name": "deleteObjectStoragePool", + "params": [ { - "description": "true if network is system, false otherwise", - "name": "issystem", - "type": "boolean" + "description": "The Object Storage ID.", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", + "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": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" + } + ], + "since": "4.19.0" + }, + { + "description": "Delete Netscaler Control Center", + "isasync": false, + "name": "deleteNetscalerControlCenter", + "params": [ + { + "description": "Netscaler Control Center ID", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "string" + } + ], + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, + {}, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "list networks that are persistent", - "name": "ispersistent", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" - }, + } + ] + }, + { + "description": "Deletes a detached disk volume.", + "isasync": false, + "name": "deleteVolume", + "params": [ { - "description": "state of the network", - "name": "state", - "type": "string" - }, + "description": "The ID of the disk volume", + "length": 255, + "name": "id", + "related": "createVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + {}, { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + } + ] + }, + { + "description": "Recovers a Destroy volume.", + "isasync": false, + "name": "recoverVolume", + "params": [ + { + "description": "The ID of the volume", + "length": 255, + "name": "id", + "related": "createVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": true, + "type": "uuid" + } + ], + "related": "createVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "response": [ + { + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "id of the virtual machine", + "name": "virtualmachineid", "type": "string" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", - "type": "boolean" + "description": "the domain associated with the disk volume", + "name": "domain", + "type": "string" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "zone id of the network", - "name": "zoneid", + "description": "pod name of the volume", + "name": "podname", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", - "type": "integer" + "description": "name of the availability zone", + "name": "zonename", + "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" }, { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", + "description": "ID of the availability zone", + "name": "zoneid", "type": "string" }, { - "description": "the name of the network", - "name": "name", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "acl type - access type to the network", - "name": "acltype", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", - "type": "boolean" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the project name of the address", - "name": "project", + "description": "cluster id of the volume", + "name": "clusterid", "type": "string" }, - {}, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", - "type": "string" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "the name of the zone the network belongs to", - "name": "zonename", + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the owner of the network", - "name": "account", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "the list of resource tags associated with network", + "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -126028,33 +119063,33 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag key name", + "name": "key", "type": "string" }, { @@ -126063,526 +119098,585 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "The external id of the network", - "name": "externalid", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "the id of the network", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" + }, + { + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", + "type": "string" + }, + { + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "size of the disk volume", + "name": "size", + "type": "long" + }, + { + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" + }, + { + "description": "pod id of the volume", + "name": "podid", + "type": "string" + }, + { + "description": "name of the primary storage hosting the disk volume", + "name": "storage", + "type": "string" + }, + { + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" + }, + { + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" + }, + { + "description": "the date the disk volume was created", + "name": "created", + "type": "date" + }, + { + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", + "type": "string" + }, + {}, + { + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" + }, + { + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", + "type": "string" + }, + { + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", + "type": "string" + }, + { + "description": "the project id of the vpn", + "name": "projectid", + "type": "string" + }, + { + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" + }, + { + "description": "shared or local storage", + "name": "storagetype", + "type": "string" + }, + { + "description": "ID of the disk volume", "name": "id", "type": "string" }, { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", + "description": "state of the virtual machine", + "name": "vmstate", + "type": "string" + }, + { + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", "type": "boolean" - } - ] - }, - { - "description": "Lists all available network offerings.", - "isasync": false, - "name": "listNetworkOfferings", - "params": [ + }, + {}, { - "description": "true if offering has tags specified", - "length": 255, - "name": "istagged", - "required": false, + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" + }, + { + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", + "type": "string" + }, + { + "description": "the project name of the vpn", + "name": "project", + "type": "string" + }, + { + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" + }, + { + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", "type": "boolean" }, { - "description": "list network offerings by display text", - "length": 255, - "name": "displaytext", - "required": false, + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, { - "description": "list network offerings available for network creation in specific domain", - "length": 255, + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", + "type": "string" + }, + { + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", + "type": "string" + }, + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the ID of the domain associated with the disk volume", "name": "domainid", - "related": "listDomains", - "required": false, - "since": "4.13", - "type": "uuid" + "type": "string" }, { - "description": "list network offerings by state", - "length": 255, - "name": "state", - "required": false, + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "list network offerings by name", - "length": 255, - "name": "name", - "required": false, + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "list network offerings available for network creation in specific zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the status of the volume", + "name": "status", + "type": "string" }, { - "description": "true if need to list only network offerings which support specifying ip ranges", - "length": 255, - "name": "specifyipranges", - "required": false, - "type": "boolean" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, { - "description": "list network offerings by guest type: shared or isolated", - "length": 255, - "name": "guestiptype", - "required": false, + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" }, { - "description": "list network offerings by ID", - "length": 255, - "name": "id", - "related": "listNetworkOfferings", - "required": false, - "type": "uuid" + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "the ID of the network. Pass this in if you want to see the available network offering that a network can be changed to.", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", + "type": "string" }, { - "description": "the routing mode for the network offering. Supported types are: Static or Dynamic.", - "length": 255, - "name": "routingmode", - "required": false, - "since": "4.20.0", + "description": "the state of the disk volume", + "name": "state", "type": "string" }, { - "description": "list network offerings supporting certain services", - "length": 255, - "name": "supportedservices", - "required": false, - "type": "list" + "description": "the path of the volume", + "name": "path", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "name of the service offering for root disk", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the tags for the network offering.", - "length": 255, - "name": "specifyvlan", - "required": false, + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the availability of network offering. Default value is required", - "length": 255, - "name": "availability", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "list network offerings by tags", - "length": 4096, - "name": "tags", - "required": false, + "description": "ID of the disk offering", + "name": "diskofferingid", "type": "string" }, { - "description": "", + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" + } + ], + "since": "4.14.0" + }, + { + "description": "Lists unmanaged volumes on a storage pool", + "isasync": false, + "name": "listVolumesForImport", + "params": [ + { + "description": "the path of the volume on the storage pool", "length": 255, - "name": "pagesize", + "name": "path", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the network offering can be used only for network creation inside the VPC", + "description": "", "length": 255, - "name": "forvpc", + "name": "pagesize", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "true if need to list only netwok offerings where source NAT is supported, false otherwise", + "description": "", "length": 255, - "name": "sourcenatsupported", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "list by traffic type", + "description": "List by keyword", "length": 255, - "name": "traffictype", + "name": "keyword", "required": false, "type": "string" }, { - "description": "true if need to list only default network offerings. Default value is false", + "description": "the ID of the storage pool", "length": 255, - "name": "isdefault", - "required": false, - "type": "boolean" + "name": "storageid", + "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance", + "required": true, + "type": "uuid" } ], "related": "", "response": [ { - "description": "true if network offering supports public access for guest networks", - "name": "supportspublicaccess", - "type": "boolean" - }, - { - "description": "true if network offering can be used by VPC networks only", - "name": "forvpc", - "type": "boolean" + "description": "the path of the volume", + "name": "path", + "type": "string" }, + {}, { - "description": "the id of the network offering", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if network offering supports network that span multiple zones", - "name": "supportsstrechedl2subnet", - "type": "boolean" + "description": "name of the primary storage hosting the volume", + "name": "storage", + "type": "string" }, { - "description": "true if network offering supports public access for guest networks", - "name": "supportsinternallb", - "type": "boolean" + "description": "the format of the volume", + "name": "format", + "type": "string" }, + {}, { - "description": "data transfer rate in megabits per second allowed.", - "name": "networkrate", - "type": "integer" + "description": "the chain info of the volume", + "name": "chaininfo", + "type": "string" }, { - "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 virtual size of the volume", + "name": "virtualsize", + "type": "long" }, { - "description": "the date this network offering was created", - "name": "created", - "type": "date" + "description": "the size of the volume", + "name": "size", + "type": "long" }, { - "description": "true if network offering supports persistent networks, false otherwise", - "name": "ispersistent", - "type": "boolean" + "description": "volume details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "true if network offering supports choosing AS numbers", - "name": "specifyasnumber", - "type": "boolean" + "description": "id of the primary storage hosting the volume", + "name": "storageid", + "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", - "type": "boolean" + "description": "the encrypt format of the volume", + "name": "encryptformat", + "type": "string" }, { - "description": "an alternate display text of the network offering.", - "name": "displaytext", + "description": "type of the primary storage hosting the volume", + "name": "storagetype", "type": "string" }, { - "description": "true if network offering can be used by NSX networks only", - "name": "fornsx", - "type": "boolean" + "description": "the full path of the volume", + "name": "fullpath", + "type": "string" }, { - "description": "maximum number of concurrents connections to be handled by lb", - "name": "maxconnections", - "type": "integer" + "description": "the name of the volume", + "name": "name", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, + } + ], + "since": "4.19.1" + }, + { + "description": "Updates an existing secondary storage selector.", + "isasync": false, + "name": "updateSecondaryStorageSelector", + "params": [ { - "description": "true if network offering supports vlans, false otherwise", - "name": "specifyvlan", - "type": "boolean" + "description": "The unique identifier of the secondary storage selector.", + "length": 255, + "name": "id", + "related": "updateSecondaryStorageSelector", + "required": true, + "type": "uuid" }, { - "description": "the list of supported services", - "name": "service", - "response": [ - { - "description": "the service name", - "name": "name", - "type": "string" - }, - { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "The heuristic rule, in JavaScript language. It is required that it returns the UUID of a secondary storage pool. An example of a rule is `if (snapshot.hypervisorType === 'KVM') { '7832f261-c602-4e8e-8580-2496ffbbc45d'; }` would allocate all snapshots with the KVM hypervisor to the specified secondary storage UUID.", + "length": 65535, + "name": "heuristicrule", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "When the heuristic was removed.", + "name": "removed", + "type": "date" }, - {}, - {}, { - "description": "the ID of the service offering used by virtual router provider", - "name": "serviceofferingid", + "description": "Name of the heuristic.", + "name": "name", "type": "string" }, { - "description": "availability of the network offering", - "name": "availability", - "type": "string" + "description": "When the heuristic was created.", + "name": "created", + "type": "date" }, { - "description": "the internet protocol of the network offering", - "name": "internetprotocol", + "description": "The zone which the heuristic is valid upon.", + "name": "zoneid", "type": "string" }, { - "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", - "name": "networkmode", + "description": "ID of the heuristic.", + "name": "id", "type": "string" }, { - "description": "true if network offering is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "Description of the heuristic.", + "name": "description", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "The heuristic rule, in JavaScript language, used to select a secondary storage to be directed.", + "name": "heuristicrule", "type": "string" }, { - "description": "guest type of the network offering, can be Shared or Isolated", - "name": "guestiptype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "The resource type directed to a specific secondary storage by the selector. Valid options are: ISO, SNAPSHOT, TEMPLATE and VOLUME.", + "name": "type", "type": "string" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, + {} + ], + "since": "4.19.0" + }, + { + "description": "Enables a user account", + "isasync": false, + "name": "enableUser", + "params": [ { - "description": "the tags for the network offering", - "name": "tags", + "description": "Enables user by user ID.", + "length": 255, + "name": "id", + "related": "createUser,enableUser,getUser", + "required": true, + "type": "uuid" + } + ], + "related": "createUser,getUser", + "response": [ + { + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "true if network offering supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage.", - "name": "traffictype", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "true if network offering can be used by Tungsten-Fabric networks only", - "name": "fortungsten", + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", "type": "boolean" }, { - "description": "additional key/value details tied with network offering", - "name": "details", - "type": "map" + "description": "the user lastname", + "name": "lastname", + "type": "string" }, { - "description": "the name of the network offering", - "name": "name", + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "state of the network offering. Can be Disabled/Enabled/Inactive", - "name": "state", + "description": "the user name", + "name": "username", "type": "string" }, + {}, { - "description": "the routing mode for the network offering, supported types are Static or Dynamic.", - "name": "routingmode", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "conservemode", + "description": "true if user is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the type of the role", + "name": "roletype", "type": "string" - } - ] - }, - { - "description": "Lists dedicated pods.", - "isasync": false, - "name": "listDedicatedPods", - "params": [ + }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "list dedicated pods by affinity group", - "length": 255, - "name": "affinitygroupid", - "related": "", - "required": false, - "type": "uuid" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the account type of the user", + "name": "accounttype", "type": "integer" }, { - "description": "the name of the account associated with the pod. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "the ID of the pod", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the domain associated with the pod", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the ID of the Pod", - "name": "podid", + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "the Name of the Pod", - "name": "podname", + "description": "the user ID", + "name": "id", "type": "string" }, { @@ -126590,105 +119684,115 @@ "name": "jobstatus", "type": "integer" }, - {}, { - "description": "the Dedication Affinity Group ID of the pod", - "name": "affinitygroupid", + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, + { + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the ID of the dedicated resource", - "name": "id", + "description": "the account name of the user", + "name": "account", "type": "string" }, { - "description": "the Account Id to which the Pod is dedicated", - "name": "accountid", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the domain ID to which the Pod is dedicated", - "name": "domainid", + "description": "the user state", + "name": "state", + "type": "string" + }, + {}, + { + "description": "the user email address", + "name": "email", "type": "string" } ] }, { - "description": "Lists VPCs", + "description": "Lists zone metrics", "isasync": false, - "name": "listVPCs", + "name": "listZonesMetrics", "params": [ { - "description": "list VPCs by restartRequired option", + "description": "the network type of the zone that the virtual machine belongs to", "length": 255, - "name": "restartrequired", + "name": "networktype", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "list by zone", + "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "available", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "list by cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR", + "description": "the name of the zone", "length": 255, - "name": "cidr", + "name": "name", "required": false, "type": "string" }, { - "description": "list by ID of the VPC offering", + "description": "List by keyword", "length": 255, - "name": "vpcofferingid", - "related": "updateVPCOffering", + "name": "keyword", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "flag to display the resource image for the zones", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "showicon", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "", "length": 255, - "name": "account", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "List by keyword", + "description": "List zones by resource tags (key/value pairs)", "length": 255, - "name": "keyword", + "name": "tags", "required": false, - "type": "string" + "since": "4.3", + "type": "map" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "the ID of the domain associated with the zone", "length": 255, - "name": "listall", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "list VPCs by state", + "description": "the IDs of the zones, mutually exclusive with id", "length": 255, - "name": "state", + "name": "ids", + "related": "createZone,listZones", "required": false, - "type": "string" + "since": "4.19.0", + "type": "list" }, { "description": "", @@ -126698,174 +119802,264 @@ "type": "integer" }, { - "description": "flag to display the resource icon for VPCs", + "description": "flag to display the capacity of the zones", "length": 255, - "name": "showicon", + "name": "showcapacities", "required": false, "type": "boolean" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "the ID of the zone", "length": 255, - "name": "isrecursive", + "name": "id", + "related": "createZone,listZones", "required": false, - "type": "boolean" + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the total cpu allocated in GiB", + "name": "memoryallocated", + "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", + "description": "memory usage disable threshold exceeded", + "name": "memorydisablethreshold", "type": "boolean" }, { - "description": "list VPC supporting certain services", - "length": 255, - "name": "supportedservices", - "required": false, - "type": "list" + "description": "the second DNS for the Zone", + "name": "dns2", + "type": "string" }, { - "description": "list VPC by id", - "length": 255, - "name": "id", - "related": "listVPCs,createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" + "description": "the maximum memory deviation", + "name": "memorymaxdeviation", + "type": "string" }, { - "description": "List by display text of the VPC", - "length": 255, - "name": "displaytext", - "required": false, + "description": "state of the cluster", + "name": "state", "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, + {}, { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "Zone Token", + "name": "zonetoken", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the capacity of the Zone", + "name": "capacity", + "response": [ + { + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Cluster name", + "name": "clustername", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + }, + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the Cluster ID", + "name": "clusterid", + "type": "string" + }, + { + "description": "the Pod name", + "name": "podname", + "type": "string" + }, + { + "description": "the Pod ID", + "name": "podid", + "type": "string" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + }, + { + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + } + ], + "type": "list" }, { - "description": "list by name of the VPC", - "length": 255, - "name": "name", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - } - ], - "related": "createVPC,listVPCs,updateVPC", - "response": [ + }, + {}, { - "description": "the id of the VPC", - "name": "id", + "description": "the total cpu used in Ghz", + "name": "cpuused", "type": "string" }, { - "description": "vpc offering id the VPC is created from", - "name": "vpcofferingid", + "description": "true, if zone is NSX enabled", + "name": "isnsxenabled", + "type": "boolean" + }, + { + "description": "true, if zone contains clusters and hosts from different CPU architectures", + "name": "ismultiarch", + "type": "boolean" + }, + { + "description": "the guest CIDR address for the Zone", + "name": "guestcidraddress", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "AS Number Range", + "name": "asnrange", + "type": "string" }, { - "description": "the date this VPC was created", - "name": "created", - "type": "date" + "description": "memory allocated notification threshold exceeded", + "name": "memoryallocatedthreshold", + "type": "boolean" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if security groups support is enabled, false otherwise", + "name": "securitygroupsenabled", "type": "boolean" }, { - "description": "the second IPv6 DNS for the VPC", - "name": "ip6dns2", + "description": "cpu allocated disable threshold exceeded", + "name": "cpuallocateddisablethreshold", + "type": "boolean" + }, + { + "description": "the allocation state of the cluster", + "name": "allocationstate", "type": "string" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "the network type of the zone; can be Basic or Advanced", + "name": "networktype", + "type": "string" }, { - "description": "the cidr the VPC", - "name": "cidr", + "description": "The maximum value the MTU can have on the VR's public interfaces", + "name": "routerpublicinterfacemaxmtu", + "type": "integer" + }, + { + "description": "the second IPv6 DNS for the Zone", + "name": "ip6dns2", "type": "string" }, { - "description": "the first IPv6 DNS for the VPC", + "description": "the first IPv6 DNS for the Zone", "name": "ip6dns1", "type": "string" }, { - "description": "the owner of the VPC", - "name": "account", + "description": "the UUID of the containing domain, null for public zones", + "name": "domainid", "type": "string" }, { - "description": "The IPv4 routing mode of VPC", - "name": "ip4routing", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the first internal DNS for the Zone", + "name": "internaldns1", "type": "string" }, - {}, { - "description": "the project name of the VPC", - "name": "project", + "description": "The maximum value the MTU can have on the VR's private interfaces", + "name": "routerprivateinterfacemaxmtu", + "type": "integer" + }, + { + "description": "the type of the zone - core or edge", + "name": "type", "type": "string" }, { - "description": "true VPC requires restart", - "name": "restartrequired", - "type": "boolean" + "description": "Zone id", + "name": "id", + "type": "string" }, { - "description": "vpc offering name the VPC is created from", - "name": "vpcofferingname", + "description": "healthy / total clusters in the zone", + "name": "clusters", "type": "string" }, { - "description": "The routes for the VPC to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "memory usage notification threshold exceeded", + "name": "memorythreshold", + "type": "boolean" }, { - "description": "the list of resource tags associated with the project", + "description": "the name of the containing domain, null for public zones", + "name": "domainname", + "type": "string" + }, + { + "description": "the list of resource tags associated with zone.", "name": "tags", "response": [ { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -126879,18 +120073,18 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "tag key name", + "name": "key", "type": "string" }, { @@ -126899,238 +120093,162 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the domain name of the owner", - "name": "domain", - "type": "string" - }, - { - "description": "the list of supported services", - "name": "service", - "response": [ - { - "description": "the service name", - "name": "name", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - } - ], - "type": "list" + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" } ], - "type": "list" - }, - { - "description": "the first IPv4 DNS for the VPC", - "name": "dns1", - "type": "string" - }, - { - "description": "AS NUMBER", - "name": "asnumber", - "type": "long" + "type": "set" }, { - "description": "the list of networks belongign to the VPC", - "name": "network", - "type": "list" + "description": "cpu usage disable threshold exceeded", + "name": "cpudisablethreshold", + "type": "boolean" }, { - "description": "state of the VPC. Can be Inactive/Enabled", - "name": "state", + "description": "the display text of the zone", + "name": "displaytext", "type": "string" }, { - "description": "an alternate display text of the VPC.", - "name": "displaytext", + "description": "the first DNS for the Zone", + "name": "dns1", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total cpu used in GiB", + "name": "memoryused", + "type": "string" }, { - "description": "the name of the VPC", - "name": "name", + "description": "the total cpu allocated in Ghz", + "name": "cpuallocated", "type": "string" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", + "description": "the dhcp Provider for the Zone", + "name": "dhcpprovider", "type": "string" }, { - "description": "the name of the zone the VPC belongs to", - "name": "zonename", + "description": "the total cpu capacity in GiB", + "name": "memorytotal", "type": "string" }, { - "description": "if this VPC has redundant router", - "name": "redundantvpcrouter", + "description": "Allow end users to specify VR MTU", + "name": "allowuserspecifyvrmtu", "type": "boolean" }, { - "description": "zone id of the vpc", - "name": "zoneid", + "description": "the second internal DNS for the Zone", + "name": "internaldns2", "type": "string" }, { - "description": "MTU configured on the public interfaces of the VPC VR", - "name": "publicmtu", - "type": "integer" - }, - { - "description": "the domain id of the VPC owner", - "name": "domainid", + "description": "the maximum cpu deviation", + "name": "cpumaxdeviation", "type": "string" }, { - "description": "The BGP peers for the VPC", - "name": "bgppeers", - "type": "set" + "description": "cpu usage notification threshold exceeded", + "name": "cputhreshold", + "type": "boolean" }, { - "description": "the project id of the VPC", - "name": "projectid", - "type": "string" + "description": "cpu allocated notification threshold exceeded", + "name": "cpuallocatedthreshold", + "type": "boolean" }, { - "description": "the network domain of the VPC", - "name": "networkdomain", + "description": "Zone description", + "name": "description", "type": "string" }, { - "description": "is VPC uses distributed router for one hop forwarding and host based network ACL's", - "name": "distributedvpcrouter", - "type": "boolean" + "description": "Zone name", + "name": "name", + "type": "string" }, { - "description": "the domain path of the owner", - "name": "domainpath", + "description": "Network domain name for the networks in the zone", + "name": "domain", "type": "string" }, { - "description": "is vpc for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total cpu capacity in Ghz", + "name": "cputotal", "type": "string" }, { - "description": "true if VPC is region level", - "name": "regionlevelvpc", + "description": "memory allocated disable threshold exceeded", + "name": "memoryallocateddisablethreshold", "type": "boolean" }, { - "description": "the second IPv4 DNS for the VPC", - "name": "dns2", - "type": "string" - }, - {} - ] + "description": "true if local storage offering enabled, false otherwise", + "name": "localstorageenabled", + "type": "boolean" + } + ], + "since": "4.9.3" }, { - "description": "Adds a network device of one of the following types: ExternalDhcp, ExternalFirewall, ExternalLoadBalancer, PxeServer", - "isasync": false, - "name": "addNetworkDevice", + "description": "Extracts a template", + "isasync": true, + "name": "extractTemplate", "params": [ { - "description": "Network device type, now supports ExternalDhcp, PxeServer, NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer, F5BigIpLoadBalancer, JuniperSRXFirewall, PaloAltoFirewall", + "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD", "length": 255, - "name": "networkdevicetype", - "required": false, + "name": "mode", + "required": true, "type": "string" }, { - "description": "parameters for network device", + "description": "the ID of the template", "length": 255, - "name": "networkdeviceparameterlist", + "name": "id", + "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" + }, + { + "description": "the ID of the zone where the ISO is originally located", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones", "required": false, - "type": "map" + "type": "uuid" + }, + { + "description": "the url to which the ISO would be extracted", + "length": 2048, + "name": "url", + "required": false, + "type": "string" } ], - "related": "", + "related": "extractSnapshot", "response": [ - {}, { - "description": "the ID of the network device", - "name": "id", + "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", + "name": "url", "type": "string" }, { @@ -127143,122 +120261,104 @@ "name": "jobstatus", "type": "integer" }, - {} - ] - }, - { - "description": "Execute network-utility command (ping/arping/tracert) on system VMs remotely", - "isasync": true, - "name": "runDiagnostics", - "params": [ { - "description": "Additional command line options that apply for each command", - "length": 255, - "name": "params", - "required": false, + "description": "the status of the extraction", + "name": "status", "type": "string" }, { - "description": "The IP/Domain address to test connection to", - "length": 255, - "name": "ipaddress", - "required": true, + "description": "the name of the extracted object", + "name": "name", "type": "string" }, { - "description": "The ID of the system VM instance to diagnose", - "length": 255, - "name": "targetid", - "related": "startSystemVm", - "required": true, - "type": "uuid" + "description": "the upload id of extracted object", + "name": "extractId", + "type": "string" }, { - "description": "The system VM diagnostics type valid options are: ping, traceroute, arping", - "length": 255, - "name": "type", - "required": true, + "description": "zone name the object was extracted from", + "name": "zonename", "type": "string" - } - ], - "related": "", - "response": [ - {}, + }, { - "description": "the command execution return code", - "name": "exitcode", + "description": "type of the storage", + "name": "storagetype", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the mode of extraction - upload or download", + "name": "extractMode", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the time and date the object was created", + "name": "created", + "type": "date" + }, + {}, + { + "description": "the percentage of the entity uploaded to the specified location", + "name": "uploadpercentage", "type": "integer" }, { - "description": "the standard error output from the command execution", - "name": "stderr", + "description": "", + "name": "resultstring", "type": "string" }, { - "description": "the standard output from the command execution", - "name": "stdout", + "description": "the id of extracted object", + "name": "id", + "type": "string" + }, + { + "description": "the account id to which the extracted object belongs", + "name": "accountid", + "type": "string" + }, + { + "description": "the state of the extracted object", + "name": "state", + "type": "string" + }, + { + "description": "zone ID the object was extracted from", + "name": "zoneid", "type": "string" } - ], - "since": "4.12.0.0" + ] }, { - "description": "Restarts a VPC", + "description": "Expunge a virtual machine. Once expunged, it cannot be recoverd.", "isasync": true, - "name": "restartVPC", + "name": "expungeVirtualMachine", "params": [ { - "description": "Turn a single VPC into a redundant one.", - "length": 255, - "name": "makeredundant", - "required": false, - "type": "boolean" - }, - { - "description": "Live patches the router software before restarting it. This parameter will only work when 'cleanup' is false.", - "length": 255, - "name": "livepatch", - "required": false, - "since": "4.17.0", - "type": "boolean" - }, - { - "description": "the id of the VPC", + "description": "The ID of the virtual machine", "length": 255, "name": "id", - "related": "createVPC,listVPCs,updateVPC", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": true, "type": "uuid" - }, - { - "description": "If cleanup old network elements", - "length": 255, - "name": "cleanup", - "required": false, - "type": "boolean" } ], "response": [ + { + "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" }, {}, {}, @@ -127266,352 +120366,452 @@ "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": "adds a baremetal dhcp server", + "description": "Suspends a project", "isasync": true, - "name": "addBaremetalDhcp", + "name": "suspendProject", "params": [ { - "description": "the Physical Network ID", + "description": "id of the project to be suspended", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "id", + "related": "activateProject,suspendProject", "required": true, "type": "uuid" - }, + } + ], + "related": "activateProject", + "response": [ { - "description": "Credentials to reach external dhcp device", - "length": 255, - "name": "username", - "required": true, + "description": "the total number of networks the project can own", + "name": "networklimit", "type": "string" }, { - "description": "Type of dhcp device", - "length": 255, - "name": "dhcpservertype", - "required": true, + "description": "the total number of cpu cores the project can own", + "name": "cpulimit", "type": "string" }, { - "description": "Credentials to reach external dhcp device", - "length": 255, - "name": "password", - "required": true, + "description": "the total number of public ip addresses this project can acquire", + "name": "iplimit", "type": "string" }, { - "description": "URL of the external dhcp appliance.", - "length": 255, - "name": "url", - "required": true, + "description": "the total number of cpu cores available to be created for this project", + "name": "cpuavailable", "type": "string" - } - ], - "related": "listBaremetalDhcp", - "response": [ + }, { - "description": "the physical network to which this external dhcp device belongs to", - "name": "physicalnetworkid", + "description": "the total memory (in MB) available to be created for this project", + "name": "memoryavailable", "type": "string" }, - {}, { - "description": "name of the provider", - "name": "dhcpservertype", + "description": "the total number of snapshots which can be stored by this project", + "name": "snapshotlimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the total number of virtual machines running for this project", + "name": "vmrunning", "type": "integer" }, - {}, { - "description": "url", - "name": "url", + "description": "the total volume available for this project", + "name": "volumeavailable", "type": "string" }, { - "description": "name of the provider", - "name": "provider", + "description": "the total secondary storage space (in GiB) the project can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "device id of ", - "name": "id", + "description": "the total number of public ip addresses available for this project to acquire", + "name": "ipavailable", "type": "string" }, + {}, + { + "description": "the total secondary storage space (in GiB) owned by project", + "name": "secondarystoragetotal", + "type": "float" + }, + { + "description": "the total number of snapshots stored by this project", + "name": "snapshottotal", + "type": "long" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ] - }, - { - "description": "delete Tungsten-Fabric application policy set", - "isasync": true, - "name": "deleteTungstenFabricApplicationPolicySet", - "params": [ - { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" }, { - "description": "the uuid of Tungsten-Fabric application policy set", - "length": 255, - "name": "applicationpolicysetuuid", - "required": true, + "description": "the name of the project", + "name": "name", "type": "string" - } - ], - "response": [ - {}, + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the total number of public ip addresses allocated for this project", + "name": "iptotal", + "type": "long" + }, + { + "description": "the total number of templates available to be created by this project", + "name": "templateavailable", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "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 total number of networks owned by project", + "name": "networktotal", + "type": "long" + }, + { + "description": "the total number of virtual machines deployed by this project", + "name": "vmtotal", + "type": "long" + }, + { + "description": "the total number of virtual machines that can be deployed by this project", + "name": "vmlimit", "type": "string" }, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] - }, - { - "description": "Copies a snapshot from one zone to another.", - "isasync": true, - "name": "copySnapshot", - "params": [ + }, { - "description": "The ID of the zone in which the snapshot is currently present. If not specified then the zone of snapshot's volume will be used.", - "length": 255, - "name": "sourcezoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the total number of vpcs owned by project", + "name": "vpctotal", + "type": "long" }, { - "description": "the ID of the snapshot.", - "length": 255, + "description": "the total volume which can be used by this project", + "name": "volumelimit", + "type": "string" + }, + { + "description": "the id of the project", "name": "id", - "related": "copySnapshot,listSnapshots", - "required": true, - "type": "uuid" + "type": "string" }, + {}, { - "description": "A comma-separated list of IDs of the zones that the snapshot needs to be copied to. Specify this list if the snapshot 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": "destzoneids", - "related": "listZones", - "required": false, + "description": "the list of resource tags associated with vm", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], "type": "list" }, { - "description": "The ID of the zone the snapshot is being copied to.", - "length": 255, - "name": "destzoneid", - "related": "listZones", - "required": false, - "type": "uuid" - } - ], - "related": "listSnapshots", - "response": [ - { - "description": "valid types are hourly, daily, weekly, monthy, template, and none.", - "name": "intervaltype", + "description": "the total number of vpcs available to be created for this project", + "name": "vpcavailable", "type": "string" }, { - "description": "the project name of the snapshot", - "name": "project", - "type": "string" + "description": "the total number of templates which have been created by this project", + "name": "templatetotal", + "type": "long" }, { - "description": "indicates whether the underlying storage supports reverting the volume to this snapshot", - "name": "revertable", - "type": "boolean" + "description": "the total number of cpu cores owned by project", + "name": "cputotal", + "type": "long" }, { - "description": "state of the disk volume", - "name": "volumestate", + "description": "the total primary storage space (in GiB) the project can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the total number of virtual machines available for this project to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the domain ID of the snapshot's account", - "name": "domainid", + "description": "the domain name where the project belongs to", + "name": "domain", "type": "string" }, { - "description": " the date the snapshot was created", + "description": "the total memory (in MB) owned by project", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the total volume being used by this project", + "name": "volumetotal", + "type": "long" + }, + { + "description": "the total primary storage space (in GiB) owned by project", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the total memory (in MB) the project can own", + "name": "memorylimit", + "type": "string" + }, + { + "description": "the date this project was created", "name": "created", "type": "date" }, { - "description": "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage", - "name": "state", - "type": "state" + "description": "the project account name of the project", + "name": "projectaccountname", + "type": "string" }, { - "description": "name of the datastore for the snapshot entry", - "name": "datastorename", + "description": "the total number of networks available to be created for this project", + "name": "networkavailable", "type": "string" }, { - "description": "type of the datastore for the snapshot entry", - "name": "datastoretype", + "description": "the total number of virtual machines stopped for this project", + "name": "vmstopped", + "type": "integer" + }, + { + "description": "the total number of snapshots available for this project", + "name": "snapshotavailable", "type": "string" }, { - "description": "id of the os on volume", - "name": "ostypeid", + "description": "the account name of the project's owners", + "name": "owner", + "type": "list" + }, + { + "description": "the total secondary storage space (in GiB) available to be used for this project", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "the domain name of the snapshot's account", - "name": "domain", + "description": "the displaytext of the project", + "name": "displaytext", "type": "string" }, { - "description": "valid location types are primary and secondary.", - "name": "locationtype", + "description": "the total number of templates which can be created by this project", + "name": "templatelimit", "type": "string" }, { - "description": "physical size of backedup snapshot on image store", - "name": "physicalsize", - "type": "long" + "description": "The tagged resource limit and count for the project", + "name": "taggedresources", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the domain id the project belongs to", + "name": "domainid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the project", + "name": "state", "type": "string" }, { - "description": "ID of the datastore for the snapshot entry", - "name": "datastoreid", + "description": "the total primary storage space (in GiB) available to be used for this project", + "name": "primarystorageavailable", "type": "string" }, { - "description": "virtual size of backedup snapshot on image store", - "name": "virtualsize", - "type": "long" + "description": "the total number of vpcs the project can own", + "name": "vpclimit", + "type": "string" + } + ], + "since": "3.0.0" + }, + { + "description": "Updates an IP address", + "isasync": true, + "name": "updateIpAddress", + "params": [ + { + "description": "an optional field, whether to the display the IP to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the type of the snapshot", - "name": "snapshottype", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "ID of the disk volume", - "name": "volumeid", + "description": "the ID of the public IP address to update", + "length": 255, + "name": "id", + "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", + "required": true, + "type": "uuid" + } + ], + "related": "associateIpAddress,listPublicIpAddresses", + "response": [ + { + "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", + "name": "state", "type": "string" }, - {}, { - "description": "the project id of the snapshot", - "name": "projectid", + "description": "the account the public IP address is associated with", + "name": "account", "type": "string" }, { - "description": "download progress of a snapshot", - "name": "downloaddetails", - "type": "map" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "name of the snapshot", - "name": "name", + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "display name of the os on volume", - "name": "osdisplayname", + "description": "the physical network this belongs to", + "name": "physicalnetworkid", "type": "string" }, + {}, { - "description": "state of the snapshot on the datastore", - "name": "datastorestate", + "description": "path of the domain to which the public IP address belongs", + "name": "domainpath", "type": "string" }, - {}, { - "description": "id of the availability zone", - "name": "zoneid", + "description": "virtual machine id the ip address is assigned to", + "name": "virtualmachineid", "type": "string" }, { - "description": "the list of resource tags associated", + "description": "the ID of the Network where ip belongs to", + "name": "networkid", + "type": "string" + }, + { + "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", + "name": "vlanid", + "type": "string" + }, + { + "description": "the list of resource tags associated with ip address", "name": "tags", "response": [ { - "description": "the domain associated with the tag", - "name": "domain", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -127620,101 +120820,286 @@ "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { "description": "the project id the tag belongs to", "name": "projectid", "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the account associated with the snapshot", - "name": "account", + "description": "is public ip for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "date the public IP address was acquired", + "name": "allocated", + "type": "date" + }, + { + "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "public IP address", + "name": "ipaddress", "type": "string" }, { - "description": "ID of the snapshot", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "public IP address id", "name": "id", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "the ID of the Network associated with the IP address", + "name": "associatednetworkid", + "type": "string" + }, + { + "description": "the name of the Network associated with the IP address", + "name": "associatednetworkname", + "type": "string" + }, + { + "description": "true if range is dedicated for System VMs", + "name": "forsystemvms", "type": "boolean" }, + {}, { - "description": "path of the Domain the snapshot's account belongs to", - "name": "domainpath", + "description": "virtual machine type the ip address is assigned to", + "name": "virtualmachinetype", "type": "string" }, { - "description": "name of the disk volume", - "name": "volumename", + "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", + "name": "hasrules", + "type": "boolean" + }, + { + "description": "the name of the zone the public IP address belongs to", + "name": "zonename", "type": "string" }, { - "description": "type of the disk volume", - "name": "volumetype", + "description": "virtual machine name the ip address is assigned to", + "name": "virtualmachinename", + "type": "string" + }, + { + "description": "the domain the public IP address is associated with", + "name": "domain", + "type": "string" + }, + { + "description": "VPC name the ip belongs to", + "name": "vpcname", + "type": "string" + }, + { + "description": "true if the IP address is a source nat address, false otherwise", + "name": "issourcenat", + "type": "boolean" + }, + { + "description": "the virtual network for the IP address", + "name": "forvirtualnetwork", + "type": "boolean" + }, + { + "description": "the name of the Network where ip belongs to", + "name": "networkname", + "type": "string" + }, + { + "description": "the VLAN associated with the IP address", + "name": "vlanname", + "type": "string" + }, + { + "description": "true if this ip is for static nat, false otherwise", + "name": "isstaticnat", + "type": "boolean" + }, + { + "description": "the domain ID the public IP address is associated with", + "name": "domainid", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", + "name": "issystem", + "type": "boolean" + }, + { + "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", + "name": "purpose", + "type": "string" + }, + { + "description": "is public IP portable across the zones", + "name": "isportable", + "type": "boolean" + }, + { + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" + }, + { + "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", + "name": "vmipaddress", + "type": "string" + }, + { + "description": "the ID of the zone the public IP address belongs to", + "name": "zoneid", + "type": "string" + }, + { + "description": "VPC id the ip belongs to", + "name": "vpcid", "type": "string" } - ], - "since": "4.19.0" + ] }, { - "description": "Adds Traffic Monitor Host for Direct Network Usage", + "description": "Get API limit count for the caller", "isasync": false, - "name": "addTrafficMonitor", + "name": "getApiLimit", + "params": [], + "related": "", + "response": [ + { + "description": "the account name of the api remaining count", + "name": "account", + "type": "string" + }, + { + "description": "the account uuid of the api remaining count", + "name": "accountid", + "type": "string" + }, + {}, + { + "description": "number of api already issued", + "name": "apiIssued", + "type": "int" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "currently allowed number of apis", + "name": "apiAllowed", + "type": "int" + }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "seconds left to reset counters", + "name": "expireAfter", + "type": "long" + } + ] + }, + { + "description": "Deletes a storage network IP Range.", + "isasync": true, + "name": "deleteStorageNetworkIpRange", "params": [ { - "description": "Zone in which to add the external firewall appliance.", + "description": "the uuid of the storage network ip range", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "id", + "related": "createStorageNetworkIpRange", "required": true, "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "Traffic going into the listed zones will be metered", - "length": 255, - "name": "includezones", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Traffic going into the listed zones will not be metered", + "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" + } + ], + "since": "3.0.0" + }, + { + "description": "moves a network to another physical network", + "isasync": true, + "name": "migrateNetwork", + "params": [ + { + "description": "true if previous network migration cmd failed", "length": 255, - "name": "excludezones", + "name": "resume", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "URL of the traffic monitor Host", + "description": "network offering ID", "length": 255, - "name": "url", + "name": "networkofferingid", + "related": "", "required": true, - "type": "string" + "type": "uuid" + }, + { + "description": "the ID of the network", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", + "required": true, + "type": "uuid" } ], - "related": "", + "related": "createNetwork,updateNetwork,listNetworks", "response": [ { - "description": "the zone ID of the external firewall", - "name": "zoneid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { @@ -127723,360 +121108,354 @@ "type": "integer" }, { - "description": "the management IP address of the external firewall", - "name": "ipaddress", + "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", + "name": "zonesnetworkspans", + "type": "set" + }, + { + "description": "Tungsten-Fabric virtual router the network belongs to", + "name": "tungstenvirtualrouteruuid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", + "name": "cidr", + "type": "string" + }, + { + "description": "path of the Domain the network belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", + "name": "reservediprange", + "type": "string" + }, + { + "description": "acl type - access type to the network", + "name": "acltype", + "type": "string" + }, + { + "description": "MTU configured on the network VR's private interfaces", + "name": "privatemtu", + "type": "integer" + }, + { + "description": "related to what other network configuration", + "name": "related", "type": "string" }, { - "description": "the number of times to retry requests to the external firewall", - "name": "numretries", + "description": "if network offering supports vm autoscaling feature", + "name": "supportsvmautoscaling", + "type": "boolean" + }, + { + "description": "the details of the network", + "name": "details", + "type": "map" + }, + { + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the list of services", + "name": "service", + "response": [ + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + }, + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "the capability value", + "name": "value", + "type": "string" + }, + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, - {}, - {}, { - "description": "the timeout (in seconds) for requests to the external firewall", - "name": "timeout", + "description": "availability of the network offering the network is created from", + "name": "networkofferingavailability", "type": "string" }, { - "description": "the ID of the external firewall", - "name": "id", - "type": "string" - } - ] - }, - { - "description": "Lists user accounts", - "isasync": false, - "name": "listUsers", - "params": [ - { - "description": "List users by account type. Valid types include admin, domain-admin, read-only-admin, or user.", - "length": 255, - "name": "accounttype", - "required": false, - "type": "integer" + "description": "true if network is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the displaytext of the network", + "name": "displaytext", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", + "name": "broadcasturi", + "type": "string" }, { - "description": "List user by the username", - "length": 255, - "name": "username", - "required": false, + "description": "The vlan of the network. This parameter is visible to ROOT admins only", + "name": "vlan", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip4routes", + "type": "set" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, + "description": "true if guest network default egress policy is allow; false if default egress policy is deny", + "name": "egressdefaultpolicy", "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the id of the network", + "name": "id", + "type": "string" }, { - "description": "List users by state of the user account.", - "length": 255, - "name": "state", - "required": false, + "description": "ACL name associated with the VPC network", + "name": "aclname", "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "The routes for the network to ease adding route in upstream router", + "name": "ip6routes", + "type": "set" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, + "description": "the owner of the network", "name": "account", - "required": false, "type": "string" }, { - "description": "List user by ID.", - "length": 255, - "name": "id", - "related": "disableUser,getUser,listUsers", - "required": false, - "type": "uuid" + "description": "true if network can span multiple zones", + "name": "strechedl2subnet", + "type": "boolean" }, { - "description": "flag to display the resource icon for users", - "length": 255, - "name": "showicon", - "required": false, + "description": "list networks available for vm deployment", + "name": "canusefordeploy", "type": "boolean" - } - ], - "related": "disableUser,getUser", - "response": [ - { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the name of the role", - "name": "rolename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the user ID", - "name": "id", + "description": "Broadcast domain type of the network", + "name": "broadcastdomaintype", "type": "string" }, { - "description": "the user email address", - "name": "email", + "description": "VPC the network belongs to", + "name": "vpcid", "type": "string" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", + "description": "list networks that are persistent", + "name": "ispersistent", "type": "boolean" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the user state", - "name": "state", + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, - {}, { - "description": "the user name", - "name": "username", + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", + "name": "networkcidr", "type": "string" }, { - "description": "the user firstname", - "name": "firstname", + "description": "state of the network", + "name": "state", "type": "string" }, { - "description": "the account name of the user", - "name": "account", + "description": "the name of the network", + "name": "name", "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "the type of the network", + "name": "type", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the domain name of the user", - "name": "domain", + "description": "the physical network id", + "name": "physicalnetworkid", "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", + "description": "UUID of AS NUMBER", + "name": "asnumberid", "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", - "type": "string" + "description": "AS NUMBER", + "name": "asnumber", + "type": "long" }, { - "description": "the domain ID of the user", - "name": "domainid", + "description": "display text of the network offering the network is created from", + "name": "networkofferingdisplaytext", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "The IPv4 routing type of network", + "name": "ip4routing", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the user lastname", - "name": "lastname", - "type": "string" - }, - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" - } - ] - }, - { - "description": "Updates a VLAN IP range.", - "isasync": false, - "name": "updateVlanIpRange", - "params": [ - { - "description": "the beginning IP address in the VLAN IP range", - "length": 255, - "name": "startip", - "required": false, - "type": "string" + "description": "The BGP peers for the network", + "name": "bgppeers", + "type": "set" }, { - "description": "the netmask of the VLAN IP range", - "length": 255, - "name": "netmask", - "required": false, + "description": "the project name of the address", + "name": "project", "type": "string" }, { - "description": "the UUID of the VLAN IP range", - "length": 255, - "name": "id", - "related": "updateVlanIpRange", - "required": true, - "type": "uuid" + "description": "true if users from subdomains can access the domain level network", + "name": "subdomainaccess", + "type": "boolean" }, { - "description": "the gateway of the VLAN IP range", - "length": 255, - "name": "gateway", - "required": false, + "description": "the first IPv6 DNS for the network", + "name": "ip6dns1", "type": "string" }, { - "description": "the ending IP address in the VLAN IP range", - "length": 255, - "name": "endip", - "required": false, + "description": "the traffic type of the network", + "name": "traffictype", "type": "string" }, { - "description": "the ending IPv6 address in the IPv6 network range", - "length": 255, - "name": "endipv6", - "required": false, + "description": "The external id of the network", + "name": "externalid", "type": "string" }, { - "description": "true if IP range is set to system vms, false if not", - "length": 255, - "name": "forsystemvms", - "required": false, - "type": "boolean" - }, - { - "description": "the CIDR of IPv6 network, must be at least /64", - "length": 255, - "name": "ip6cidr", - "required": false, + "description": "Name of the VPC to which this network belongs", + "name": "vpcname", "type": "string" }, { - "description": "the gateway of the IPv6 network", - "length": 255, - "name": "ip6gateway", - "required": false, + "description": "zone id of the network", + "name": "zoneid", "type": "string" }, { - "description": "the beginning IPv6 address in the IPv6 network range", - "length": 255, - "name": "startipv6", - "required": false, + "description": "network offering id the network is created from", + "name": "networkofferingid", "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the virtual network for the VLAN IP range", - "name": "forvirtualnetwork", - "type": "boolean" }, - {}, { - "description": "the ID of the VLAN IP range", - "name": "id", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the end ipv6 of the VLAN IP range", - "name": "endipv6", + "description": "the domain id of the network owner", + "name": "domainid", "type": "string" }, { - "description": "the cidr of the VLAN IP range", - "name": "cidr", + "description": "ACL Id associated with the VPC network", + "name": "aclid", "type": "string" }, { @@ -128085,228 +121464,256 @@ "type": "string" }, { - "description": "the domain name of the VLAN IP range", - "name": "domain", - "type": "string" + "description": "the date this network was created", + "name": "created", + "type": "date" }, { - "description": "the end ip of the VLAN IP range", - "name": "endip", + "description": "name of the network offering the network is created from", + "name": "networkofferingname", "type": "string" }, { - "description": "the Pod ID for the VLAN IP range", - "name": "podid", + "description": "the second IPv4 DNS for the network", + "name": "dns2", "type": "string" }, + {}, { - "description": "the netmask of the VLAN IP range", - "name": "netmask", + "description": "the name of the zone the network belongs to", + "name": "zonename", "type": "string" }, { - "description": "the domain ID of the VLAN IP range", - "name": "domainid", - "type": "string" + "description": "an optional field, whether to the display the network to the end user or not.", + "name": "displaynetwork", + "type": "boolean" }, { - "description": "the Pod name for the VLAN IP range", - "name": "podname", + "description": "the network's gateway", + "name": "gateway", "type": "string" }, { - "description": "path of the domain to which the VLAN IP range belongs", - "name": "domainpath", - "type": "string" + "description": "true if network offering is ip conserve mode enabled", + "name": "networkofferingconservemode", + "type": "boolean" }, { - "description": "the network id of vlan range", - "name": "networkid", + "description": "the ID of the Network associated with this network", + "name": "associatednetworkid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the list of resource tags associated with network", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "list" }, { - "description": "the project name of the vlan range", - "name": "project", + "description": "The Ipv6 routing type of network offering", + "name": "ip6routing", "type": "string" }, { - "description": "indicates whether VLAN IP range is dedicated to system vms or not", - "name": "forsystemvms", - "type": "boolean" - }, - { - "description": "indicates whether IP range is dedicated to NSX resources or not", - "name": "fornsx", + "description": "true network requires restart", + "name": "restartrequired", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the start ip of the VLAN IP range", - "name": "startip", + "description": "the domain name of the network owner", + "name": "domain", "type": "string" }, { - "description": "the project id of the vlan range", - "name": "projectid", + "description": "The internet protocol of network offering", + "name": "internetprotocol", "type": "string" }, { - "description": "the description of the VLAN IP range", - "name": "description", - "type": "string" + "description": "MTU configured on the network VR's public facing interfaces", + "name": "publicmtu", + "type": "integer" }, { - "description": "the gateway of the VLAN IP range", - "name": "gateway", + "description": "the first IPv4 DNS for the network", + "name": "dns1", "type": "string" }, { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the second IPv6 DNS for the network", + "name": "ip6dns2", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the network's netmask", + "name": "netmask", "type": "string" }, { - "description": "the start ipv6 of the VLAN IP range", - "name": "startipv6", - "type": "string" + "description": "true if network is system, false otherwise", + "name": "issystem", + "type": "boolean" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", - "type": "string" + "description": "If the network has redundant routers enabled", + "name": "redundantrouter", + "type": "boolean" }, {}, { - "description": "the account of the VLAN IP range", - "name": "account", + "description": "the name of the Network associated with this network", + "name": "associatednetwork", "type": "string" }, { - "description": "the Zone ID of the VLAN IP range", - "name": "zoneid", - "type": "string" + "description": "true if network supports specifying ip ranges, false otherwise", + "name": "specifyipranges", + "type": "boolean" } ], - "since": "4.16.0" + "since": "4.11.0" }, { - "description": "Lists resource limits.", - "isasync": false, - "name": "listResourceLimits", + "description": "Updates Ipv6 firewall rule with specified ID", + "isasync": true, + "name": "updateIpv6FirewallRule", "params": [ { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "Lists resource limits by ID.", + "description": "the ID of the ipv6 firewall rule", "length": 255, "name": "id", - "required": false, - "type": "long" + "related": "updateIpv6FirewallRule", + "required": true, + "type": "uuid" }, { - "description": "Type of resource. Values are 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 and 11. 0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses an account can own. 2 - Volume. Number of disk volumes an account can own. 3 - Snapshot. Number of snapshots an account can own. 4 - Template. Number of templates an account can register/create. 5 - Project. Number of projects an account can own. 6 - Network. Number of networks an account can own. 7 - VPC. Number of VPC an account can own. 8 - CPU. Number of CPU an account can allocate for their resources. 9 - Memory. Amount of RAM an account can allocate for their resources. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", + "description": "error code for this ICMP message", "length": 255, - "name": "resourcetype", + "name": "icmpcode", "required": false, "type": "integer" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", + "description": "type of the ICMP message being sent", "length": 255, - "name": "keyword", + "name": "icmptype", "required": false, - "type": "string" + "type": "integer" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "an optional field, whether to the display the Ipv6 firewall rule to the end user or not", "length": 255, - "name": "account", + "name": "fordisplay", "required": false, - "type": "string" + "since": "4.4", + "type": "boolean" }, { - "description": "Type of resource (wins over resourceType if both are provided). Values are: user_vm - Instance. Number of instances a user can create. public_ip - IP. Number of public IP addresses an account can own. volume - Volume. Number of disk volumes an account can own. snapshot - Snapshot. Number of snapshots an account can own. template - Template. Number of templates an account can register/create. project - Project. Number of projects an account can own. network - Network. Number of networks an account can own. vpc - VPC. Number of VPC an account can own. cpu - CPU. Number of CPU an account can allocate for their resources. memory - Memory. Amount of RAM an account can allocate for their resources. primary_storage - PrimaryStorage. Total primary storage space (in GiB) a user can use. secondary_storage - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", + "description": "the traffic type for the Ipv6 firewall rule, can be Ingress or Egress, defaulted to Ingress if not specified", "length": 255, - "name": "resourcetypename", + "name": "traffictype", "required": false, "type": "string" }, { - "description": "", + "description": "the starting port of Ipv6 firewall rule", "length": 255, - "name": "page", + "name": "startport", "required": false, "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "the ending port of Ipv6 firewall rule", "length": 255, - "name": "listall", + "name": "endport", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "Tag for the resource type", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "tag", + "name": "customid", "required": false, - "since": "4.20.0", + "since": "4.4", "type": "string" }, { - "description": "", + "description": "the protocol for the Ipv6 firewall rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", "length": 255, - "name": "pagesize", + "name": "protocol", "required": false, - "type": "integer" + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "the cidr list to allow traffic from/to. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "isrecursive", + "name": "cidrlist", "required": false, - "type": "boolean" + "type": "list" } ], "related": "", "response": [ - {}, - { - "description": "the account of the resource limit", - "name": "account", - "type": "string" - }, { - "description": "resource type. Values include 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.", - "name": "resourcetype", + "description": "the starting port of port forwarding rule's public port range", + "name": "publicport", "type": "string" }, { @@ -128314,113 +121721,475 @@ "name": "jobstatus", "type": "integer" }, + { + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "The tag for the resource limit", - "name": "tag", + "description": "the starting port of port forwarding rule's private port range", + "name": "privateport", "type": "string" }, { - "description": "path of the domain to which the resource limit belongs", - "name": "domainpath", + "description": "the protocol of the port forwarding rule", + "name": "protocol", "type": "string" }, { - "description": "the maximum number of the resource. A -1 means the resource currently has no limit.", - "name": "max", - "type": "long" + "description": "the state of the rule", + "name": "state", + "type": "string" + }, + { + "description": "the vm ip address for the port forwarding rule", + "name": "vmguestip", + "type": "string" + }, + { + "description": "is firewall for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the ID of the port forwarding rule", + "name": "id", + "type": "string" + }, + { + "description": "the public ip address for the port forwarding rule", + "name": "ipaddress", + "type": "string" }, {}, { - "description": "the project name of the resource limit", - "name": "project", + "description": "the public ip address id for the port forwarding rule", + "name": "ipaddressid", "type": "string" }, { - "description": "the project id of the resource limit", - "name": "projectid", + "description": "the VM display name for the port forwarding rule", + "name": "virtualmachinedisplayname", "type": "string" }, { - "description": "the domain name of the resource limit", - "name": "domain", + "description": "the VM name for the port forwarding rule", + "name": "virtualmachinename", "type": "string" }, { - "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.", - "name": "resourcetypename", + "description": "the id of the guest network the port forwarding rule belongs to", + "name": "networkid", "type": "string" }, + {}, { - "description": "the domain ID of the resource limit", - "name": "domainid", + "description": "the ending port of port forwarding rule's private port range", + "name": "privateendport", + "type": "string" + }, + { + "description": "the ending port of port forwarding rule's private port range", + "name": "publicendport", + "type": "string" + }, + { + "description": "the VM ID for the port forwarding rule", + "name": "virtualmachineid", "type": "string" } ] }, { - "description": "Disables a user account", - "isasync": true, - "name": "disableUser", + "description": "Lists unmanaged virtual machines for a given cluster.", + "isasync": false, + "name": "listUnmanagedInstances", "params": [ { - "description": "Disables user by user ID.", + "description": "the cluster ID", "length": 255, - "name": "id", - "related": "disableUser,getUser", + "name": "clusterid", + "related": "addCluster", "required": true, "type": "uuid" + }, + { + "description": "the hypervisor name of the instance", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" } ], - "related": "getUser", + "related": "", "response": [ { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the power state of the virtual machine", + "name": "powerstate", + "type": "string" }, { - "description": "the type of the role", - "name": "roletype", + "description": "the CPU cores per socket for the virtual machine. VMware specific", + "name": "cpucorepersocket", + "type": "integer" + }, + { + "description": "the ID of the cluster to which virtual machine belongs", + "name": "clusterid", "type": "string" }, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the CPU speed of the virtual machine", + "name": "cpuspeed", + "type": "integer" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" + "description": "the name of the host to which virtual machine belongs", + "name": "hostname", + "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "the list of nics associated with the virtual machine", + "name": "nic", + "response": [ + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the name of the cluster to which virtual machine belongs", + "name": "clustername", "type": "string" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "the memory of the virtual machine in MB", + "name": "memory", + "type": "integer" + }, + { + "description": "the list of disks associated with the virtual machine", + "name": "disk", + "response": [ + { + "description": "the capacity of the disk in bytes", + "name": "capacity", + "type": "long" + }, + { + "description": "the position of the disk", + "name": "position", + "type": "integer" + }, + { + "description": "the ID of the disk", + "name": "id", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "controller", + "type": "string" + }, + { + "description": "the controller unit of the disk", + "name": "controllerunit", + "type": "integer" + }, + { + "description": "the controller of the disk", + "name": "datastorehost", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "datastoretype", + "type": "string" + }, + { + "description": "the file path of the disk image", + "name": "imagepath", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "datastorepath", + "type": "string" + }, + { + "description": "the label of the disk", + "name": "label", + "type": "string" + }, + { + "description": "the controller of the disk", + "name": "datastorename", + "type": "string" + } + ], + "type": "set" + }, + {}, + { + "description": "the CPU cores of the virtual machine", + "name": "cpunumber", + "type": "integer" + }, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the name of the role", - "name": "rolename", + "description": "the operating system ID of the virtual machine", + "name": "osid", "type": "string" }, { @@ -128429,133 +122198,144 @@ "type": "integer" }, { - "description": "the api key of the user", - "name": "apikey", + "description": "the ID of the host to which virtual machine belongs", + "name": "hostid", "type": "string" }, { - "description": "the domain ID of the user", - "name": "domainid", + "description": "the operating system of the virtual machine", + "name": "osdisplayname", "type": "string" - }, - {}, + } + ], + "since": "4.14.0" + }, + { + "description": "Updates ISO permissions", + "isasync": false, + "name": "updateIsoPermissions", + "params": [ { - "description": "the user lastname", - "name": "lastname", - "type": "string" + "description": "a comma delimited list of accounts within caller's domain. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "accounts", + "required": false, + "type": "list" }, { - "description": "the secret key of the user", - "name": "secretkey", + "description": "permission operator (add, remove, reset)", + "length": 255, + "name": "op", + "required": false, "type": "string" }, { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" + "description": "true if the template/iso is extractable, false other wise. Can be set only by root admin", + "length": 255, + "name": "isextractable", + "required": false, + "type": "boolean" }, { - "description": "the user firstname", - "name": "firstname", - "type": "string" + "description": "the template ID", + "length": 255, + "name": "id", + "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "the domain name of the user", - "name": "domain", - "type": "string" + "description": "true for featured template/iso, false otherwise", + "length": 255, + "name": "isfeatured", + "required": false, + "type": "boolean" }, { - "description": "the user email address", - "name": "email", - "type": "string" + "description": "a comma delimited list of projects. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "projectids", + "related": "activateProject", + "required": false, + "type": "list" }, + { + "description": "true for public template/iso, false for private templates/isos", + "length": 255, + "name": "ispublic", + "required": false, + "type": "boolean" + } + ], + "response": [ { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the user name", - "name": "username", - "type": "string" - }, - { - "description": "the account type of the user", - "name": "accounttype", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - {}, - { - "description": "the user ID", - "name": "id", - "type": "string" - }, - { - "description": "the account name of the user", - "name": "account", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, - { - "description": "the user state", - "name": "state", - "type": "string" - } + {}, + {} ] }, { - "description": "Lists all available ISO files.", + "description": "Registers an existing template into the CloudStack cloud.", "isasync": false, - "name": "listIsos", + "name": "registerTemplate", "params": [ { - "description": "list all ISOs by name", + "description": "true if this template requires HVM", "length": 255, - "name": "name", + "name": "requireshvm", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "If set to true, list only unique isos across zones", + "description": "Register template for the project", "length": 255, - "name": "showunique", + "name": "projectid", + "related": "activateProject", "required": false, - "since": "4.13.2", - "type": "boolean" + "type": "uuid" }, { - "description": "List by keyword", + "description": "true if the template supports the sshkey upload feature; default is false", "length": 255, - "name": "keyword", + "name": "sshkeyenabled", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "list only resources belonging to the domain specified", + "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "templatetype", "required": false, - "type": "uuid" + "since": "4.19.0", + "type": "string" }, { - "description": "true if the ISO is publicly available to all users, false otherwise.", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" + "description": "the URL of where the template is hosted. Possible URL include http:// and https://", + "length": 2048, + "name": "url", + "required": true, + "type": "string" }, { - "description": "the CPU arch of the ISO. Valid options are: x86_64, aarch64", + "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", "length": 255, "name": "arch", "required": false, @@ -128563,208 +122343,185 @@ "type": "string" }, { - "description": "true if the ISO is bootable, false otherwise", + "description": "the name of the template", "length": 255, - "name": "bootable", - "required": false, - "type": "boolean" + "name": "name", + "required": true, + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the ID of the OS Type that best represents the OS of this template. Not applicable with VMware, as we honour what is defined in the template", "length": 255, - "name": "projectid", + "name": "ostypeid", "related": "", "required": false, "type": "uuid" }, { - "description": "ID of the image or image cache store", + "description": "32 or 64 bits support. 64 by default", "length": 255, - "name": "imagestoreid", - "related": "listSwifts", + "name": "bits", "required": false, - "since": "4.19", - "type": "uuid" + "type": "integer" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "the format for the template. Possible values include QCOW2, RAW, VHD and OVA.", "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "name": "format", + "required": true, + "type": "string" }, { - "description": "ID of the storage pool", + "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", + "name": "details", "required": false, - "since": "4.19", - "type": "uuid" + "type": "map" }, { - "description": "true if this ISO is ready to be deployed", + "description": "true if this template is a featured template, false otherwise", "length": 255, - "name": "isready", + "name": "isfeatured", "required": false, "type": "boolean" }, { - "description": "", + "description": "the checksum value of this template. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", "length": 255, - "name": "pagesize", + "name": "checksum", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the hypervisor for which to restrict the search", + "description": "The display text of the template, defaults to 'name'.", + "length": 4096, + "name": "displaytext", + "required": false, + "type": "string" + }, + { + "description": "the target hypervisor for the template", "length": 255, "name": "hypervisor", - "required": false, + "required": true, "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "account", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "show removed ISOs as well", + "description": "true if the template supports the password reset feature; default is false", "length": 255, - "name": "showremoved", + "name": "passwordenabled", "required": false, "type": "boolean" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "true if the template is available to all accounts; default is true", "length": 255, - "name": "isrecursive", + "name": "ispublic", "required": false, "type": "boolean" }, { - "description": "list ISO by ID", + "description": "A list of zone ids where the template will be hosted. Use this parameter if the template needs to be registered to multiple zones in one go. Use zoneid if the template needs to be registered to only one zone.Passing only -1 to this will cause the template to be registered as a cross zone template and will be copied to all zones. ", "length": 255, - "name": "id", - "related": "listIsos,registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "zoneids", + "related": "createZone,listZones", "required": false, - "type": "uuid" + "type": "list" }, { - "description": "possible values are \"featured\", \"self\", \"selfexecutable\",\"sharedexecutable\",\"executable\", and \"community\". * featured : templates that have been marked as featured and public. * self : templates that have been registered or created by the calling user. * selfexecutable : same as self, but only returns templates that can be used to deploy a new VM. * sharedexecutable : templates ready to be deployed that have been granted to the calling user by another user. * executable : templates that are owned by the calling user, or public templates, that can be used to deploy a VM. * community : templates that have been marked as public but not featured. * all : all templates (only usable by admins).", + "description": "(VMware only) true if VM deployments should preserve all the configurations defined for this template", "length": 255, - "name": "isofilter", + "name": "deployasis", "required": false, - "type": "string" + "since": "4.15.1", + "type": "boolean" }, { - "description": "", + "description": "the tag for this template.", "length": 255, - "name": "page", + "name": "templatetag", "required": false, - "type": "integer" + "type": "string" }, { - "description": "flag to display the resource image for the isos", + "description": "true if the template or its derivatives are extractable; default is false", "length": 255, - "name": "showicon", + "name": "isextractable", "required": false, "type": "boolean" }, { - "description": "List resources by tags (key/value pairs)", + "description": "true if the template type is routing i.e., if template is used to deploy router", "length": 255, - "name": "tags", + "name": "isrouting", "required": false, - "type": "map" + "type": "boolean" }, { - "description": "the ID of the zone", + "description": "the ID of the zone the template is to be hosted on", "length": 255, "name": "zoneid", - "related": "listZones", + "related": "createZone,listZones", "required": false, "type": "uuid" - } - ], - "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "response": [ - { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", - "type": "string" - }, - { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "length": 255, + "name": "isdynamicallyscalable", + "required": false, + "type": "boolean" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "an optional accountName. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "description": "true if template should bypass Secondary Storage and be downloaded to Primary Storage on deployment", + "length": 255, "name": "directdownload", + "required": false, "type": "boolean" - }, - { - "description": "the URL which the template/iso is registered from", - "name": "url", - "type": "string" - }, - { - "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", - "type": "string" - }, - { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" - }, - { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", - "type": "string" - }, + } + ], + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "response": [ { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" }, { - "description": "the account name to which the template belongs", - "name": "account", - "type": "string" + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" }, { - "description": "the name of the zone for this template", - "name": "zonename", - "type": "string" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the name of the domain to which the template belongs", - "name": "domain", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, + {}, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" }, { "description": "checksum of the template", @@ -128772,34 +122529,28 @@ "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, - {}, - { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", "type": "boolean" }, { - "description": "CPU Arch of the template", - "name": "arch", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the ID of the secondary storage host for the template", + "name": "hostid", + "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { @@ -128808,134 +122559,134 @@ "type": "string" }, { - "description": "the template ID", - "name": "id", + "description": "the account name to which the template belongs", + "name": "account", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", + "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the date this template was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the template display text", + "name": "displaytext", "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "CPU Arch of the template", + "name": "arch", + "type": "string" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", "type": "boolean" }, - {}, { - "description": "the template name", - "name": "name", + "description": "the name of the zone for this template", + "name": "zonename", "type": "string" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the project name of the template", - "name": "project", + "description": "the ID of the zone for this template", + "name": "zoneid", "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "the template display text", - "name": "displaytext", + "description": "the type of the template", + "name": "templatetype", "type": "string" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", - "type": "boolean" + "description": "the name of userdata linked to this template", + "name": "userdataname", + "type": "string" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "the template ID", + "name": "id", "type": "string" }, + {}, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" + "description": "the name of the domain to which the template belongs", + "name": "domain", + "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the project name of the template", + "name": "project", "type": "string" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", "type": "boolean" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", - "type": "string" - }, - { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", "type": "boolean" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", - "type": "string" + "description": "the size of the template", + "name": "size", + "type": "long" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { @@ -128943,8 +122694,13 @@ "name": "tags", "response": [ { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -128953,18 +122709,18 @@ "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -128973,18 +122729,13 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -128993,22 +122744,47 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" } ], "type": "set" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the status of the template", + "name": "status", + "type": "string" + }, + { + "description": "the project id of the template", + "name": "projectid", + "type": "string" + }, + { + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" + }, + { + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" + }, + { + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", + "type": "string" + }, + { + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { "description": "the ID of the OS type for this template.", @@ -129016,542 +122792,606 @@ "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, + { + "description": "the processor bit size", + "name": "bits", + "type": "int" + }, { "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": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" + }, + { + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "the id of userdata linked to this template", + "name": "userdataid", + "type": "string" + }, + { + "description": "the date this template was created", + "name": "created", + "type": "date" } ] }, { - "description": "Lists autoscale policies.", - "isasync": false, - "name": "listAutoScalePolicies", + "description": "Deletes VPC offering", + "isasync": true, + "name": "deleteVPCOffering", "params": [ { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the ID of the VPC offering", "length": 255, - "name": "projectid", - "related": "", - "required": false, + "name": "id", + "related": "updateVPCOffering", + "required": true, "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "the name of the autoscale policy", - "length": 255, - "name": "name", - "required": false, - "since": "4.18.0", + "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": "List by keyword", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "List VNF appliance owned by the account.", + "isasync": false, + "name": "listVnfAppliances", + "params": [ + { + "description": "the IDs of the virtual machines, mutually exclusive with id", "length": 255, - "name": "keyword", + "name": "ids", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "type": "string" + "since": "4.4", + "type": "list" }, { - "description": "the ID of the condition of the policy", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "conditionid", - "related": "", + "name": "domainid", + "related": "listDomainChildren,listDomains", "required": false, "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.", "length": 255, - "name": "listall", + "name": "state", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "List by keyword", "length": 255, - "name": "account", + "name": "keyword", "required": false, "type": "string" }, { - "description": "", + "description": "list vms by template", "length": 255, - "name": "page", + "name": "templateid", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", + "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": "action", + "name": "name", "required": false, "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "list by network id", "length": 255, - "name": "isrecursive", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks", "required": false, + "type": "uuid" + }, + { + "description": "list by the High Availability offering; true if filtering VMs with HA enabled; false for VMs with HA disabled", + "length": 255, + "name": "haenable", + "required": false, + "since": "4.15", "type": "boolean" }, { - "description": "the ID of the autoscale policy", + "description": "the ID of AutoScaling VM Group", "length": 255, - "name": "id", - "related": "listAutoScalePolicies", + "name": "autoscalevmgroupid", + "related": "listAutoScaleVmGroups", "required": false, + "since": "4.18.0", "type": "uuid" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "list only resources belonging to the domain specified", + "description": "the user ID that created the VM and is under the account that owns the VM", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "userid", + "related": "createUser,getUser", "required": false, "type": "uuid" }, { - "description": "the ID of the autoscale vm group", + "description": "list by network type; true if need to list vms using Virtual Network, false otherwise", "length": 255, - "name": "vmgroupid", - "related": "", + "name": "forvirtualnetwork", "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the duration for which the conditions have to be true before action is taken", - "name": "duration", - "type": "integer" - }, - { - "description": "path of the domain to which the autoscale policy belongs", - "name": "domainpath", - "type": "string" + "type": "boolean" }, { - "description": "the cool down period for which the policy should not be evaluated after the action has been taken", - "name": "quiettime", - "type": "integer" + "description": "list by the backup offering", + "length": 255, + "name": "backupofferingid", + "required": false, + "since": "4.17", + "type": "uuid" }, { - "description": "the list of IDs of the conditions that are being evaluated on every interval", - "name": "conditions", + "description": "comma separated list of vm details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, backoff, iso, volume, min, affgrp]. When no parameters are passed, all the details are returned if list.vm.default.details.stats is true (default), otherwise when list.vm.default.details.stats is false the API response will exclude the stats details.", + "length": 255, + "name": "details", + "required": false, "type": "list" }, - {}, - { - "description": "the project name of the autoscale policy", - "name": "project", - "type": "string" - }, - { - "description": "the domain ID of the autoscale policy", - "name": "domainid", - "type": "string" - }, - { - "description": "the autoscale policy ID", - "name": "id", - "type": "string" - }, { - "description": "the project id autoscale policy", - "name": "projectid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "flag to display the resource icon for VMs", + "length": 255, + "name": "showicon", + "required": false, + "since": "4.16.0.0", + "type": "boolean" }, { - "description": "the account owning the autoscale policy", - "name": "account", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "displayvm", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the domain name of the autoscale policy", - "name": "domain", - "type": "string" + "description": "flag to list vms created from VNF templates (as known as VNF appliances) or not; true if need to list VNF appliances, false otherwise.", + "length": 255, + "name": "isvnf", + "required": false, + "since": "4.19.0", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Whether to return the VMs' user data or not. By default, user data will not be returned.", + "length": 255, + "name": "userdata", + "required": false, + "since": "4.18.0.0", + "type": "boolean" }, - {}, { - "description": "name of the autoscale policy", - "name": "name", + "description": "list vms by ssh keypair name", + "length": 255, + "name": "keypair", + "required": false, "type": "string" }, { - "description": "the action to be executed if all the conditions evaluate to true for the specified duration.", - "name": "action", - "type": "string" - } - ] - }, - { - "description": "Dedicates an existing IPv4 subnet for a zone to an account or a domain.", - "isasync": true, - "name": "dedicateIpv4SubnetForZone", - "params": [ - { - "description": "domain ID of the account owning the IPv4 subnet", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "projectid", + "related": "activateProject", "required": false, "type": "uuid" }, { - "description": "project who will own the IPv4 subnet", + "description": "list vms by affinity group", "length": 255, - "name": "projectid", + "name": "affinitygroupid", "related": "", "required": false, "type": "uuid" }, { - "description": "Id of the guest network IPv4 subnet", + "description": "Accumulates the VM metrics data instead of returning only the most recent data collected. The default behavior is set by the global configuration vm.stats.increment.metrics.", "length": 255, - "name": "id", - "related": "dedicateIpv4SubnetForZone", - "required": true, - "type": "uuid" + "name": "accumulate", + "required": false, + "since": "4.17.0", + "type": "boolean" }, { - "description": "account who will own the IPv4 subnet", + "description": "the target hypervisor for the template", "length": 255, - "name": "account", + "name": "hypervisor", "required": false, "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the domain name of the IPv4 subnet", - "name": "domain", - "type": "string" - }, - { - "description": "date when this IPv4 subnet was created.", - "name": "created", - "type": "date" }, { - "description": "id of zone to which the IPv4 subnet belongs to.", - "name": "zoneid", - "type": "string" + "description": "makes the API's response contains only the resource count", + "length": 255, + "name": "retrieveonlyresourcecount", + "required": false, + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the group ID", + "length": 255, + "name": "groupid", + "related": "createInstanceGroup", + "required": false, + "type": "uuid" }, { - "description": "id of the guest IPv4 subnet", - "name": "id", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, - {}, { - "description": "the project id of the IPv4 subnet", - "name": "projectid", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list by the service offering", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": false, + "since": "4.4", + "type": "uuid" }, { - "description": "the project name of the IPv4 subnet", - "name": "project", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "guest IPv4 subnet", - "name": "subnet", - "type": "string" + "description": "the security group ID", + "length": 255, + "name": "securitygroupid", + "related": "", + "required": false, + "since": "4.15", + "type": "uuid" }, { - "description": "the domain ID of the IPv4 subnet", - "name": "domainid", - "type": "string" + "description": "list vms by iso", + "length": 255, + "name": "isoid", + "required": false, + "type": "uuid" }, { - "description": "name of zone to which the IPv4 subnet belongs to.", - "name": "zonename", - "type": "string" + "description": "the availability zone ID", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones", + "required": false, + "type": "uuid" }, { - "description": "the account of the IPv4 subnet", + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, "name": "account", + "required": false, "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "List Shared FileSystems", - "isasync": false, - "name": "listSharedFileSystems", - "params": [ + }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "isrecursive", + "name": "tags", "required": false, - "type": "boolean" + "type": "map" }, { - "description": "", + "description": "the ID of the virtual machine", "length": 255, - "name": "page", + "name": "id", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", "required": false, - "type": "integer" + "type": "uuid" }, { - "description": "the name of the shared filesystem", + "description": "list vms by vpc", "length": 255, - "name": "name", + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC", "required": false, + "type": "uuid" + } + ], + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importUnmanagedInstance,importVm", + "response": [ + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "the account associated with the virtual machine", "name": "account", - "required": false, "type": "string" }, { - "description": "the ID of the shared filesystem", - "length": 255, - "name": "id", - "related": "listSharedFileSystems,changeSharedFileSystemDiskOffering", - "required": false, - "type": "uuid" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" + }, + { + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "the pool type of the virtual machine", + "name": "pooltype", + "type": "string" }, { - "description": "the disk offering of the shared filesystem", - "length": 255, - "name": "diskofferingid", - "related": "", - "required": false, - "type": "uuid" + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" }, { - "description": "the ID of the network", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", + "type": "string" }, { - "description": "the service offering of the shared filesystem", - "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", - "required": false, - "type": "uuid" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "makes the API's response contains only the resource count", - "length": 255, - "name": "retrieveonlyresourcecount", - "required": false, + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "the ID of the availability zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" - } - ], - "related": "changeSharedFileSystemDiskOffering", - "response": [ + }, + {}, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the group ID of the virtual machine", + "name": "groupid", + "type": "string" }, { - "description": "Network ID of the shared filesystem", - "name": "networkid", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the domain associated with the tag", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the domain name of the affinity group", "name": "domain", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" } ], "type": "set" }, { - "description": "size of the shared filesystem", - "name": "size", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "description of the shared filesystem", - "name": "description", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, - {}, { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the list of nics associated with the shared filesystem", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" + }, + { + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" + }, + { + "description": "the list of nics associated with vm", "name": "nic", "response": [ { @@ -129560,19 +123400,19 @@ "type": "list" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" }, { "description": "the IPv6 address of network", @@ -129580,89 +123420,89 @@ "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" }, { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the type of the nic", - "name": "type", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" }, { - "description": "the ID of the nic", - "name": "id", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" }, { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { "description": "the cidr of IPv6 network", @@ -129670,604 +123510,817 @@ "type": "string" }, { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the type of the nic", + "name": "type", "type": "string" }, { "description": "MTU configured on the NIC", "name": "mtu", "type": "integer" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the filesystem format", - "name": "filesystem", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the state of the shared filesystem", - "name": "state", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the project ID of the shared filesystem", - "name": "projectid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "ID of the shared filesystem", - "name": "id", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" - }, - { - "description": "name of the shared filesystem", - "name": "name", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "service offering ID for the shared filesystem", - "name": "serviceofferingid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "name of the storage fs data volume", - "name": "volumename", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "disk offering for the shared filesystem", - "name": "diskofferingname", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the shared filesystem's disk read in KiB", - "name": "diskkbsread", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", "type": "long" }, { - "description": "Network name of the shared filesystem", - "name": "networkname", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "path to mount the shared filesystem", - "name": "path", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the domain associated with the shared filesystem", - "name": "domain", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "ID of the storage fs vm", - "name": "vmstate", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the project name of the shared filesystem", + "description": "the project name of the vm", "name": "project", "type": "string" }, { - "description": "name of the storage pool hosting the data volume", - "name": "storage", - "type": "string" - }, - { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", - "type": "string" - }, - { - "description": "the shared filesystem provider", - "name": "provider", - "type": "string" - }, - { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", - "type": "string" - }, - {}, - { - "description": "ID of the storage fs data volume", - "name": "volumeid", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the account associated with the shared filesystem", - "name": "account", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, - { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" - }, - { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "Name of the availability zone", - "name": "zonename", - "type": "string" - }, - { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", - "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "adds baremetal rack configuration text", - "isasync": true, - "name": "addBaremetalRct", - "params": [ - { - "description": "http url to baremetal RCT configuration", - "length": 255, - "name": "baremetalrcturl", - "required": true, - "type": "object" - } - ], - "related": "", - "response": [ - { - "description": "id of rct", - "name": "id", - "type": "string" - }, - { - "description": "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": "url", - "name": "url", - "type": "string" - }, - {}, - {} - ] - }, - { - "description": "Updates a role", - "isasync": false, - "name": "updateRole", - "params": [ - { - "description": "The description of the role", - "length": 255, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private).", - "length": 255, - "name": "ispublic", - "required": false, + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "creates a role with this unique name", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "The description of the role", - "length": 255, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "The type of the role, valid options are: Admin, ResourceAdmin, DomainAdmin, User", - "length": 255, - "name": "type", - "required": false, - "type": "string" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" }, { - "description": "ID of the role", - "length": 255, - "name": "id", - "related": "listRoles,updateRole", - "required": true, - "type": "uuid" - } - ], - "related": "listRoles", - "response": [ - { - "description": "the state of the role", - "name": "state", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": "true if role is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + } + ], + "type": "set" }, { - "description": "the name of the role", - "name": "name", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the type of the role", - "name": "type", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the ID of the role", - "name": "id", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the description of the role", - "name": "description", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" - } - ], - "since": "4.9.0" - }, - { - "description": "Lists remote access vpns", - "isasync": false, - "name": "listRemoteAccessVpns", - "params": [ + }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the user's name who deployed the virtual machine", + "name": "username", + "type": "string" }, + {}, { - "description": "public ip address id of the vpn server", - "length": 255, - "name": "publicipid", - "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" }, { - "description": "Lists remote access vpn rule with the specified ID", - "length": 255, - "name": "id", - "related": "listRemoteAccessVpns", - "required": false, - "since": "4.3", - "type": "uuid" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "list remote access VPNs for certain network", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "since": "4.3", - "type": "uuid" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" - } - ], - "related": "", - "response": [ - {}, + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "the domain id of the account of the remote access vpn", + "description": "the ID of the domain in which the virtual machine exists", "name": "domainid", "type": "string" }, { - "description": "the public ip address of the vpn server", - "name": "publicip", - "type": "string" - }, - { - "description": "the state of the rule", + "description": "the state of the virtual machine", "name": "state", "type": "string" }, { - "description": "the public ip address of the vpn server", - "name": "publicipid", - "type": "string" - }, - { - "description": "the project name of the vpn", - "name": "project", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "path of the domain to which the remote access vpn belongs", - "name": "domainpath", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, {}, { - "description": "is vpn for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" }, { - "description": "the ipsec preshared key", - "name": "presharedkey", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "the domain name of the account of the remote access vpn", - "name": "domain", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the range of ips to allocate to the clients", - "name": "iprange", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the account of the remote access vpn", - "name": "account", - "type": "string" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the id of the remote access vpn", - "name": "id", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" } - ] + ], + "since": "4.19.1" }, { - "description": "Deletes a Webhook", + "description": "Adds stratosphere ssp server", "isasync": false, - "name": "deleteWebhook", + "name": "addStratosphereSsp", "params": [ { - "description": "The ID of the Webhook", + "description": "stratosphere ssp api password", "length": 255, - "name": "id", - "related": "createWebhook", + "name": "password", + "required": false, + "type": "string" + }, + { + "description": "the zone ID", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones", "required": true, "type": "uuid" - } - ], - "response": [ - {}, + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "stratosphere ssp server url", + "length": 255, + "name": "url", + "required": true, "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "stratosphere ssp api name", + "length": 255, + "name": "name", + "required": true, "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "stratosphere ssp api username", + "length": 255, + "name": "username", + "required": false, + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.20.0" - }, - { - "description": "Deletes a network ACL", - "isasync": true, - "name": "deleteNetworkACLList", - "params": [ - { - "description": "the ID of the network ACL", + "description": "stratosphere ssp tenant uuid", "length": 255, - "name": "id", - "related": "createNetworkACLList", - "required": true, - "type": "uuid" + "name": "tenantuuid", + "required": false, + "type": "string" } ], + "related": "", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "server id of the stratosphere ssp server", + "name": "hostid", + "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "zone which this ssp controls", + "name": "zoneid", "type": "string" }, { @@ -130275,30 +124328,41 @@ "name": "jobstatus", "type": "integer" }, + { + "description": "name", + "name": "name", + "type": "string" + }, {}, - {} + { + "description": "url of ssp endpoint", + "name": "url", + "type": "string" + } ] }, { - "description": "Removes secondary IP from the NIC.", + "description": "Deletes a network ACL", "isasync": true, - "name": "removeIpFromNic", + "name": "deleteNetworkACL", "params": [ { - "description": "the ID of the secondary ip address to nic", + "description": "the ID of the network ACL", "length": 255, "name": "id", - "related": "", + "related": "moveNetworkAclItem", "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", @@ -130309,815 +124373,885 @@ "name": "displaytext", "type": "string" }, - {}, - {}, { - "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": "Creates a system virtual-machine that implements network services", - "isasync": true, - "name": "createServiceInstance", + "description": "Creates a storage pool.", + "isasync": false, + "name": "createStoragePool", "params": [ { - "description": "An optional account for the virtual machine. Must be used with domainId.", + "description": "the details for the storage pool", "length": 255, - "name": "account", + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "IOPS CloudStack can provision from this storage pool", + "length": 255, + "name": "capacityiops", "required": false, + "type": "long" + }, + { + "description": "the name for the storage pool", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "The template ID that specifies the image for the service appliance", + "description": "the URL of the storage pool", "length": 255, - "name": "templateid", - "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "name": "url", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "Availability zone for the service instance", + "description": "the Zone ID for the storage pool", "length": 255, "name": "zoneid", - "related": "listZones", + "related": "createZone,listZones", "required": true, "type": "uuid" }, { - "description": "The right (outside) network ID for the service instance", + "description": "the storage provider name", "length": 255, - "name": "rightnetworkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": true, - "type": "uuid" + "name": "provider", + "required": false, + "type": "string" }, { - "description": "Project ID for the service instance", + "description": "Whether the informed tag is a JS interpretable rule or not.", "length": 255, - "name": "projectid", - "related": "", + "name": "istagarule", + "required": false, + "type": "boolean" + }, + { + "description": "the cluster ID for the storage pool", + "length": 255, + "name": "clusterid", + "related": "addCluster", "required": false, "type": "uuid" }, { - "description": "The name of the service instance", + "description": "bytes CloudStack can provision from this storage pool", "length": 255, - "name": "name", - "required": true, + "name": "capacitybytes", + "required": false, + "type": "long" + }, + { + "description": "the scope of the storage: cluster or zone", + "length": 255, + "name": "scope", + "required": false, "type": "string" }, { - "description": "An optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", + "description": "hypervisor type of the hosts in zone that will be attached to this storage pool. KVM, VMware supported as of now.", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "hypervisor", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "The left (inside) network for service instance", + "description": "the tags for the storage pool", "length": 255, - "name": "leftnetworkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": true, - "type": "uuid" + "name": "tags", + "required": false, + "type": "string" }, { - "description": "The service offering ID that defines the resources consumed by the service appliance", + "description": "whether the storage should be managed by CloudStack", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", - "required": true, + "name": "managed", + "required": false, + "type": "boolean" + }, + { + "description": "the Pod ID for the storage pool", + "length": 255, + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": false, "type": "uuid" } ], - "related": "", + "related": "cancelStorageMaintenance,findStoragePoolsForMigration,enableStorageMaintenance", "response": [ - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, { - "description": "the project name of the vm", - "name": "project", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, + {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the scope of the storage pool", + "name": "scope", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "path of the Domain in which the virtual machine exists", - "name": "domainpath", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, - {} - ] - }, - { - "description": "Starts a system virtual machine.", - "isasync": true, - "name": "startSystemVm", - "params": [ - { - "description": "The ID of the system virtual machine", - "length": 255, - "name": "id", - "related": "startSystemVm", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - {}, { - "description": "the name of the system VM", - "name": "name", + "description": "the storage pool path", + "name": "path", "type": "string" }, { - "description": "the template name for the system VM", - "name": "templatename", + "description": "Storage provider for this pool", + "name": "provider", "type": "string" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", + "description": "whether this pool is managed or not", + "name": "managed", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, + {}, { - "description": "the Pod ID for the system VM", + "description": "the Pod ID of the storage pool", "name": "podid", "type": "string" }, { - "description": "the Pod name for the system VM", - "name": "podname", - "type": "string" - }, - { - "description": "the private netmask for the system VM", - "name": "privatenetmask", - "type": "string" - }, - { - "description": "the Zone name for the system VM", - "name": "zonename", + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "the host ID for the system VM", - "name": "hostid", + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "the link local netmask for the system vm", - "name": "linklocalnetmask", - "type": "string" + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" }, { - "description": "the system VM type", - "name": "systemvmtype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the public IP address for the system VM", - "name": "publicip", - "type": "string" + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", + "type": "boolean" }, { - "description": "the network domain for the system VM", - "name": "networkdomain", + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", "type": "string" }, { - "description": "the state of the system VM", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobid", + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, { - "description": "the control state of the host for the system VM", - "name": "hostcontrolstate", + "description": "the name of the storage pool", + "name": "name", "type": "string" }, { - "description": "the ID of the system VM", - "name": "id", + "description": "the storage pool type", + "name": "type", "type": "string" }, { - "description": "the public netmask for the system VM", - "name": "publicnetmask", - "type": "string" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the private IP address for the system VM", - "name": "privateip", + "description": "the Zone ID of the storage pool", + "name": "zoneid", "type": "string" }, { - "description": "the agent state of the system VM", - "name": "agentstate", - "type": "string" + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" }, { - "description": "the public MAC address for the system VM", - "name": "publicmacaddress", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "the date and time the system VM was created", + "description": "the date and time the storage pool was created", "name": "created", "type": "date" }, { - "description": "the Zone ID for the system VM", - "name": "zoneid", - "type": "string" - }, - { - "description": "the hostname for the system VM", - "name": "hostname", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" - }, + } + ] + }, + { + "description": "Lists storage pools available for migration of a volume.", + "isasync": false, + "name": "findStoragePoolsForMigration", + "params": [ { - "description": "the job status associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job.", - "name": "jobstatus", + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "the link local IP address for the system vm", - "name": "linklocalip", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the second DNS for the system VM", - "name": "dns2", - "type": "string" + "description": "the ID of the volume", + "length": 255, + "name": "id", + "related": "createVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": true, + "type": "uuid" }, { - "description": "the gateway for the system VM", - "name": "gateway", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "cancelStorageMaintenance,enableStorageMaintenance", + "response": [ + { + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" }, { - "description": "the link local MAC address for the system vm", - "name": "linklocalmacaddress", + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "the number of active console sessions for the console proxy system vm", - "name": "activeviewersessions", - "type": "integer" + "description": "the Pod ID of the storage pool", + "name": "podid", + "type": "string" }, { - "description": "the last disconnected date of host", - "name": "disconnected", - "type": "date" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, { - "description": "the private MAC address for the system VM", - "name": "privatemacaddress", - "type": "string" + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" }, { - "description": "public vlan range", - "name": "publicvlan", - "type": "list" + "description": "the storage pool type", + "name": "type", + "type": "string" }, { - "description": "the first DNS for the system VM", - "name": "dns1", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, - {}, { - "description": "guest vlan range", - "name": "guestvlan", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" }, { - "description": "the ID of the service offering of the system virtual machine.", - "name": "serviceofferingid", + "description": "the name of the storage pool", + "name": "name", "type": "string" }, { - "description": "the template ID for the system VM", - "name": "templateid", - "type": "string" + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" }, { - "description": "the systemvm agent version", - "name": "version", - "type": "string" + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" }, + {}, { - "description": "the name of the service offering of the system virtual machine.", - "name": "serviceofferingname", - "type": "string" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" - } - ] - }, - { - "description": "Registers an existing VNF template into the CloudStack cloud. ", - "isasync": false, - "name": "registerVnfTemplate", - "params": [ + }, { - "description": "Register template for the project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the IP address of the storage pool", + "name": "ipaddress", + "type": "string" }, { - "description": "VNF details in key/value pairs using format vnfdetails[i].keyname=keyvalue. Example: vnfdetails[0].vendor=xxx&&vnfdetails[0].version=2.0", - "length": 255, - "name": "vnfdetails", - "required": false, - "type": "map" + "description": "the storage pool path", + "name": "path", + "type": "string" }, { - "description": "the target hypervisor for the template", - "length": 255, - "name": "hypervisor", - "required": true, + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "VNF nics in key/value pairs using format vnfnics[i].keyname=keyvalue. Example: vnfnics[0].deviceid=0&&vnfnics[0].name=FirstNIC&&vnfnics[0].required=true&&vnfnics[1].deviceid=1&&vnfnics[1].name=SecondNIC", - "length": 255, - "name": "vnfnics", - "required": false, - "type": "map" + "description": "Storage provider for this pool", + "name": "provider", + "type": "string" }, { - "description": "the ID of the zone the template is to be hosted on", - "length": 255, + "description": "the name of the cluster for the storage pool", + "name": "clustername", + "type": "string" + }, + { + "description": "the Zone ID of the storage pool", "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the URL of where the template is hosted. Possible URL include http:// and https://", - "length": 2048, - "name": "url", - "required": true, + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, { - "description": "true if the template supports the sshkey upload feature; default is false", - "length": 255, - "name": "sshkeyenabled", - "required": false, + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", "type": "boolean" }, { - "description": "the format for the template. Possible values include QCOW2, RAW, VHD and OVA.", - "length": 255, - "name": "format", - "required": true, + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" + }, + { + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", "type": "string" }, + {}, { - "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", - "length": 255, - "name": "templatetype", - "required": false, - "since": "4.19.0", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "an optional accountName. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", "type": "string" }, { - "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", - "type": "string" + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" }, { - "description": "The display text of the template, defaults to 'name'.", - "length": 4096, - "name": "displaytext", - "required": false, - "type": "string" + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" }, { - "description": "the checksum value of this template. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", - "length": 255, - "name": "checksum", - "required": false, + "description": "the scope of the storage pool", + "name": "scope", "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "length": 255, - "name": "isfeatured", - "required": false, - "type": "boolean" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, { - "description": "true if this template requires HVM", + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" + } + ] + }, + { + "description": "List Autonomous Systems Number Ranges", + "isasync": false, + "name": "listASNRanges", + "params": [ + { + "description": "List by keyword", "length": 255, - "name": "requireshvm", + "name": "keyword", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "A list of zone ids where the template will be hosted. Use this parameter if the template needs to be registered to multiple zones in one go. Use zoneid if the template needs to be registered to only one zone.Passing only -1 to this will cause the template to be registered as a cross zone template and will be copied to all zones. ", + "description": "the zone ID", "length": 255, - "name": "zoneids", - "related": "listZones", + "name": "zoneid", + "related": "createZone,listZones", "required": false, - "type": "list" + "type": "uuid" }, { - "description": "32 or 64 bits support. 64 by default", + "description": "", "length": 255, - "name": "bits", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "true if the template supports the password reset feature; default is false", + "description": "", "length": 255, - "name": "passwordenabled", + "name": "page", "required": false, - "type": "boolean" - }, + "type": "integer" + } + ], + "related": "", + "response": [ { - "description": "true if the template type is routing i.e., if template is used to deploy router", - "length": 255, - "name": "isrouting", - "required": false, - "type": "boolean" + "description": "Created date", + "name": "created", + "type": "date" }, { - "description": "true if the template is available to all accounts; default is true", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" + "description": "Zone ID", + "name": "zoneid", + "type": "string" }, { - "description": "true if the template or its derivatives are extractable; default is false", - "length": 255, - "name": "isextractable", - "required": false, - "type": "boolean" + "description": "ID of the AS Number Range", + "name": "id", + "type": "string" }, { - "description": "true if template should bypass Secondary Storage and be downloaded to Primary Storage on deployment", - "length": 255, - "name": "directdownload", - "required": false, - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the tag for this template.", - "length": 255, - "name": "templatetag", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "End AS Number", + "name": "endasn", + "type": "long" }, + {}, + {}, { - "description": "the ID of the OS Type that best represents the OS of this template. Not applicable with VMware, as we honour what is defined in the template", + "description": "Start AS Number", + "name": "startasn", + "type": "long" + } + ], + "since": "4.20.0" + }, + { + "description": "Adds an OpenDyalight controler", + "isasync": true, + "name": "addOpenDaylightController", + "params": [ + { + "description": "Credential to access the OpenDaylight API", "length": 255, - "name": "ostypeid", - "related": "", - "required": false, - "type": "uuid" + "name": "password", + "required": true, + "type": "string" }, { - "description": "the name of the template", + "description": "the Physical Network ID", "length": 255, - "name": "name", + "name": "physicalnetworkid", + "related": "createPhysicalNetwork", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "(VMware only) true if VM deployments should preserve all the configurations defined for this template", + "description": "Username to access the OpenDaylight API", "length": 255, - "name": "deployasis", - "required": false, - "since": "4.15.1", - "type": "boolean" + "name": "username", + "required": true, + "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "description": "Api URL of the OpenDaylight Controller.", "length": 255, - "name": "isdynamicallyscalable", - "required": false, - "type": "boolean" + "name": "url", + "required": true, + "type": "string" } ], - "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "related": "", "response": [ - {}, { - "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 url of the controller api", + "name": "url", + "type": "string" }, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the physical network to which this controller belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the username to authenticate to the controller", + "name": "username", "type": "string" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the name assigned to the controller", + "name": "name", + "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "device id of the controller", + "name": "id", "type": "string" }, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Creates a Zone.", + "isasync": false, + "name": "createZone", + "params": [ { - "description": "the type of the template", - "name": "templatetype", + "description": "network type of the zone, can be Basic or Advanced", + "length": 255, + "name": "networktype", + "required": true, "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "Network domain name for the networks in the zone", + "length": 255, + "name": "domain", + "required": false, "type": "string" }, { - "description": "the status of the template", - "name": "status", + "description": "the second DNS for IPv6 network in the Zone", + "length": 255, + "name": "ip6dns2", + "required": false, "type": "string" }, { - "description": "checksum of the template", - "name": "checksum", + "description": "the first internal DNS for the Zone", + "length": 255, + "name": "internaldns1", + "required": true, "type": "string" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" + "description": "the name of the Zone", + "length": 255, + "name": "name", + "required": true, + "type": "string" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "the ID of the containing domain, null for public zones", + "length": 255, + "name": "domainid", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the project name of the template", - "name": "project", + "description": "the first DNS for the Zone", + "length": 255, + "name": "dns1", + "required": true, "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", + "description": "the second internal DNS for the Zone", + "length": 255, + "name": "internaldns2", + "required": false, "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", + "description": "true if local storage offering enabled, false otherwise", + "length": 255, + "name": "localstorageenabled", + "required": false, "type": "boolean" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" - }, - { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "Allocation state of this Zone for allocation of new resources", + "length": 255, + "name": "allocationstate", + "required": false, "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "the guest CIDR address for the Zone", + "length": 255, + "name": "guestcidraddress", + "required": false, + "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", + "description": "true if the zone is an edge zone, false otherwise", + "length": 255, + "name": "isedge", + "required": false, + "since": "4.18.0", "type": "boolean" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the second DNS for the Zone", + "length": 255, + "name": "dns2", + "required": false, "type": "string" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", + "description": "true if network is security group enabled, false otherwise", + "length": 255, + "name": "securitygroupenabled", + "required": false, "type": "boolean" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", - "type": "string" - }, - { - "description": "the template display text", - "name": "displaytext", + "description": "the first DNS for IPv6 network in the Zone", + "length": 255, + "name": "ip6dns1", + "required": false, "type": "string" - }, - { - "description": "the date this template was removed", - "name": "removed", - "type": "date" - }, + } + ], + "related": "listZones", + "response": [ { - "description": "the name of the domain to which the template belongs", - "name": "domain", + "description": "the allocation state of the cluster", + "name": "allocationstate", "type": "string" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", + "description": "the guest CIDR address for the Zone", + "name": "guestcidraddress", "type": "string" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", - "type": "string" + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" }, {}, { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" - }, - { - "description": "the name of the secondary storage host for the template", - "name": "hostname", + "description": "Network domain name for the networks in the zone", + "name": "domain", "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", + "description": "the name of the containing domain, null for public zones", + "name": "domainname", "type": "string" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", - "type": "string" + "description": "The maximum value the MTU can have on the VR's private interfaces", + "name": "routerprivateinterfacemaxmtu", + "type": "integer" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", + "description": "true if local storage offering enabled, false otherwise", + "name": "localstorageenabled", "type": "boolean" }, { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" - }, - { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the capacity of the Zone", + "name": "capacity", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the Pod ID", + "name": "podid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the Pod name", + "name": "podname", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the Cluster ID", + "name": "clusterid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the Zone name", + "name": "zonename", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "The maximum value the MTU can have on the VR's public interfaces", + "name": "routerpublicinterfacemaxmtu", + "type": "integer" + }, + { + "description": "the list of resource tags associated with zone.", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -131125,332 +125259,386 @@ "name": "key", "type": "string" }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, { "description": "the project id the tag belongs to", "name": "projectid", "type": "string" }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, { "description": "id of the resource", "name": "resourceid", "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" } ], "type": "set" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "Zone description", + "name": "description", + "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" + "description": "the second internal DNS for the Zone", + "name": "internaldns2", + "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "true, if zone contains clusters and hosts from different CPU architectures", + "name": "ismultiarch", + "type": "boolean" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the second IPv6 DNS for the Zone", + "name": "ip6dns2", "type": "string" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", + "description": "true, if zone is NSX enabled", + "name": "isnsxenabled", "type": "boolean" }, { - "description": "the size of the template", - "name": "size", - "type": "long" + "description": "Zone Token", + "name": "zonetoken", + "type": "string" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "the network type of the zone; can be Basic or Advanced", + "name": "networktype", + "type": "string" + }, + { + "description": "Allow end users to specify VR MTU", + "name": "allowuserspecifyvrmtu", "type": "boolean" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", + "description": "Zone name", + "name": "name", + "type": "string" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the first DNS for the Zone", + "name": "dns1", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Zone id", + "name": "id", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the display text of the zone", + "name": "displaytext", "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the UUID of the containing domain, null for public zones", + "name": "domainid", "type": "string" }, { - "description": "the template name", - "name": "name", - "type": "string" + "description": "true if security groups support is enabled, false otherwise", + "name": "securitygroupsenabled", + "type": "boolean" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "the second DNS for the Zone", + "name": "dns2", + "type": "string" }, { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "the first IPv6 DNS for the Zone", + "name": "ip6dns1", + "type": "string" }, { "description": "Base64 string representation of the resource icon", "name": "icon", "type": "resourceiconresponse" }, + {}, { - "description": "the template ID", - "name": "id", + "description": "the dhcp Provider for the Zone", + "name": "dhcpprovider", "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "AS Number Range", + "name": "asnrange", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the first internal DNS for the Zone", + "name": "internaldns1", + "type": "string" + }, + { + "description": "the type of the zone - core or edge", + "name": "type", "type": "string" } - ], - "since": "4.19.0" + ] }, { - "description": "Lists VM stats", - "isasync": false, - "name": "listVirtualMachinesUsageHistory", + "description": "Creates a Storage network IP range.", + "isasync": true, + "name": "createStorageNetworkIpRange", "params": [ { - "description": "name of the virtual machine (a substring match is made against the parameter value returning the data for all matching VMs).", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", + "description": "Optional. The vlan the ip range sits on, default to Null when it is not specified which means your network is not on any Vlan. This is mainly for Vmware as other hypervisors can directly retrieve bridge from physical network traffic type table", "length": 255, - "name": "page", + "name": "vlan", "required": false, "type": "integer" }, { - "description": "the IDs of the virtual machines, mutually exclusive with id.", + "description": "UUID of pod where the ip range belongs to", "length": 255, - "name": "ids", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "list" + "name": "podid", + "related": "updatePod,createManagementNetworkIpRange", + "required": true, + "type": "uuid" }, { - "description": "start date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", + "description": "the beginning IP address", "length": 255, - "name": "startdate", - "required": false, - "type": "date" + "name": "startip", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "the ending IP address", "length": 255, - "name": "keyword", + "name": "endip", "required": false, "type": "string" }, { - "description": "the ID of the virtual machine.", + "description": "the gateway for storage network", "length": 255, - "name": "id", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "name": "gateway", + "required": true, + "type": "string" }, { - "description": "end date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", + "description": "the netmask for storage network", "length": 255, - "name": "enddate", - "required": false, - "type": "date" + "name": "netmask", + "required": true, + "type": "string" } ], - "related": "listSystemVmsUsageHistory", + "related": "", "response": [ { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the end ip of the storage network IP range", + "name": "endip", "type": "string" }, { - "description": "the list of VM stats", - "name": "stats", - "type": "list" + "description": "the netmask of the storage network IP range", + "name": "netmask", + "type": "string" + }, + { + "description": "the uuid of storage network IP range.", + "name": "id", + "type": "string" }, {}, + { + "description": "the Zone uuid of the storage network IP range", + "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", - "name": "jobid", + "description": "the network uuid of storage network IP range", + "name": "networkid", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the Pod uuid for the storage network IP range", + "name": "podid", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the gateway of the storage network IP range", + "name": "gateway", + "type": "string" + }, + {}, + { + "description": "the start ip of the storage network IP range", + "name": "startip", + "type": "string" + }, + { + "description": "the ID or VID of the VLAN.", + "name": "vlan", + "type": "integer" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ], - "since": "4.17" + "since": "3.0.0" }, { - "description": "Declare host as 'Degraded'. Host must be on 'Disconnected' or 'Alert' state. The ADMIN must be sure that there are no VMs running on the respective host otherwise this command might corrupted VMs that were running on the 'Degraded' host.", - "isasync": true, - "name": "declareHostAsDegraded", + "description": "Lists all children domains belonging to a specified domain", + "isasync": false, + "name": "listDomainChildren", "params": [ { - "description": "host ID", + "description": "flag to display the resource icon for domains", "length": 255, - "name": "id", - "related": "declareHostAsDegraded,reconnectHost", - "required": true, - "type": "uuid" - } - ], - "related": "reconnectHost", - "response": [ - { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", - "type": "string" - }, - { - "description": "Host details in key/value pairs.", - "name": "details", - "type": "map" + "name": "showicon", + "required": false, + "type": "boolean" }, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", - "type": "date" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "CPU Arch of the host", - "name": "arch", - "type": "string" + "description": "to return the entire tree, use the value \"true\". To return the first level children, use the value \"false\".", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false", + "length": 255, + "name": "listall", + "required": false, "type": "boolean" }, { - "description": "the Zone name of the host", - "name": "zonename", + "description": "list children domains by name", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", - "type": "string" + "description": "list children domain by parent domain ID.", + "length": 255, + "name": "id", + "related": "listDomainChildren,listDomains", + "required": false, + "type": "uuid" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "listDomains", + "response": [ { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "details for the domain", + "name": "domaindetails", + "type": "map" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "the total volume which can be used by this domain", + "name": "volumelimit", "type": "string" }, { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" - }, - { - "description": "the state of the host", + "description": "the state of the domain", "name": "state", - "type": "status" + "type": "string" }, { - "description": "the name of the host", + "description": "the name of the domain", "name": "name", "type": "string" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", - "type": "string" + "description": "the total volume being used by this domain", + "name": "volumetotal", + "type": "long" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", - "type": "boolean" + "description": "the total number of projects the domain can own", + "name": "projectlimit", + "type": "string" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the domain name of the parent domain", + "name": "parentdomainname", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", + "description": "the date when this domain was created", + "name": "created", + "type": "date" + }, + { + "description": "the total number of networks owned by domain", + "name": "networktotal", "type": "long" }, { @@ -131459,937 +125647,877 @@ "type": "integer" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" - }, - { - "description": "the ID of the host", - "name": "id", + "description": "the total number of vpcs available to be created for this domain", + "name": "vpcavailable", "type": "string" }, + {}, { - "description": "the Zone ID of the host", - "name": "zoneid", + "description": "the total number of networks available to be created for this domain", + "name": "networkavailable", "type": "string" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "the total volume available for this domain", + "name": "volumeavailable", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the level of the domain", + "name": "level", + "type": "integer" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", + "description": "the total number of virtual machines that can be deployed by this domain", + "name": "vmlimit", "type": "string" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", + "description": "the total memory (in MB) owned by domain", + "name": "memorytotal", "type": "long" }, { - "description": "events available for the host", - "name": "events", + "description": "the ID of the domain", + "name": "id", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total secondary storage space (in GiB) owned by domain", + "name": "secondarystoragetotal", + "type": "float" + }, + { + "description": "the total primary storage space (in GiB) available to be used for this domain", + "name": "primarystorageavailable", "type": "string" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "the total number of snapshots available for this domain", + "name": "snapshotavailable", + "type": "string" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" + "description": "the total number of vpcs owned by domain", + "name": "vpctotal", + "type": "long" }, { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": "the total number of virtual machines available for this domain to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "the total number of cpu cores owned by domain", + "name": "cputotal", + "type": "long" }, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", - "type": "boolean" + "description": "the total number of networks the domain can own", + "name": "networklimit", + "type": "string" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", + "description": "the total primary storage space (in GiB) the domain can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the total number of public ip addresses available for this domain to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "the total number of vpcs the domain can own", + "name": "vpclimit", + "type": "string" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the total memory (in MB) available to be created for this domain", + "name": "memoryavailable", "type": "string" }, { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "description": "the total number of templates which can be created by this domain", + "name": "templatelimit", + "type": "string" }, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "the total secondary storage space (in GiB) the domain can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", + "description": "The tagged resource limit and count for the domain", + "name": "taggedresources", + "type": "list" + }, + { + "description": "the total number of projects being administrated by this domain", + "name": "projecttotal", "type": "long" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", + "description": "the total memory (in MB) the domain can own", + "name": "memorylimit", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "the total number of cpu cores the domain can own", + "name": "cpulimit", + "type": "string" }, + {}, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" + "description": "the total number of templates which have been created by this domain", + "name": "templatetotal", + "type": "long" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "the path of the domain", + "name": "path", + "type": "string" }, { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", + "description": "the total number of public ip addresses allocated for this domain", + "name": "iptotal", "type": "long" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", - "type": "long" + "description": "the total number of snapshots which can be stored by this domain", + "name": "snapshotlimit", + "type": "string" }, { - "description": "capabilities of the host", - "name": "capabilities", + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the resource state of the host", - "name": "resourcestate", + "description": "the total primary storage space (in GiB) owned by domain", + "name": "primarystoragetotal", + "type": "long" + }, + { + "description": "the total number of cpu cores available to be created for this domain", + "name": "cpuavailable", "type": "string" }, { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", + "description": "the total number of virtual machines deployed by this domain", + "name": "vmtotal", "type": "long" }, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" + "description": "the total number of public ip addresses this domain can acquire", + "name": "iplimit", + "type": "string" }, - {}, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", - "type": "string" + "description": "the total number of snapshots stored by this domain", + "name": "snapshottotal", + "type": "long" }, { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": "the total secondary storage space (in GiB) available to be used for this domain", + "name": "secondarystorageavailable", "type": "string" }, - {}, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" + "description": "the total number of projects available for administration by this domain", + "name": "projectavailable", + "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the total number of templates available to be created by this domain", + "name": "templateavailable", "type": "string" }, { - "description": "the host version", - "name": "version", + "description": "whether the domain has one or more sub-domains", + "name": "haschild", + "type": "boolean" + }, + { + "description": "the domain ID of the parent domain", + "name": "parentdomainid", + "type": "string" + } + ] + }, + { + "description": "Returns an encrypted password for the VM", + "isasync": false, + "name": "getVMPassword", + "params": [ + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, + {}, + { + "description": "The base64 encoded encrypted password of the VM", + "name": "encryptedpassword", "type": "string" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", - "response": [ - { - "description": "GPU cards present in the host", - "name": "gpugroupname", - "type": "string" - }, - { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Assign load balancer rule or list of load balancer rules to a global load balancer rules.", + "isasync": true, + "name": "assignToGlobalLoadBalancerRule", + "params": [ + { + "description": "the ID of the global load balancer rule", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "the cluster name of the host", - "name": "clustername", - "type": "string" + "description": "Map of LB rule id's and corresponding weights (between 1-100) in the GSLB rule, if not specified weight of a LB rule is defaulted to 1. Specified as 'gslblbruleweightsmap[0].loadbalancerid=UUID&gslblbruleweightsmap[0].weight=10'", + "length": 255, + "name": "gslblbruleweightsmap", + "required": false, + "type": "map" }, { - "description": "the IP address of the host", - "name": "ipaddress", + "description": "the list load balancer rules that will be assigned to global load balancer rule", + "length": 255, + "name": "loadbalancerrulelist", + "related": "", + "required": true, + "type": "list" + } + ], + "response": [ + {}, + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Pod name of the host", - "name": "podname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" + } + ] + }, + { + "description": "Configures an ovs element.", + "isasync": true, + "name": "configureOvsElement", + "params": [ + { + "description": "the ID of the ovs provider", + "length": 255, + "name": "id", + "related": "configureOvsElement", + "required": true, + "type": "uuid" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", - "type": "date" + "description": "Enabled/Disabled the service provider", + "length": 255, + "name": "enabled", + "required": true, + "type": "boolean" + } + ], + "related": "", + "response": [ + { + "description": "the domain associated with the provider", + "name": "domain", + "type": "string" }, + {}, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "the project name of the address", + "name": "project", "type": "string" - } - ], - "since": "4.16.0.0" - }, - { - "description": "Creates a Kubernetes cluster", - "isasync": true, - "name": "createKubernetesCluster", - "params": [ + }, { - "description": "name for the Kubernetes cluster", - "length": 255, - "name": "name", - "required": true, + "description": "the id of the ovs", + "name": "id", "type": "string" }, { - "description": "description for the Kubernetes cluster", - "length": 255, - "name": "description", - "required": false, + "description": "the domain ID associated with the provider", + "name": "domainid", "type": "string" }, { - "description": "root disk size in GB for each node", - "length": 255, - "name": "noderootdisksize", - "required": false, - "type": "long" + "description": "Enabled/Disabled the service provider", + "name": "enabled", + "type": "boolean" }, { - "description": "Deploy cluster for the project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "user name for the docker image private registry", - "length": 255, - "name": "dockerregistryusername", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "availability zone in which Kubernetes cluster to be launched", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "the account associated with the provider", + "name": "account", + "type": "string" }, { - "description": "name of the ssh key pair used to login to the virtual machines", - "length": 255, - "name": "keypair", - "required": false, + "description": "path of the domain to which the provider belongs", + "name": "domainpath", "type": "string" }, { - "description": "number of Kubernetes cluster control nodes, default is 1", - "length": 255, - "name": "controlnodes", - "required": false, - "type": "long" + "description": "the project id of the ipaddress", + "name": "projectid", + "type": "string" }, { - "description": "external load balancer IP address while using shared network with Kubernetes HA cluster", - "length": 255, - "name": "externalloadbalanceripaddress", - "required": false, + "description": "the physical network service provider id of the provider", + "name": "nspid", "type": "string" }, + {} + ] + }, + { + "description": "Adds S3 Image Store", + "isasync": false, + "name": "addImageStoreS3", + "params": [ { - "description": "type of the cluster: CloudManaged, ExternalManaged. The default value is CloudManaged.", + "description": "Signer Algorithm to use, either S3SignerType or AWSS3V4SignerType", "length": 255, - "name": "clustertype", + "name": "s3signer", "required": false, - "since": "4.19.0", "type": "string" }, { - "description": "Network in which Kubernetes cluster is to be launched", + "description": "S3 endpoint", "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "name": "endpoint", + "required": true, + "type": "string" }, { - "description": "the ID of the service offering for the virtual machines in the cluster.", + "description": "Connection timeout (milliseconds)", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", + "name": "connectiontimeout", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "number of Kubernetes cluster worker nodes", + "description": "Maximum number of times to retry on error", "length": 255, - "name": "size", + "name": "maxerrorretry", "required": false, - "type": "long" + "type": "integer" }, { - "description": "an optional account for the virtual machine. Must be used with domainId.", + "description": "S3 access key", "length": 255, - "name": "account", - "required": false, + "name": "accesskey", + "required": true, "type": "string" }, { - "description": "Kubernetes version with which cluster to be launched", + "description": "Use HTTPS instead of HTTP", "length": 255, - "name": "kubernetesversionid", - "related": "listKubernetesSupportedVersions", + "name": "usehttps", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "number of Kubernetes cluster master nodes, default is 1. This option is deprecated, please use 'controlnodes' parameter.", + "description": "Socket timeout (milliseconds)", "length": 255, - "name": "masternodes", + "name": "sockettimeout", "required": false, - "type": "long" + "type": "integer" }, { - "description": "URL for the docker image private registry", + "description": "S3 secret key", "length": 255, - "name": "dockerregistryurl", - "required": false, + "name": "secretkey", + "required": true, "type": "string" }, { - "description": "password for the docker image private registry", + "description": "Whether TCP keep-alive is used", "length": 255, - "name": "dockerregistrypassword", + "name": "usetcpkeepalive", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", + "description": "Connection TTL (milliseconds)", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "connectionttl", "required": false, - "type": "uuid" - } - ], - "related": "startKubernetesCluster", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", "type": "integer" }, - {}, { - "description": "the project name of the Kubernetes cluster", - "name": "project", + "description": "Name of the storage bucket", + "length": 255, + "name": "bucket", + "required": true, "type": "string" - }, + } + ], + "related": "listImageStores", + "response": [ { - "description": "the name of the zone of the Kubernetes cluster", + "description": "the Zone ID of the image store", "name": "zoneid", "type": "string" }, { - "description": "the ID of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionid", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "the ID of the service offering of the Kubernetes cluster", - "name": "serviceofferingid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Public IP Address ID of the cluster", - "name": "ipaddressid", + "description": "the Zone name of the image store", + "name": "zonename", "type": "string" }, { - "description": "the type of the cluster", - "name": "clustertype", - "type": "clustertype" + "description": "the provider name of the image store", + "name": "providername", + "type": "string" }, { - "description": "Public IP Address of the cluster", - "name": "ipaddress", + "description": "the name of the image store", + "name": "name", "type": "string" }, { - "description": "Minimum size of the cluster", - "name": "minsize", + "description": "the total disk size of the host", + "name": "disksizetotal", "type": "long" }, + {}, { - "description": "the memory the Kubernetes cluster", - "name": "memory", - "type": "string" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, { - "description": "the cpu cores of the Kubernetes cluster", - "name": "cpunumber", + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "path of the domain to which the Kubernetes cluster belongs", - "name": "domainpath", + "description": "the ID of the image store", + "name": "id", "type": "string" }, + {}, { - "description": "the ID of the template of the Kubernetes cluster", - "name": "templateid", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "Maximum size of the cluster", - "name": "maxsize", + "description": "the host's currently used disk size", + "name": "disksizeused", "type": "long" }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" - }, - { - "description": "the state of the Kubernetes cluster", - "name": "state", - "type": "string" - }, + } + ], + "since": "4.7.0" + }, + { + "description": "Upload a certificate for HTTPS direct template download on KVM hosts", + "isasync": false, + "name": "uploadTemplateDirectDownloadCertificate", + "params": [ { - "description": "the date when this Kubernetes cluster was created", - "name": "created", - "type": "date" + "description": "(optional) the host ID to upload certificate", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,reconnectHost", + "required": false, + "type": "uuid" }, { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zonename", - "type": "string" + "description": "Zone to upload certificate", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" }, { - "description": "the ID of the domain in which the Kubernetes cluster exists", - "name": "domainid", + "description": "Name for the uploaded certificate", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the name of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionname", + "description": "Hypervisor type", + "length": 255, + "name": "hypervisor", + "required": true, "type": "string" }, { - "description": "the description of the Kubernetes cluster", - "name": "description", + "description": "SSL certificate", + "length": 65535, + "name": "certificate", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the size (worker nodes count) of the Kubernetes cluster", - "name": "size", - "type": "long" + "description": "the hosts where the certificate is uploaded to", + "name": "hostsmap", + "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the zone name where the certificate is uploaded", + "name": "zonename", "type": "string" }, { - "description": "the name of the Kubernetes cluster", - "name": "name", + "description": "the hypervisor of the hosts where the certificate is uploaded", + "name": "hypervisor", "type": "string" }, { - "description": "the name of the service offering of the Kubernetes cluster", - "name": "serviceofferingname", + "description": "the direct download certificate version", + "name": "version", "type": "string" }, + {}, { - "description": "the ID of the network of the Kubernetes cluster", - "name": "networkid", + "description": "the direct download certificate id", + "name": "id", "type": "string" }, { - "description": "the list of virtualmachine associated with this Kubernetes cluster", - "name": "virtualmachines", - "type": "list" - }, - { - "description": "keypair details", - "name": "keypair", + "description": "the direct download certificate alias", + "name": "alias", "type": "string" }, { - "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", - "name": "masternodes", - "type": "long" - }, - { - "description": "the account associated with the Kubernetes cluster", - "name": "account", + "description": "the direct download certificate issuer", + "name": "issuer", "type": "string" }, { - "description": "URL end point for the Kubernetes cluster", - "name": "endpoint", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the network of the Kubernetes cluster", - "name": "associatednetworkname", + "description": "the direct download certificate subject", + "name": "subject", "type": "string" }, { - "description": "the name of the domain in which the Kubernetes cluster exists", - "name": "domain", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, - {}, { - "description": "the id of the Kubernetes cluster", - "name": "id", + "description": "the direct download certificate issuer", + "name": "validity", "type": "string" }, { - "description": "URL end point for the Kubernetes cluster dashboard UI", - "name": "consoleendpoint", + "description": "the direct download certificate serial num", + "name": "serialnum", "type": "string" }, { - "description": "the control nodes count for the Kubernetes cluster", - "name": "controlnodes", - "type": "long" - }, - { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", + "description": "the zone id where the certificate is uploaded", + "name": "zoneid", "type": "string" }, - { - "description": "Whether autoscaling is enabled for the cluster", - "name": "autoscalingenabled", - "type": "boolean" - } - ] + {} + ], + "since": "4.11.0" }, { - "description": "List a storage network IP range.", - "isasync": false, - "name": "listStorageNetworkIpRange", + "description": "Import unmanaged virtual machine from a given cluster.", + "isasync": true, + "name": "importUnmanagedInstance", "params": [ { - "description": "", + "description": "vm and its volumes are allowed to migrate to different host/pool when offerings passed are incompatible with current host/pool", "length": 255, - "name": "pagesize", + "name": "migrateallowed", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "optional parameter. Zone uuid, if specicied and both pod uuid and range uuid are absent, using it to search the range.", + "description": "the cluster ID", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, + "name": "clusterid", + "related": "addCluster", + "required": true, "type": "uuid" }, { - "description": "optional parameter. Pod uuid, if specicied and range uuid is absent, using it to search the range.", + "description": "datadisk template to disk-offering mapping using keys disk and diskOffering", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", + "name": "datadiskofferinglist", "required": false, - "type": "uuid" + "type": "map" }, { - "description": "optional parameter. Storaget network IP range uuid, if specicied, using it to search the range.", + "description": "the name of the instance as it is known to the hypervisor", "length": 255, - "name": "id", - "related": "createStorageNetworkIpRange,listStorageNetworkIpRange", - "required": false, - "type": "uuid" + "name": "name", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "an optional account for the virtual machine. Must be used with domainId.", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" }, { - "description": "", + "description": "used to specify the custom parameters.", "length": 255, - "name": "page", + "name": "details", "required": false, - "type": "integer" - } - ], - "related": "createStorageNetworkIpRange", - "response": [ - { - "description": "the start ip of the storage network IP range", - "name": "startip", - "type": "string" - }, - { - "description": "the network uuid of storage network IP range", - "name": "networkid", - "type": "string" - }, - {}, - { - "description": "the Pod uuid for the storage network IP range", - "name": "podid", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "type": "map" }, { - "description": "the end ip of the storage network IP range", - "name": "endip", + "description": "the display name of the instance", + "length": 255, + "name": "displayname", + "required": false, "type": "string" }, { - "description": "the Zone uuid of the storage network IP range", - "name": "zoneid", - "type": "string" + "description": "VM nic to ip address mapping using keys nic, ip4Address", + "length": 255, + "name": "nicipaddresslist", + "required": false, + "type": "map" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "VM nic to network id mapping using keys nic and network", + "length": 255, + "name": "nicnetworklist", + "required": false, + "type": "map" }, { - "description": "the gateway of the storage network IP range", - "name": "gateway", + "description": "the host name of the instance", + "length": 255, + "name": "hostname", + "required": false, "type": "string" }, { - "description": "the netmask of the storage network IP range", - "name": "netmask", - "type": "string" + "description": "the service offering for the virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", - "type": "integer" + "description": "import instance for the project", + "length": 255, + "name": "projectid", + "related": "activateProject", + "required": false, + "type": "uuid" }, { - "description": "the uuid of storage network IP range.", - "name": "id", - "type": "string" + "description": "VM is imported despite some of its NIC's MAC addresses are already present, in case the MAC address exists then a new MAC address is generated", + "length": 255, + "name": "forced", + "required": false, + "type": "boolean" }, - {} - ], - "since": "3.0.0" - }, - { - "description": "Configures a virtual router element.", - "isasync": true, - "name": "configureVirtualRouterElement", - "params": [ { - "description": "Enabled/Disabled the service provider", + "description": "the ID of the template for the virtual machine", "length": 255, - "name": "enabled", - "required": true, - "type": "boolean" + "name": "templateid", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": false, + "type": "uuid" }, { - "description": "the ID of the virtual router provider", + "description": "import instance to the domain specified", "length": 255, - "name": "id", - "related": "configureVirtualRouterElement", - "required": true, + "name": "domainid", + "related": "listDomains", + "required": false, "type": "uuid" } ], - "related": "", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "response": [ { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain ID associated with the provider", - "name": "domainid", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, - {}, { - "description": "the id of the router", - "name": "id", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, - {}, { - "description": "the domain associated with the provider", - "name": "domain", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "path of the domain to which the provider belongs", - "name": "domainpath", - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the account associated with the provider", - "name": "account", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, + {}, { - "description": "the physical network service provider id of the provider", - "name": "nspid", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "Enabled/Disabled the service provider", - "name": "enabled", - "type": "boolean" - } - ] - }, - { - "description": "Enables HA for a host", - "isasync": true, - "name": "enableHAForHost", - "params": [ - { - "description": "ID of the host", - "length": 255, - "name": "hostid", - "related": "reconnectHost", - "required": true, - "type": "uuid" - } - ], - "related": "disableHAForHost", - "response": [ - {}, - { - "description": "operation status", - "name": "status", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the ID of the host", - "name": "hostid", - "type": "string" + "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 name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "if host HA is enabled for the host", - "name": "haenable", - "type": "boolean" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "the host HA provider", - "name": "haprovider", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the HA state of the host", - "name": "hastate", - "type": "hastate" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, - {} - ], - "since": "4.11" - }, - { - "description": "Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.", - "isasync": true, - "name": "updateVMAffinityGroup", - "params": [ { - "description": "comma separated list of affinity groups names that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter", - "length": 255, - "name": "affinitygroupnames", - "related": "", - "required": false, - "type": "list" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "comma separated list of affinity groups id that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter", - "length": 255, - "name": "affinitygroupids", - "related": "", - "required": false, - "type": "list" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - } - ], - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "response": [ - { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { @@ -132397,36 +126525,26 @@ "name": "displayvm", "type": "boolean" }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" - }, - { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, { "description": "the type of the template for the virtual machine", "name": "templatetype", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, + { + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, { "description": "the total number of network traffic bytes sent", "name": "sentbytes", "type": "long" }, - { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", - "type": "string" - }, { "description": "Base64 string containing the user data", "name": "userdata", @@ -132442,13 +126560,8 @@ "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { @@ -132457,23 +126570,18 @@ "type": "list" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { @@ -132482,225 +126590,360 @@ "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, { "description": "the account owning the affinity group", "name": "account", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" } ], "type": "set" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" } ], "type": "set" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, + {}, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the password (if exists) of the virtual machine", + "name": "password", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", + "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, - {}, { "description": "path of the domain in which the virtual machine exists", "name": "domainpath", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", + "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the VM's primary IP address", + "name": "ipaddress", + "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the project name of the vm", + "name": "project", "type": "string" }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, { "description": "the account associated with the virtual machine", "name": "account", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" + }, + { + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { "description": "the VM's disk write in KiB", @@ -132708,65 +126951,49 @@ "type": "long" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, - {}, { - "description": "the state of the virtual machine", - "name": "state", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the project name of the vm", - "name": "project", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", + "description": "the memory used by the VM in KiB", + "name": "memorykbs", "type": "long" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", - "type": "string" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { "description": "the number of vCPUs this virtual machine is using", @@ -132774,90 +127001,137 @@ "type": "integer" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" - }, - { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the name of the virtual machine", - "name": "name", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the name of the virtual machine", + "name": "name", + "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { "description": "list of security groups associated with the virtual machine", "name": "securitygroup", "response": [ - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, { "description": "the list of ingress rules associated with the security group", "name": "ingressrule", "response": [ { - "description": "security group name", - "name": "securitygroupname", - "type": "string" + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" }, { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", + "description": "the id of the security group rule", + "name": "ruleid", "type": "string" }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { @@ -132866,23 +127140,18 @@ "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { @@ -132896,886 +127165,438 @@ "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], "type": "set" }, { - "description": "the protocol of the security group rule", - "name": "protocol", + "description": "account owning the security group rule", + "name": "account", "type": "string" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", + "description": "security group name", + "name": "securitygroupname", "type": "string" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", "type": "string" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", + "description": "the code for the ICMP message response", + "name": "icmpcode", "type": "integer" }, { "description": "the ending IP of the security group rule ", "name": "endport", "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" } ], "type": "set" }, { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", + "description": "the project name of the group", + "name": "project", "type": "string" }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" }, { - "description": "the ID of the security group", - "name": "id", + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "the account owning the security group", - "name": "account", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the ID of the security group", + "name": "id", "type": "string" }, { - "description": "the name of the security group", - "name": "name", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "the description of the security group", - "name": "description", + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { "description": "the list of egress rules associated with the security group", "name": "egressrule", "response": [ - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, { "description": "account owning the security group rule", "name": "account", "type": "string" }, { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" }, { "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], "type": "set" }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, { "description": "the type of the ICMP message response", "name": "icmptype", "type": "integer" }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, { "description": "the CIDR notation for the base IP address of the security group rule", "name": "cidr", "type": "string" }, { - "description": "the code for the ICMP message response", - "name": "icmpcode", + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", "type": "integer" } ], "type": "set" }, { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the user's name who deployed the virtual machine", - "name": "username", - "type": "string" - }, - { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" - }, - { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", - "type": "string" - }, - { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" - }, - { - "description": "the format of the template for the virtual machine", - "name": "templateformat", - "type": "string" - }, - { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" - }, - { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" - }, - { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", - "type": "string" - }, - {}, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" - }, - { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the account owning the security group", + "name": "account", "type": "string" }, { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", "type": "integer" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" } ], "type": "set" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", "type": "long" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - } - ] - }, - { - "description": "Registers NCC Service Package", - "isasync": false, - "name": "registerNetscalerServicePackage", - "params": [ - { - "description": "Description of Service Package", - "length": 255, - "name": "description", - "required": true, - "type": "string" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "Name of the service Package.", - "length": 255, - "name": "name", - "required": true, + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" - } - ], - "related": "listRegisteredServicePackages", - "response": [ - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" }, { - "description": "Description of Service Package", - "name": "description", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "Service Package UUID", - "name": "id", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, + {}, { - "description": "Service Package Name", - "name": "name", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" } - ] + ], + "since": "4.14.0" }, { - "description": "Updates a Webhook", + "description": "Lists System VM stats", "isasync": false, - "name": "updateWebhook", + "name": "listSystemVmsUsageHistory", "params": [ { - "description": "The ID of the Webhook", - "length": 255, - "name": "id", - "related": "createWebhook", - "required": true, - "type": "uuid" - }, - { - "description": "Description for the Webhook", - "length": 255, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "Name for the Webhook", + "description": "", "length": 255, - "name": "name", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Scope of the Webhook", + "description": "start date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", "length": 255, - "name": "scope", + "name": "startdate", "required": false, - "type": "string" + "type": "date" }, { - "description": "Payload URL of the Webhook", + "description": "the IDs of the system VMs, mutually exclusive with id.", "length": 255, - "name": "payloadurl", + "name": "ids", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "required": false, - "type": "string" + "type": "list" }, { - "description": "If set to true then SSL verification will be done for the Webhook otherwise not", + "description": "", "length": 255, - "name": "sslverification", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "State of the Webhook", + "description": "List by keyword", "length": 255, - "name": "state", + "name": "keyword", "required": false, "type": "string" }, { - "description": "Secret key of the Webhook", + "description": "name of the system VMs (a substring match is made against the parameter value returning the data for all matching VMs).", "length": 255, - "name": "secretkey", + "name": "name", "required": false, "type": "string" - } - ], - "response": [ - { - "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": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" }, - {} - ], - "since": "4.20.0" - }, - { - "description": "Lists the CA public certificate(s) as support by the configured/provided CA plugin", - "isasync": false, - "name": "listCaCertificate", - "params": [ { - "description": "Name of the CA service provider, otherwise the default configured provider plugin will be used", + "description": "end date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", "length": 255, - "name": "provider", + "name": "enddate", "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "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": "The CA certificate(s)", - "name": "cacertificates", - "type": "string" - }, - { - "description": "The client certificate", - "name": "certificate", - "type": "string" - }, - {}, - { - "description": "Private key for the certificate", - "name": "privatekey", - "type": "string" - } - ], - "since": "4.11.0" - }, - { - "description": "Provisions a host with a direct download certificate", - "isasync": false, - "name": "provisionTemplateDirectDownloadCertificate", - "params": [ - { - "description": "the host to provision the certificate", - "length": 255, - "name": "hostid", - "related": "reconnectHost", - "required": true, - "type": "uuid" - }, - { - "description": "the id of the direct download certificate to provision", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the name of the host", - "name": "hostname", - "type": "string" - }, - { - "description": "indicates if the certificate has been revoked from the host, failed or skipped", - "name": "status", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "indicates the details in case of failure or host skipped", - "name": "details", - "type": "string" - }, - {}, - {}, - { - "description": "the ID of the host", - "name": "hostid", - "type": "string" + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.17.0" - }, - { - "description": "Creates a Project role", - "isasync": false, - "name": "updateProjectRole", - "params": [ - { - "description": "ID of the Project role", + "description": "the ID of the system VM.", "length": 255, "name": "id", - "related": "updateProjectRole", - "required": true, - "type": "uuid" - }, - { - "description": "The description of the Project role", - "length": 255, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "creates a project role with this unique name", - "length": 255, - "name": "name", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "required": false, - "type": "string" - }, - { - "description": "ID of project where role is being created", - "length": 255, - "name": "projectid", - "related": "", - "required": true, "type": "uuid" } ], "related": "", "response": [ { - "description": "the ID of the role", - "name": "id", - "type": "string" - }, - { - "description": "the id of the project", - "name": "projectid", - "type": "string" + "description": "the list of VM stats", + "name": "stats", + "type": "list" }, - {}, - { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", - "type": "boolean" + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" }, { - "description": "the description of the role", - "name": "description", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { @@ -133784,65 +127605,46 @@ "type": "integer" }, { - "description": "the name of the role", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, + {}, {} ], - "since": "4.15.0" + "since": "4.18.0" }, { - "description": "Add a new Ldap Configuration", - "isasync": false, - "name": "addLdapConfiguration", + "description": "Deletes a IPv6 firewall rule", + "isasync": true, + "name": "deleteIpv6FirewallRule", "params": [ { - "description": "linked domain", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "Hostname", - "length": 255, - "name": "hostname", - "required": true, - "type": "string" - }, - { - "description": "Port", + "description": "the ID of the IPv6 firewall rule", "length": 255, - "name": "port", + "name": "id", + "related": "", "required": true, - "type": "integer" + "type": "uuid" } ], - "related": "", "response": [ - {}, { - "description": "name of the host running the ldap server", - "name": "hostname", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "port the ldap server is running on", - "name": "port", - "type": "int" - }, - { - "description": "linked domain", - "name": "domainid", + "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", @@ -133850,27 +127652,33 @@ }, {}, { - "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" } - ], - "since": "4.2.0" + ] }, { - "description": "create Tungsten-Fabric address group", + "description": "Creates a physical network", "isasync": true, - "name": "createTungstenFabricAddressGroup", + "name": "createPhysicalNetwork", "params": [ { - "description": "Tungsten-Fabric ip prefix length", + "description": "the VLAN for the physical network", "length": 255, - "name": "ipprefixlen", - "required": true, - "type": "integer" + "name": "vlan", + "required": false, + "type": "string" }, { - "description": "the ID of zone", + "description": "Tag the physical network", + "length": 255, + "name": "tags", + "required": false, + "type": "list" + }, + { + "description": "the Zone ID for the physical network", "length": 255, "name": "zoneid", "related": "listZones", @@ -133878,291 +127686,491 @@ "type": "uuid" }, { - "description": "Tungsten-Fabric ip prefix", + "description": "the name of the physical network", "length": 255, - "name": "ipprefix", + "name": "name", "required": true, "type": "string" }, { - "description": "Tungsten-Fabric address group name", + "description": "domain ID of the account owning a physical network", "length": 255, - "name": "name", - "required": true, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "the speed for the physical network[1G/10G]", + "length": 255, + "name": "networkspeed", + "required": false, + "type": "string" + }, + { + "description": "the isolation method for the physical network[VLAN/L3/GRE]", + "length": 255, + "name": "isolationmethods", + "required": false, + "type": "list" + }, + { + "description": "the broadcast domain range for the physical network[Pod or Zone]. In Acton release it can be Zone only in Advance zone, and Pod in Basic", + "length": 255, + "name": "broadcastdomainrange", + "required": false, "type": "string" } ], "related": "", "response": [ + { + "description": "state of the physical network", + "name": "state", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "Tungsten-Fabric provider zone name", + "description": "name of the physical network", + "name": "name", + "type": "string" + }, + { + "description": "zone name of the physical network", "name": "zonename", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain id of the physical network owner", + "name": "domainid", "type": "string" }, + {}, + {}, { - "description": "Tungsten-Fabric provider zone id", + "description": "zone id of the physical network", "name": "zoneid", - "type": "long" + "type": "string" }, { - "description": "Tungsten-Fabric address group name", - "name": "name", + "description": "the vlan of the physical network", + "name": "vlan", "type": "string" }, - {}, { - "description": "Tungsten-Fabric address group ip prefix", - "name": "ipprefix", + "description": "Broadcast domain range of the physical network", + "name": "broadcastdomainrange", "type": "string" }, - {}, { - "description": "Tungsten-Fabric address group uuid", - "name": "uuid", + "description": "isolation methods", + "name": "isolationmethods", "type": "string" }, { - "description": "Tungsten-Fabric address group ip prefix length", - "name": "ipprefixlen", - "type": "int" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "comma separated tag", + "name": "tags", + "type": "string" + }, + { + "description": "the uuid of the physical network", + "name": "id", + "type": "string" + }, + { + "description": "the speed of the physical network", + "name": "networkspeed", + "type": "string" } - ] + ], + "since": "3.0.0" }, { - "description": "Lists BigSwitch BCF Controller devices", + "description": "Lists autoscale vm groups.", "isasync": false, - "name": "listBigSwitchBcfDevices", + "name": "listAutoScaleVmGroups", "params": [ { - "description": "List by keyword", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "keyword", + "name": "listall", "required": false, - "type": "string" + "type": "boolean" + }, + { + "description": "the ID of the autoscale vm group", + "length": 255, + "name": "id", + "related": "listAutoScaleVmGroups", + "required": false, + "type": "uuid" + }, + { + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "activateProject", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the loadbalancer", + "length": 255, + "name": "lbruleid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "bigswitch BCF controller device ID", + "description": "the ID of the profile", "length": 255, - "name": "bcfdeviceid", - "related": "listBigSwitchBcfDevices", + "name": "vmprofileid", + "related": "createAutoScaleVmProfile", "required": false, "type": "uuid" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" }, { - "description": "the Physical Network ID", + "description": "List by keyword", "length": 255, - "name": "physicalnetworkid", + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "the availability zone ID", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the policy", + "length": 255, + "name": "policyid", "related": "", "required": false, "type": "uuid" + }, + { + "description": "the name of the autoscale vmgroup", + "length": 255, + "name": "name", + "required": false, + "since": "4.18.0", + "type": "string" } ], "related": "", "response": [ { - "description": "the controller Ip address", - "name": "hostname", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the id of the guest network the lb rule belongs to", + "name": "associatednetworkid", + "type": "string" + }, + { + "description": "list of scaleup autoscale policies", + "name": "scaleuppolicies", + "type": "list" + }, + {}, + { + "description": "the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number.", + "name": "minmembers", + "type": "int" + }, + { + "description": "the load balancer rule ID", + "name": "lbruleid", + "type": "string" + }, + { + "description": "the project name of the vm group", + "name": "project", "type": "string" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the controller username", - "name": "username", + "description": "the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number.", + "name": "maxmembers", + "type": "int" + }, + { + "description": "the lb provider of the guest network the lb rule belongs to", + "name": "lbprovider", "type": "string" }, { - "description": "the controller password", - "name": "password", + "description": "the autoscale profile that contains information about the vms in the vm group.", + "name": "vmprofileid", "type": "string" }, - {}, { - "description": "name of the provider", - "name": "provider", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "the physical network to which this BigSwitch BCF segment belongs to", - "name": "physicalnetworkid", + "description": "the account owning the vm group", + "name": "account", "type": "string" }, - {}, { - "description": "NAT support", - "name": "nat", + "description": "the domain ID of the vm group", + "name": "domainid", + "type": "string" + }, + { + "description": "the frequency at which the conditions have to be evaluated", + "name": "interval", + "type": "int" + }, + { + "description": "is group for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "device id of the BigSwitch BCF Controller", - "name": "bcfdeviceid", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "device name", - "name": "bigswitchdevicename", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the autoscale vm group ID", + "name": "id", "type": "string" - } - ], - "since": "4.6.0" - }, - { - "description": "lists registered service packages", - "isasync": false, - "name": "listRegisteredServicePackages", - "params": [ + }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the current state of the AutoScale Vm Group", + "name": "state", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the private port", + "name": "privateport", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "the project id of the vm group", + "name": "projectid", + "type": "string" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the domain to which the vm group belongs", + "name": "domainpath", "type": "string" }, { - "description": "Service Package UUID", - "name": "id", + "description": "the domain name of the vm group", + "name": "domain", "type": "string" }, { - "description": "Description of Service Package", - "name": "description", + "description": "the date when this vm group was created", + "name": "created", + "type": "date" + }, + { + "description": "the number of available virtual machines (in Running, Starting, Stopping or Migrating state) in the vmgroup", + "name": "availablevirtualmachinecount", + "type": "int" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Service Package Name", + "description": "the name of the autoscale vm group ", "name": "name", "type": "string" }, - {}, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the guest network the lb rule belongs to", + "name": "associatednetworkname", + "type": "string" + }, + { + "description": "list of scaledown autoscale policies", + "name": "scaledownpolicies", + "type": "list" } ] }, { - "description": "Change Disk offering of a Shared FileSystem", + "description": "Creates a firewall rule for a given IP address", "isasync": true, - "name": "changeSharedFileSystemDiskOffering", + "name": "createFirewallRule", "params": [ { - "description": "max iops", + "description": "type of the ICMP message being sent", "length": 255, - "name": "maxiops", + "name": "icmptype", "required": false, - "type": "long" + "type": "integer" }, { - "description": "the disk offering to use for the underlying storage", + "description": "type of firewallrule: system/user", "length": 255, - "name": "diskofferingid", - "related": "", + "name": "type", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the size of the shared filesystem in GiB", + "description": "the CIDR list to forward traffic from. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "size", + "name": "cidrlist", "required": false, - "type": "long" + "type": "list" }, { - "description": "min iops", + "description": "error code for this icmp message", "length": 255, - "name": "miniops", + "name": "icmpcode", "required": false, - "type": "long" + "type": "integer" }, { - "description": "the ID of the shared filesystem", + "description": "the starting port of firewall rule", "length": 255, - "name": "id", - "related": "changeSharedFileSystemDiskOffering", + "name": "startport", + "required": false, + "type": "integer" + }, + { + "description": "the ending port of firewall rule", + "length": 255, + "name": "endport", + "required": false, + "type": "integer" + }, + { + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.", + "length": 255, + "name": "protocol", + "required": true, + "type": "string" + }, + { + "description": "the IP address id of the port forwarding rule", + "length": 255, + "name": "ipaddressid", + "related": "associateIpAddress,listPublicIpAddresses", "required": true, "type": "uuid" } ], - "related": "", + "related": "updateEgressFirewallRule", "response": [ { - "description": "the shared filesystem's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the starting port of firewall rule's port range", + "name": "startport", + "type": "integer" }, { - "description": "disk offering display text for the shared filesystem", - "name": "diskofferingdisplaytext", + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the traffic type for the firewall rule", + "name": "traffictype", "type": "string" }, { - "description": "the domain associated with the shared filesystem", - "name": "domain", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "path of the domain to which the shared filesystem", - "name": "domainpath", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of resource tags associated", + "description": "the protocol of the firewall rule", + "name": "protocol", + "type": "string" + }, + {}, + { + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { @@ -134171,13 +128179,18 @@ "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { @@ -134186,18 +128199,18 @@ "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -134206,1271 +128219,1180 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag value", - "name": "value", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "Network ID of the shared filesystem", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the ending port of firewall rule's port range", + "name": "endport", + "type": "integer" + }, + { + "description": "the public ip address id for the firewall rule", + "name": "ipaddressid", + "type": "string" + }, + { + "description": "the public ip address for the firewall rule", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the network id of the firewall rule", "name": "networkid", "type": "string" }, { - "description": "ID of the shared filesystem", + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + {}, + { + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the ID of the firewall rule", "name": "id", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" + }, + { + "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", + "name": "destcidrlist", + "type": "string" + } + ] + }, + { + "description": "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.", + "isasync": true, + "name": "createVolume", + "params": [ + { + "description": "the ID of the disk offering. Either diskOfferingId or snapshotId must be passed in.", + "length": 255, + "name": "diskofferingid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the domain ID associated with the disk offering. If used with the account parameter returns the disk volume associated with the account for the specified domain.If account is NOT provided then the volume will be assigned to the caller account and domain.", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "the account associated with the disk volume. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "the ID of the availability zone", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": false, + "type": "uuid" + }, + { + "description": "max iops", + "length": 255, + "name": "maxiops", + "required": false, "type": "long" }, { - "description": "the project ID of the shared filesystem", + "description": "Arbitrary volume size", + "length": 255, + "name": "size", + "required": false, + "type": "long" + }, + { + "description": "the ID of the virtual machine; to be used with snapshot Id, VM to which the volume gets attached after creation", + "length": 255, + "name": "virtualmachineid", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "required": false, + "type": "uuid" + }, + { + "description": "min iops", + "length": 255, + "name": "miniops", + "required": false, + "type": "long" + }, + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "type": "string" + }, + { + "description": "the name of the disk volume", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "an optional field, whether to display the volume to the end user or not.", + "length": 255, + "name": "displayvolume", + "required": false, + "type": "boolean" + }, + { + "description": "the snapshot ID for the disk volume. Either diskOfferingId or snapshotId must be passed in.", + "length": 255, + "name": "snapshotid", + "related": "listSnapshots", + "required": false, + "type": "uuid" + }, + { + "description": "the project associated with the volume. Mutually exclusive with account parameter", + "length": 255, "name": "projectid", + "related": "activateProject", + "required": false, + "type": "uuid" + } + ], + "related": "attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "response": [ + { + "description": "type of the disk volume (ROOT or DATADISK)", + "name": "type", "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "provisioning type used to create volumes.", + "name": "provisioningtype", "type": "string" }, { - "description": "Name of the availability zone", - "name": "zonename", + "description": "Hypervisor the volume belongs to", + "name": "hypervisor", "type": "string" }, { - "description": "name of the storage pool hosting the data volume", + "description": "details for the volume check result, they may vary for different hypervisors", + "name": "volumecheckresult", + "type": "map" + }, + { + "description": "name of the primary storage hosting the disk volume", "name": "storage", "type": "string" }, { - "description": "the shared filesystem's disk read in KiB", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "ID of the availability zone", + "name": "zoneid", + "type": "string" + }, + { + "description": "state of the virtual machine", + "name": "vmstate", + "type": "string" + }, + { + "description": "the bytes actually consumed on disk", + "name": "physicalsize", + "type": "long" + }, + { + "description": "the VM's disk read in KiB", "name": "diskkbsread", "type": "long" }, { - "description": "provisioning type used in the shared filesystem", - "name": "provisioningtype", + "description": "the chain info of the volume", + "name": "chaininfo", "type": "string" }, { - "description": "description of the shared filesystem", - "name": "description", + "description": "the status of the volume", + "name": "status", "type": "string" }, { - "description": "the list of nics associated with the shared filesystem", - "name": "nic", - "response": [ - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - } - ], - "type": "list" + "description": "id of the virtual machine", + "name": "virtualmachineid", + "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "details for the volume repair result, they may vary for different hypervisors", + "name": "volumerepairresult", + "type": "map" + }, + { + "description": "the date the volume was attached to a VM instance", + "name": "attached", + "type": "date" + }, + { + "description": "ID of the snapshot from which this volume was created", + "name": "snapshotid", "type": "string" }, { - "description": "ID of the storage fs data volume", - "name": "volumeid", + "description": "display name of the virtual machine", + "name": "vmdisplayname", "type": "string" }, { - "description": "disk offering for the shared filesystem", + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "ID of the disk volume", + "name": "id", + "type": "string" + }, + { + "description": "ID of the disk offering", + "name": "diskofferingid", + "type": "string" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" + }, + { + "description": "shared or local storage", + "name": "storagetype", + "type": "string" + }, + { + "description": "the boolean state of whether the volume is destroyed or not", + "name": "destroyed", + "type": "boolean" + }, + { + "description": "cluster id of the volume", + "name": "clusterid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", + "type": "string" + }, + { + "description": "true if volume has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "min iops of the disk volume", + "name": "miniops", + "type": "long" + }, + { + "description": "the date the disk volume was created", + "name": "created", + "type": "date" + }, + { + "description": "name of the disk offering", "name": "diskofferingname", "type": "string" }, { - "description": "the filesystem format", - "name": "filesystem", + "description": "cluster name where the volume is allocated", + "name": "clustername", "type": "string" }, - {}, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "max iops of the disk volume", + "name": "maxiops", + "type": "long" + }, + { + "description": "path of the Domain the disk volume belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "true if the volume is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" + }, + { + "description": "the write (IO) of disk on the vm", + "name": "diskiowrite", "type": "long" }, { - "description": "disk offering ID for the shared filesystem", - "name": "diskofferingid", + "description": "the disk utilization", + "name": "utilization", "type": "string" }, { - "description": "ID of the storage pool hosting the data volume", - "name": "storageid", + "description": "name of the disk volume", + "name": "name", "type": "string" }, { - "description": "size of the shared filesystem in GiB", - "name": "sizegb", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "name of the storage fs data volume", - "name": "volumename", + "description": "type of the virtual machine", + "name": "vmtype", "type": "string" }, { - "description": "ID of the storage fs vm", - "name": "vmstate", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, { - "description": "the project name of the shared filesystem", - "name": "project", - "type": "string" + "description": "the bytes allocated", + "name": "virtualsize", + "type": "long" }, { - "description": "the ID of the domain associated with the shared filesystem", - "name": "domainid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, + {}, { - "description": "service offering for the shared filesystem", - "name": "serviceofferingname", - "type": "string" + "description": "bytes read rate of the disk volume", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "the state of the shared filesystem", + "description": "the state of the disk volume", "name": "state", "type": "string" }, { - "description": "disk offering for the shared filesystem has custom size", - "name": "iscustomdiskoffering", - "type": "boolean" + "description": "the project id of the vpn", + "name": "projectid", + "type": "string" }, { - "description": "name of the shared filesystem", - "name": "name", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the account associated with the shared filesystem", - "name": "account", + "description": "IO requests read rate of the disk volume per the disk offering", + "name": "diskIopsReadRate", + "type": "long" + }, + { + "description": "name of the virtual machine", + "name": "vmname", "type": "string" }, { - "description": "Network name of the shared filesystem", - "name": "networkname", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "the read (IO) of disk on the shared filesystem", - "name": "diskioread", - "type": "long" + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", + "type": "string" }, { - "description": "the shared filesystem provider", - "name": "provider", + "description": "name of the service offering for root disk", + "name": "serviceofferingname", "type": "string" }, { - "description": "size of the shared filesystem", + "description": "size of the disk volume", "name": "size", "type": "long" }, - {}, - { - "description": "path to mount the shared filesystem", - "name": "path", - "type": "string" - }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "an optional field whether to the display the volume to the end user or not.", + "name": "displayvolume", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "ID of the storage fs vm", - "name": "virtualmachineid", + "description": "id of the primary storage hosting the disk volume; returned to admin user only", + "name": "storageid", "type": "string" }, { - "description": "the write (IO) of disk on the shared filesystem", - "name": "diskiowrite", - "type": "long" + "description": "true if storage snapshot is supported for the volume, false otherwise", + "name": "supportsstoragesnapshot", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of the service offering for root disk", + "name": "serviceofferingid", "type": "string" }, { - "description": "service offering ID for the shared filesystem", - "name": "serviceofferingid", + "description": "the path of the volume", + "name": "path", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "Enables static NAT for given IP address", - "isasync": false, - "name": "enableStaticNat", - "params": [ + }, { - "description": "The network of the VM the static NAT will be enabled for. Required when public IP address is not associated with any guest network yet (VPC case)", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + } + ], + "type": "set" }, { - "description": "VM guest NIC secondary IP address for the port forwarding rule", - "length": 255, - "name": "vmguestip", - "required": false, + "description": "name of the availability zone", + "name": "zonename", "type": "string" }, { - "description": "the ID of the virtual machine for enabling static NAT feature", - "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" + "description": "the read (IO) of disk on the vm", + "name": "diskioread", + "type": "long" }, { - "description": "the public IP address ID for which static NAT feature is being enabled", - "length": 255, - "name": "ipaddressid", - "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "pod name of the volume", + "name": "podname", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "volume uuid that is given by virtualisation provider (only for VMware)", + "name": "externaluuid", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "Deletes a Zone.", - "isasync": false, - "name": "deleteZone", - "params": [ + "description": "bytes write rate of the disk volume", + "name": "diskBytesWriteRate", + "type": "long" + }, { - "description": "the ID of the Zone", - "length": 255, - "name": "id", - "related": "listZones", - "required": true, - "type": "uuid" - } - ], - "response": [ + "description": "need quiesce vm or not when taking snapshot", + "name": "quiescevm", + "type": "boolean" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "pod id of the volume", + "name": "podid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", + "name": "deviceid", + "type": "long" }, - {}, { "description": "the 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": "Expunge a Shared FileSystem by id", - "isasync": true, - "name": "expungeSharedFileSystem", - "params": [ - { - "description": "the ID of the shared filesystem to expunge", - "length": 255, - "name": "id", - "related": "", - "required": false, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "IO requests write rate of the disk volume per the disk offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the project name of the vpn", + "name": "project", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the format of the disk encryption if applicable", + "name": "encryptformat", "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the display text of the service offering for root disk", + "name": "serviceofferingdisplaytext", "type": "string" } - ], - "since": "4.20.0" + ] }, { - "description": "upload an existing template into the CloudStack cloud. ", + "description": "List virtual machine snapshot by conditions", "isasync": false, - "name": "getUploadParamsForTemplate", + "name": "listVMSnapshot", "params": [ { - "description": "the name of the volume/template/iso", - "length": 255, - "name": "name", - "required": true, - "type": "string" - }, - { - "description": "the target hypervisor for the template", - "length": 255, - "name": "hypervisor", - "required": true, - "type": "string" - }, - { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "projectid", + "related": "activateProject", "required": false, "type": "uuid" }, { - "description": "the display text of the template. This is usually used for display purposes.", - "length": 4096, - "name": "displaytext", - "required": false, - "type": "string" - }, - { - "description": "the tag for this template.", + "description": "lists snapshot by snapshot name or display name", "length": 255, - "name": "templatetag", + "name": "name", "required": false, "type": "string" }, { - "description": "the ID of the OS Type that best represents the OS of this template. Not required for VMware as the guest OS is obtained from the OVF file.", + "description": "The ID of the VM snapshot", "length": 255, - "name": "ostypeid", - "related": "", + "name": "vmsnapshotid", + "related": "listVMSnapshot,createVMSnapshot", "required": false, "type": "uuid" }, { - "description": "true if the template supports the password reset feature; default is false", - "length": 255, - "name": "passwordenabled", - "required": false, - "type": "boolean" - }, - { - "description": "the checksum value of this volume/template/iso The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "checksum", + "name": "account", "required": false, "type": "string" }, { - "description": "true if the template or its derivatives are extractable; default is false", + "description": "", "length": 255, - "name": "isextractable", + "name": "page", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "description": "the ID of the vm", "length": 255, - "name": "isdynamicallyscalable", + "name": "virtualmachineid", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "true if this template requires HVM", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "requireshvm", + "name": "tags", "required": false, - "type": "boolean" + "type": "map" }, { - "description": "true if this template is a featured template, false otherwise", + "description": "the IDs of the vm snapshots, mutually exclusive with vmsnapshotid", "length": 255, - "name": "isfeatured", + "name": "vmsnapshotids", + "related": "listVMSnapshot,createVMSnapshot", "required": false, - "type": "boolean" + "since": "4.9", + "type": "list" }, { - "description": "(VMware only) true if VM deployments should preserve all the configurations defined for this template", + "description": "List by keyword", "length": 255, - "name": "deployasis", + "name": "keyword", "required": false, - "since": "4.15.1", - "type": "boolean" + "type": "string" }, { - "description": "true if the template supports the sshkey upload feature; default is false", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "sshkeyenabled", + "name": "domainid", + "related": "listDomains", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "true if the template type is routing i.e., if template is used to deploy router", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "isrouting", + "name": "isrecursive", "required": false, "type": "boolean" }, { - "description": "Template details in 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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "details", + "name": "listall", "required": false, - "type": "map" + "type": "boolean" }, { - "description": "32 or 64 bits support. 64 by default", + "description": "", "length": 255, - "name": "bits", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "an optional accountName. Must be used with domainId.", + "description": "state of the virtual machine snapshot", "length": 255, - "name": "account", + "name": "state", "required": false, "type": "string" - }, - { - "description": "true if the template is available to all accounts; default is true", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" - }, + } + ], + "related": "createVMSnapshot", + "response": [ { - "description": "the format for the volume/template/iso. Possible values include QCOW2, OVA, and VHD.", - "length": 255, - "name": "format", - "required": true, + "description": "the Zone name of the vm snapshot", + "name": "zonename", "type": "string" }, { - "description": "the ID of the zone the volume/template/iso is to be hosted on", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - }, - { - "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" }, { - "description": "Upload volume/template/iso for the project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - } - ], - "related": "getUploadParamsForIso", - "response": [ - { - "description": "the timestamp after which the signature expires", - "name": "expires", + "description": "VM Snapshot type", + "name": "type", "type": "string" }, + {}, { - "description": "signature to be sent in the POST request.", - "name": "signature", - "type": "string" + "description": "indicates if this is current snapshot", + "name": "current", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "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": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "set" }, { - "description": "the template/volume ID", - "name": "id", - "type": "uuid" + "description": "the state of the vm snapshot", + "name": "state", + "type": "state" }, - {}, { - "description": "encrypted data to be sent in the POST request.", - "name": "metadata", + "description": "the Zone ID of the vm snapshot", + "name": "zoneid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, { - "description": "POST url to upload the file to", - "name": "postURL", - "type": "url" - } - ], - "since": "4.6.0" - }, - { - "description": "Deletes snapshot policies for the account.", - "isasync": false, - "name": "deleteSnapshotPolicies", - "params": [ - { - "description": "list of snapshots policy IDs separated by comma", - "length": 255, - "name": "ids", - "related": "updateSnapshotPolicy", - "required": false, - "type": "list" + "description": "the type of hypervisor on which snapshot is stored", + "name": "hypervisor", + "type": "string" }, - { - "description": "the Id of the snapshot policy", - "length": 255, - "name": "id", - "related": "updateSnapshotPolicy", - "required": false, - "type": "uuid" - } - ], - "response": [ {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "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 UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ] - }, - { - "description": "Lists implementors of implementor of a network traffic type or implementors of all network traffic types", - "isasync": false, - "name": "listTrafficTypeImplementors", - "params": [ - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the vm ID of the vm snapshot", + "name": "virtualmachineid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the parent ID of the vm snapshot", + "name": "parent", "type": "string" }, { - "description": "Optional. The network traffic type, if specified, return its implementor. Otherwise, return all traffic types with their implementor", - "length": 255, - "name": "traffictype", - "required": false, + "description": "path of the domain to which the disk volume belongs", + "name": "domainpath", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the vm snapshot", + "name": "id", "type": "string" }, { - "description": "network traffic type", - "name": "traffictype", + "description": "the account associated with the disk volume", + "name": "account", "type": "string" }, - {}, { - "description": "implementor of network traffic type", - "name": "traffictypeimplementor", + "description": "the display name of the vm snapshot", + "name": "displayname", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "3.0.0" - }, - { - "description": "list the db hosts and statistics", - "isasync": false, - "name": "listDbMetrics", - "params": [], - "related": "", - "response": [ { - "description": "the version of the currently running DB", - "name": "version", + "description": "the name of the vm snapshot", + "name": "name", "type": "string" }, { - "description": "the state of the usage server", - "name": "replicas", - "type": "string[]" + "description": "the parent displayName of the vm snapshot", + "name": "parentName", + "type": "string" }, { - "description": "the time these statistics were collected", - "name": "collectiontime", + "description": "the create date of the vm snapshot", + "name": "created", "type": "date" }, - { - "description": "the name of the active usage server", - "name": "hostname", - "type": "string" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, - {}, - { - "description": "the number of connections to the DB", - "name": "connections", - "type": "int" - }, { - "description": "the tls versions currently in use (accepted) by the DB", - "name": "tlsversions", + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", "type": "string" }, - {}, { - "description": "the version of the currently running DB", - "name": "versioncomment", + "description": "the vm name of the vm snapshot", + "name": "virtualmachinename", "type": "string" }, { - "description": "the number of queries performed on the DB", - "name": "queries", - "type": "long" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the description of the vm snapshot", + "name": "description", "type": "string" - }, - { - "description": "the last measured load averages on the DB", - "name": "dbloadaverages", - "type": "double[]" - }, - { - "description": "the uptime of the DB in seconds", - "name": "uptime", - "type": "long" } ], - "since": "4.17.0" + "since": "4.2.0" }, { - "description": "Deletes an image store or Secondary Storage.", + "description": "Updates a Pod.", "isasync": false, - "name": "deleteImageStore", + "name": "updatePod", "params": [ { - "description": "The image store ID or Secondary Storage ID.", + "description": "the ID of the Pod", "length": 255, "name": "id", - "related": "listSwifts", + "related": "updatePod,createManagementNetworkIpRange", "required": true, "type": "uuid" - } - ], - "response": [ - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - }, - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.2.0" - }, - { - "description": "Lists autoscale vm profiles.", - "isasync": false, - "name": "listAutoScaleVmProfiles", - "params": [ - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" }, { - "description": "the otherdeployparameters of the autoscale vm profile", + "description": "the name of the Pod", "length": 255, - "name": "otherdeployparams", + "name": "name", "required": false, "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "the ID of the autoscale vm profile", - "length": 255, - "name": "id", - "related": "listAutoScaleVmProfiles", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", + "description": "Allocation state of this cluster for allocation of new resources", "length": 255, - "name": "keyword", + "name": "allocationstate", "required": false, "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "the starting IP address for the Pod", "length": 255, - "name": "account", + "name": "startip", "required": false, "type": "string" }, { - "description": "availability zone for the auto deployed virtual machine", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "since": "4.4", - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "the templateid of the autoscale vm profile", - "length": 255, - "name": "templateid", - "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "uuid" - }, - { - "description": "list profiles by service offering id", + "description": "the netmask of the Pod", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", + "name": "netmask", "required": false, - "since": "4.4", - "type": "uuid" + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "the gateway for the Pod", "length": 255, - "name": "projectid", - "related": "", + "name": "gateway", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "the ending IP address for the Pod", "length": 255, - "name": "listall", + "name": "endip", "required": false, - "type": "boolean" + "type": "string" } ], - "related": "", + "related": "createManagementNetworkIpRange", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "Base64 encoded VM user data", - "name": "userdata", - "type": "string" - }, - {}, - { - "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine", - "name": "otherdeployparams", - "type": "map" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the ID of the Pod", + "name": "id", "type": "string" }, { - "description": "the account owning the instance group", - "name": "account", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, - {}, { - "description": "the name of userdata used for the VM", - "name": "userdataname", - "type": "string" + "description": "the IP ranges for the Pod", + "name": "ipranges", + "response": [ + { + "description": "the ending IP for the range", + "name": "endip", + "type": "string" + }, + { + "description": "indicates Vlan ID for the range", + "name": "vlanid", + "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" + }, + { + "description": "the gateway for the range", + "name": "gateway", + "type": "string" + }, + { + "description": "the CIDR for the range", + "name": "cidr", + "type": "string" + } + ], + "type": "list" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the allocation state of the Pod", + "name": "allocationstate", "type": "string" }, - { - "description": "the time allowed for existing connections to get closed before a vm is destroyed", - "name": "expungevmgraceperiod", - "type": "integer" - }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the domain name of the vm profile", - "name": "domain", - "type": "string" + "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", + "name": "endip", + "type": "list" }, { - "description": "the service offering to be used while deploying a virtual machine", - "name": "serviceofferingid", - "type": "string" + "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", + "name": "vlanid", + "type": "list" }, { - "description": "the availability zone to be used while deploying a virtual machine", - "name": "zoneid", - "type": "string" + "description": "the capacity of the Pod", + "name": "capacity", + "response": [ + { + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" + }, + { + "description": "the Cluster name", + "name": "clustername", + "type": "string" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Cluster ID", + "name": "clusterid", + "type": "string" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "the Pod ID", + "name": "podid", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the Pod name", + "name": "podname", + "type": "string" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + } + ], + "type": "list" }, + {}, { - "description": "the template to be used while deploying a virtual machine", - "name": "templateid", + "description": "the name of the Pod", + "name": "name", "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the gateway of the Pod", + "name": "gateway", "type": "string" }, { - "description": "the ID of the user used to launch and destroy the VMs", - "name": "autoscaleuserid", - "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 project name of the vm profile", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the autoscale vm profile ID", - "name": "id", - "type": "string" + "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 project id vm profile", - "name": "projectid", + "description": "the netmask of the Pod", + "name": "netmask", "type": "string" }, { - "description": "the domain ID of the vm profile", - "name": "domainid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "path of the domain to which the vm profile belongs", - "name": "domainpath", + "description": "the Zone ID of the Pod", + "name": "zoneid", "type": "string" }, - {}, { - "description": "is profile for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the Zone name of the Pod", + "name": "zonename", + "type": "string" } ] }, { - "description": "Authorizes a particular ingress rule for this security group", + "description": "Move an ACL rule to a position bettwen two other ACL rules of the same ACL network list", "isasync": true, - "name": "authorizeSecurityGroupIngress", + "name": "moveNetworkAclItem", "params": [ { - "description": "type of the icmp message being sent", - "length": 255, - "name": "icmptype", - "required": false, - "type": "integer" - }, - { - "description": "The ID of the security group. Mutually exclusive with securityGroupName parameter", - "length": 255, - "name": "securitygroupid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number (see /etc/protocols). ALL is default.", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "protocol", + "name": "customid", "required": false, + "since": "4.4", "type": "string" }, { - "description": "error code for this icmp message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" - }, - { - "description": "user to security group mapping", - "length": 255, - "name": "usersecuritygrouplist", - "required": false, - "type": "map" - }, - { - "description": "start port for this ingress rule", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" - }, - { - "description": "the cidr list associated. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" - }, - { - "description": "an optional project of the security group", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "The name of the security group. Mutually exclusive with securityGroupId parameter", + "description": "The ID of the rule that is right after the new position where the rule being moved is going to be placed. This value can be 'NULL' if the rule is being moved to the last position of the network ACL list.", "length": 255, - "name": "securitygroupname", + "name": "nextaclruleid", "required": false, "type": "string" }, { - "description": "end port for this ingress rule", + "description": "Md5 hash used to check the consistency of the ACL rule list before applying the ACL rule move. This check is useful to manage concurrency problems that may happen when multiple users are editing the same ACL rule listing. The parameter is not required. Therefore, if the user does not send it, they assume the risk of moving ACL rules without checking the consistency of the access control list before executing the move. We use MD5 hash function on a String that is composed of all UUIDs of the ACL rules in concatenated in their respective order (order defined via 'number' field).", "length": 255, - "name": "endport", + "name": "aclconsistencyhash", "required": false, - "type": "integer" + "type": "string" }, { - "description": "an optional domainId for the security group. If the account parameter is used, domainId must also be used.", + "description": "The ID of the network ACL rule that is being moved to a new position.", "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "name": "id", + "required": true, + "type": "string" }, { - "description": "an optional account for the security group. Must be used with domainId.", + "description": "The ID of the first rule that is right before the new position where the rule being moved is going to be placed. This value can be 'NULL' if the rule is being moved to the first position of the network ACL list.", "length": 255, - "name": "account", + "name": "previousaclruleid", "required": false, "type": "string" } @@ -135478,656 +129400,439 @@ "related": "", "response": [ { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", + "description": "the list of resource tags associated with the network ACLs", "name": "tags", "response": [ { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" } ], - "type": "set" - }, - {}, - {}, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - } - ] - }, - { - "description": "Sync storage pool with management server (currently supported for Datastore Cluster in VMware and syncs the datastores in it)", - "isasync": true, - "name": "syncStoragePool", - "params": [ - { - "description": "Storage pool id", - "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance,syncStoragePool", - "required": true, - "type": "uuid" - } - ], - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance", - "response": [ - { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the Zone name of the storage pool", - "name": "zonename", - "type": "string" - }, - { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" - }, - {}, - { - "description": "the scope of the storage pool", - "name": "scope", - "type": "string" - }, - { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" - }, - { - "description": "the storage pool path", - "name": "path", - "type": "string" - }, - { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" + "type": "list" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "the ending port of ACL's port range", + "name": "endport", "type": "string" }, { - "description": "the name of the storage pool", - "name": "name", + "description": "Action of ACL Item. Allow/Deny", + "name": "action", "type": "string" }, { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", - "type": "boolean" - }, - { - "description": "Storage provider for this pool", - "name": "provider", + "description": "the name of the ACL this item belongs to", + "name": "aclname", "type": "string" }, - { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", - "type": "long" - }, - { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" - }, - { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" - }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the storage pool type", - "name": "type", - "type": "string" - }, - { - "description": "whether this pool is managed or not", - "name": "managed", + "description": "is rule for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", + "description": "the ID of the ACL this item belongs to", + "name": "aclid", "type": "string" }, + {}, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" }, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "the protocol of the ACL", + "name": "protocol", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "Number of the ACL Item", + "name": "number", + "type": "integer" }, { - "description": "the Pod name of the storage pool", - "name": "podname", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, - {}, { - "description": "the ID of the storage pool", - "name": "id", + "description": "an explanation on why this ACL rule is being applied", + "name": "reason", "type": "string" }, { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", + "description": "the starting port of ACL's port range", + "name": "startport", "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "the ID of the ACL Item", + "name": "id", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the cluster for the storage pool", - "name": "clustername", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the traffic type for the ACL", + "name": "traffictype", "type": "string" }, - { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", - "type": "string" - } - ], - "since": "4.15.1" + {} + ] }, { - "description": "Updates Bucket properties", - "isasync": false, - "name": "updateBucket", + "description": "Attaches an ISO to a virtual machine.", + "isasync": true, + "name": "attachIso", "params": [ { - "description": "Bucket Access Policy", + "description": "the ID of the virtual machine", "length": 255, - "name": "policy", - "required": false, - "type": "string" + "name": "virtualmachineid", + "related": "attachIso,destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "required": true, + "type": "uuid" }, { - "description": "The ID of the Bucket", + "description": "the ID of the ISO file", "length": 255, "name": "id", - "related": "", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", "required": true, "type": "uuid" }, { - "description": "Enable/Disable Bucket Versioning", - "length": 255, - "name": "versioning", - "required": false, - "type": "boolean" - }, - { - "description": "Enable/Disable Bucket encryption", + "description": "If true, ejects existing ISO before attaching on VMware. Default: false", "length": 255, - "name": "encryption", + "name": "forced", "required": false, + "since": "4.15.1", "type": "boolean" - }, - { - "description": "Bucket Quota in GB", - "length": 255, - "name": "quota", - "required": false, - "type": "integer" } ], + "related": "destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + } + ], + "type": "set" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Recalculate and update resource count for an account or domain. This also executes some cleanup tasks before calculating resource counts.", - "isasync": false, - "name": "updateResourceCount", - "params": [ { - "description": "Update resource count for a specified account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "Tag for the resource type", - "length": 255, - "name": "tag", - "required": false, - "since": "4.20.0", - "type": "string" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "If account parameter specified then updates resource counts for a specified account in this domain else update resource counts for all accounts & child domains in specified domain.", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": true, - "type": "uuid" + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" }, { - "description": "Type of resource to update. If specifies valid values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 and 11. If not specified will update all resource counts0 - Instance. Number of instances a user can create. 1 - IP. Number of public IP addresses a user can own. 2 - Volume. Number of disk volumes a user can create. 3 - Snapshot. Number of snapshots a user can create. 4 - Template. Number of templates that a user can register/create. 5 - Project. Number of projects that a user can create. 6 - Network. Number of guest network a user can create. 7 - VPC. Number of VPC a user can create. 8 - CPU. Total number of CPU cores a user can use. 9 - Memory. Total Memory (in MB) a user can use. 10 - PrimaryStorage. Total primary storage space (in GiB) a user can use. 11 - SecondaryStorage. Total secondary storage space (in GiB) a user can use. ", - "length": 255, - "name": "resourcetype", - "required": false, + "description": "the memory allocated for the virtual machine", + "name": "memory", "type": "integer" }, { - "description": "Update resource limits for project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the project id for which resource count's are updated", - "name": "projectid", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, + {}, { - "description": "resource type name. Values include user_vm, public_ip, volume, snapshot, template, project, network, vpc, cpu, memory, primary_storage, secondary_storage.", - "name": "resourcetypename", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the domain name for which resource count's are updated", - "name": "domain", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "The resource count", - "name": "resourcecount", - "type": "long" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "path of the domain to which the resource counts are updated", - "name": "domainpath", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "resource type. Values include 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. See the resourceType parameter for more information on these values.", - "name": "resourcetype", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the account for which resource count's are updated", - "name": "account", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "Tag for the resource", - "name": "tag", - "type": "string" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the project name for which resource count's are updated", - "name": "project", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, - {}, { - "description": "the domain ID for which resource count's are updated", - "name": "domainid", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, - {} - ] - }, - { - "description": "Lists dynamic roles in CloudStack", - "isasync": false, - "name": "listRoles", - "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "List role by role name.", - "length": 255, - "name": "name", - "required": false, + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List role by role type status, valid options are: enabled, disabled", - "length": 255, - "name": "state", - "required": false, - "type": "string" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "List role by role ID.", - "length": 255, - "name": "id", - "related": "listRoles", - "required": false, - "type": "uuid" - }, - { - "description": "List role by role type, valid options are: Admin, ResourceAdmin, DomainAdmin, User.", - "length": 255, - "name": "type", - "required": false, + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "Indicates whether the role will be visible to all users (public) or only to root admins (private). If this parameter is not specified during the creation of the role its value will be defaulted to true (public).", - "name": "ispublic", - "type": "boolean" - }, - { - "description": "true if role is default, false otherwise", - "name": "isdefault", - "type": "boolean" }, { - "description": "the description of the role", - "name": "description", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, - {}, - {}, { - "description": "the type of the role", - "name": "type", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the state of the role", - "name": "state", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the name of the role", - "name": "name", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the ID of the role", - "name": "id", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" - } - ], - "since": "4.9.0" - }, - { - "description": "list Tungsten-Fabric policy", - "isasync": false, - "name": "listTungstenFabricPolicy", - "params": [ - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" }, { - "description": "the uuid of Tungsten-Fabric policy", - "length": 255, - "name": "policyuuid", - "required": false, + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "the ID of ip address", - "length": 255, - "name": "ipaddressid", - "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the ID of network", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the virtual machine", + "name": "name", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "Tungsten-Fabric policy name", - "name": "name", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { @@ -136136,445 +129841,941 @@ "type": "string" }, { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", + "description": "User VM type", + "name": "vmtype", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name of the vm", + "name": "project", + "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, - {}, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, - {} - ] - }, - { - "description": "Download object at a specified path on an image store.", - "isasync": true, - "name": "downloadImageStoreObject", - "params": [ { - "description": "id of the image store", - "length": 255, - "name": "id", - "related": "listSwifts", - "required": true, - "type": "uuid" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "path to download on image store", - "length": 255, - "name": "path", - "required": false, + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" - } - ], - "related": "extractSnapshot,extractTemplate", - "response": [ + }, { - "description": "the account id to which the extracted object belongs", - "name": "accountid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the percentage of the entity uploaded to the specified location", - "name": "uploadpercentage", - "type": "integer" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { - "description": "the upload id of extracted object", - "name": "extractId", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the mode of extraction - upload or download", - "name": "extractMode", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "zone ID the object was extracted from", - "name": "zoneid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, - {}, { - "description": "the name of the extracted object", - "name": "name", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the time and date the object was created", - "name": "created", - "type": "date" + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + } + ], + "type": "set" }, { - "description": "type of the storage", - "name": "storagetype", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the id of extracted object", - "name": "id", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, { - "description": "", - "name": "resultstring", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "the status of the extraction", - "name": "status", - "type": "string" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", - "name": "url", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the state of the extracted object", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" + }, + { + "description": "the state of the virtual machine", "name": "state", "type": "string" }, { - "description": "zone name the object was extracted from", - "name": "zonename", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "Retrieves a cloud identifier.", - "isasync": false, - "name": "getCloudIdentifier", - "params": [ + }, { - "description": "the user ID for the cloud identifier", - "length": 255, - "name": "userid", - "related": "getUser", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" + }, { - "description": "the signed response for the cloud identifier", - "name": "signature", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" + }, + { + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, - {}, { - "description": "the cloud identifier", - "name": "cloudidentifier", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the user ID for the cloud identifier", - "name": "userid", - "type": "string" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" - } - ] - }, - { - "description": "Creates a load balancer stickiness policy ", - "isasync": true, - "name": "createLBStickinessPolicy", - "params": [ - { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "lbruleid", - "related": "", - "required": true, - "type": "uuid" }, { - "description": "param list. Example: param[0].name=cookiename¶m[0].value=LBCookie ", - "length": 255, - "name": "param", - "required": false, - "type": "map" + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" }, + {}, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "name of the load balancer stickiness policy method, possible values are LbCookie, AppCookie, SourceBased", - "length": 255, - "name": "methodname", - "required": true, + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "name of the load balancer stickiness policy", - "length": 255, - "name": "name", - "required": true, + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, + {}, { - "description": "the description of the load balancer stickiness policy", - "length": 255, - "name": "description", - "required": false, + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "the list of stickinesspolicies", - "name": "stickinesspolicy", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "the description of the Stickiness policy", - "name": "description", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the LB Stickiness policy ID", - "name": "id", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the name of the Stickiness policy", - "name": "name", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the state of the policy", - "name": "state", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "is policy for display to the regular user", - "name": "fordisplay", + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "the params of the policy", - "name": "params", - "type": "map" + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" }, { - "description": "the method name of the Stickiness policy", - "name": "methodname", + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" } ], + "type": "set" + }, + { + "description": "NICs of the VNF appliance", + "name": "vnfnics", "type": "list" }, - {}, { - "description": "the name of the Stickiness policy", - "name": "name", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the domain ID of the Stickiness policy", - "name": "domainid", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the description of the Stickiness policy", - "name": "description", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the account of the Stickiness policy", - "name": "account", + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the id of the zone the Stickiness policy belongs to", - "name": "zoneid", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the LB rule ID", - "name": "lbruleid", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the domain of the Stickiness policy", - "name": "domain", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the state of the policy", - "name": "state", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" + }, + { + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" } - ], - "since": "3.0.0" + ] }, { - "description": "Adds a Cisco Asa 1000v appliance", - "isasync": false, - "name": "addCiscoAsa1000vResource", + "description": "Disassociates an IP address from the account.", + "isasync": true, + "name": "disassociateIpAddress", "params": [ { - "description": "Hostname or ip address of the Cisco ASA 1000v appliance.", + "description": "IP Address to be disassociated. Mutually exclusive with the id parameter", "length": 255, - "name": "hostname", - "required": true, + "name": "ipaddress", + "required": false, + "since": "4.19.0", "type": "string" }, { - "description": "Nexus port profile associated with inside interface of ASA 1000v", + "description": "the ID of the public IP address to disassociate. Mutually exclusive with the ipaddress parameter", "length": 255, - "name": "insideportprofile", - "required": true, + "name": "id", + "related": "associateIpAddress,listPublicIpAddresses", + "required": false, + "type": "uuid" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Cluster ID", - "length": 255, - "name": "clusterid", - "related": "addCluster", - "required": true, - "type": "uuid" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - {}, - {}, - {}, + "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": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - {}, {} ] }, { - "description": "Configures a Palo Alto firewall device", - "isasync": true, - "name": "configurePaloAltoFirewall", + "description": "list baremetal dhcp servers", + "isasync": false, + "name": "listBaremetalDhcp", "params": [ { - "description": "capacity of the firewall device, Capacity will be interpreted as number of networks device can handle", + "description": "", "length": 255, - "name": "fwdevicecapacity", + "name": "pagesize", "required": false, - "type": "long" + "type": "integer" }, { - "description": "Palo Alto firewall device ID", + "description": "the Physical Network ID", "length": 255, - "name": "fwdeviceid", - "related": "configurePaloAltoFirewall,listPaloAltoFirewalls", + "name": "physicalnetworkid", + "related": "", "required": true, "type": "uuid" - } - ], - "related": "listPaloAltoFirewalls", - "response": [ - { - "description": "device state", - "name": "fwdevicestate", - "type": "string" }, { - "description": "the username that's used to log in to the external firewall", - "name": "username", + "description": "Type of DHCP device", + "length": 255, + "name": "dhcpservertype", + "required": false, "type": "string" }, { - "description": "the usage interface of the external firewall", - "name": "usageinterface", - "type": "string" + "description": "DHCP server device ID", + "length": 255, + "name": "id", + "required": false, + "type": "long" }, { - "description": "the private interface of the external firewall", - "name": "privateinterface", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "device name", - "name": "fwdevicename", - "type": "string" - }, + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + } + ], + "related": "", + "response": [ { - "description": "the private security zone of the external firewall", - "name": "privatezone", + "description": "device id of ", + "name": "id", "type": "string" }, { @@ -136583,8 +130784,13 @@ "type": "string" }, { - "description": "the number of times to retry requests to the external firewall", - "name": "numretries", + "description": "the physical network to which this external dhcp device belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "name of the provider", + "name": "dhcpservertype", "type": "string" }, { @@ -136593,439 +130799,331 @@ "type": "integer" }, { - "description": "the management IP address of the external firewall", - "name": "ipaddress", - "type": "string" - }, - {}, - { - "description": "device id of the Palo Alto firewall", - "name": "fwdeviceid", + "description": "url", + "name": "url", "type": "string" }, - { - "description": "device capacity", - "name": "fwdevicecapacity", - "type": "long" - }, { "description": "name of the provider", "name": "provider", "type": "string" }, - { - "description": "the timeout (in seconds) for requests to the external firewall", - "name": "timeout", - "type": "string" - }, {}, - { - "description": "the public interface of the external firewall", - "name": "publicinterface", - "type": "string" - }, - { - "description": "the public security zone of the external firewall", - "name": "publiczone", - "type": "string" - }, - { - "description": "the zone ID of the external firewall", - "name": "zoneid", - "type": "string" - }, - { - "description": "the physical network to which this Palo Alto firewall belongs to", - "name": "physicalnetworkid", - "type": "string" - } + {} ] }, { - "description": "Updates ACL item with specified ID", + "description": "Puts storage pool into maintenance state", "isasync": true, - "name": "updateNetworkACLItem", + "name": "enableStorageMaintenance", "params": [ { - "description": "Indicates if the ACL rule is to be updated partially (merging the parameters sent with current configuration) or completely (disconsidering all of the current configurations). The default value is 'true'.", + "description": "Primary storage ID", "length": 255, - "name": "partialupgrade", - "required": false, - "type": "boolean" - }, + "name": "id", + "related": "cancelStorageMaintenance,enableStorageMaintenance", + "required": true, + "type": "uuid" + } + ], + "related": "cancelStorageMaintenance", + "response": [ { - "description": "the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number", - "length": 255, - "name": "protocol", - "required": false, - "type": "string" + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" }, { - "description": "A description indicating why the ACL rule is required.", - "length": 255, - "name": "reason", - "required": false, + "description": "the Zone ID of the storage pool", + "name": "zoneid", "type": "string" }, { - "description": "the starting port of ACL", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, + {}, { - "description": "type of the ICMP message being sent", - "length": 255, - "name": "icmptype", - "required": false, - "type": "integer" + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" }, { - "description": "The network of the vm the ACL will be created for", - "length": 255, - "name": "number", - "required": false, - "type": "integer" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the cidr list to allow traffic from/to. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", "type": "boolean" }, { - "description": "error code for this ICMP message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" + "description": "the Pod ID of the storage pool", + "name": "podid", + "type": "string" }, { - "description": "scl entry action, allow or deny", - "length": 255, - "name": "action", - "required": false, + "description": "the IP address of the storage pool", + "name": "ipaddress", "type": "string" }, { - "description": "the ending port of ACL", - "length": 255, - "name": "endport", - "required": false, - "type": "integer" + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", + "type": "string" }, { - "description": "the traffic type for the ACL, can be Ingress or Egress, defaulted to Ingress if not specified", - "length": 255, - "name": "traffictype", - "required": false, + "description": "the name of the storage pool", + "name": "name", "type": "string" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", + "description": "the storage pool type", + "name": "type", "type": "string" }, { - "description": "the ID of the network ACL item", - "length": 255, - "name": "id", - "related": "updateNetworkACLItem,moveNetworkAclItem", - "required": true, - "type": "uuid" - } - ], - "related": "moveNetworkAclItem", - "response": [ + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" }, { - "description": "the ID of the ACL Item", - "name": "id", + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the network ACLs", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "list" + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" }, {}, { - "description": "the ID of the ACL this item belongs to", - "name": "aclid", + "description": "the Pod name of the storage pool", + "name": "podname", "type": "string" }, { - "description": "the starting port of ACL's port range", - "name": "startport", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "Number of the ACL Item", - "name": "number", - "type": "integer" + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" }, { - "description": "the ending port of ACL's port range", - "name": "endport", + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" + }, + { + "description": "the storage pool path", + "name": "path", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "the scope of the storage pool", + "name": "scope", "type": "string" }, { - "description": "the name of the ACL this item belongs to", - "name": "aclname", + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "an explanation on why this ACL rule is being applied", - "name": "reason", + "description": "Storage provider for this pool", + "name": "provider", "type": "string" }, { - "description": "Action of ACL Item. Allow/Deny", - "name": "action", + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the protocol of the ACL", - "name": "protocol", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, { - "description": "the traffic type for the ACL", - "name": "traffictype", + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, - {}, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" } ] }, { - "description": "List routers.", + "description": "Removes an existing secondary storage selector.", "isasync": false, - "name": "listRouters", + "name": "removeSecondaryStorageSelector", "params": [ { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "The unique identifier of the secondary storage selector to be removed.", "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "List networks by VPC", - "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" - }, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.19.0" + }, + { + "description": "(Deprecated , use deleteLdapConfiguration) Remove the LDAP context for this site.", + "isasync": false, + "name": "ldapRemove", + "params": [], + "related": "", + "response": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "You specify a query filter here, which narrows down the users, who can be part of this domain", + "name": "queryfilter", "type": "string" }, + {}, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "DN password", + "name": "bindpass", "type": "string" }, { - "description": "the host ID of the router", - "length": 255, - "name": "hostid", - "related": "reconnectHost", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the Pod ID of the router", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "Hostname or ip address of the ldap server eg: my.ldap.com", + "name": "hostname", + "type": "string" }, { - "description": "the Zone ID of the router", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "Check Use SSL if the external LDAP server is configured for LDAP over SSL", + "name": "ssl", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "list virtual router elements by version", - "length": 255, - "name": "version", - "required": false, + "description": "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com", + "name": "searchbase", "type": "string" }, { - "description": "if true is passed for this parameter, list only VPC routers", - "length": 255, - "name": "forvpc", - "required": false, - "type": "boolean" + "description": "Specify the distinguished name of a user with the search permission on the directory", + "name": "binddn", + "type": "string" }, + {}, { - "description": "the state of the router", + "description": "Specify the LDAP port if required, default is 389", + "name": "port", + "type": "string" + } + ], + "since": "3.0.1" + }, + { + "description": "Creates a user for an account that already exists", + "isasync": false, + "name": "createUser", + "params": [ + { + "description": "Clear text password (Default hashed to SHA256SALT). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section.", "length": 255, - "name": "state", - "required": false, + "name": "password", + "required": true, "type": "string" }, { - "description": "if true is passed for this parameter, also fetch last executed health check results for the router. Default is false", + "description": "User UUID, required for adding account from external provisioning system", "length": 255, - "name": "fetchhealthcheckresults", + "name": "userid", "required": false, - "since": "4.14", - "type": "boolean" + "type": "string" }, { - "description": "the name of the router", + "description": "lastname", "length": 255, - "name": "name", - "required": false, + "name": "lastname", + "required": true, "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "Creates the user under the specified account. If no account is specified, the username will be used as the account name.", "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "name": "account", + "required": true, + "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "Creates the user under the specified domain. Has to be accompanied with the account parameter", "length": 255, "name": "domainid", "related": "listDomains", @@ -137033,166 +131131,387 @@ "type": "uuid" }, { - "description": "the ID of the disk router", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.", "length": 255, - "name": "id", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "name": "timezone", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "if this parameter is passed, list only routers by health check results", + "description": "email", "length": 255, - "name": "healthchecksfailed", - "required": false, - "since": "4.16", - "type": "boolean" + "name": "email", + "required": true, + "type": "string" }, { - "description": "list by network id", + "description": "firstname", "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": false, - "type": "uuid" + "name": "firstname", + "required": true, + "type": "string" }, { - "description": "the cluster ID of the router", + "description": "Unique username.", "length": 255, - "name": "clusterid", - "related": "addCluster", - "required": false, - "type": "uuid" + "name": "username", + "required": true, + "type": "string" } ], - "related": "", + "related": "getUser", "response": [ { - "description": "the public MAC address for the router", - "name": "publicmacaddress", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the name of the corresponding guest network", - "name": "guestnetworkname", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "the version of the code / software in the router", - "name": "softwareversion", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the domain ID associated with the router", + "description": "the user email address", + "name": "email", + "type": "string" + }, + { + "description": "the date and time the user account was created", + "name": "created", + "type": "date" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" + }, + { + "description": "the account ID of the user", + "name": "accountid", + "type": "string" + }, + { + "description": "the user firstname", + "name": "firstname", + "type": "string" + }, + {}, + { + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" + }, + { + "description": "the user ID", + "name": "id", + "type": "string" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the domain ID of the user", "name": "domainid", "type": "string" }, { - "description": "the second IPv6 DNS for the router", - "name": "ip6dns2", + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the user state", + "name": "state", "type": "string" }, { - "description": "the link local MAC address for the router", - "name": "linklocalmacaddress", + "description": "the domain name of the user", + "name": "domain", "type": "string" }, { - "description": "VPC the router belongs to", - "name": "vpcid", + "description": "the type of the role", + "name": "roletype", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "the secret key of the user", + "name": "secretkey", "type": "string" }, { - "description": "the network domain for the router", - "name": "networkdomain", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "the ID of the corresponding link local network", - "name": "linklocalnetworkid", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", + "type": "string" + }, + { + "description": "the user name", + "name": "username", "type": "string" }, + { + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, {}, { - "description": "the Zone name for the router", - "name": "zonename", + "description": "the account name of the user", + "name": "account", + "type": "string" + } + ] + }, + { + "description": "lists all available apis on the server, provided by the Api Discovery plugin", + "isasync": false, + "name": "listApis", + "params": [ + { + "description": "API name", + "length": 255, + "name": "name", + "required": false, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "description of the api", + "name": "description", "type": "string" }, { - "description": "the Zone ID for the router", - "name": "zoneid", + "description": "the name of the api command", + "name": "name", "type": "string" }, { - "description": "Last executed health check result for the router", - "name": "healthcheckresults", + "description": "version of CloudStack the api was introduced in", + "name": "since", + "type": "string" + }, + {}, + { + "description": "the list params the api accepts", + "name": "params", "response": [ { - "description": "the date this VPC was created", - "name": "lastupdated", - "type": "date" + "description": "description of the api parameter", + "name": "description", + "type": "string" }, { - "description": "result of the health check", - "name": "success", + "description": "version of CloudStack the api was introduced in", + "name": "since", + "type": "string" + }, + { + "description": "length of the parameter", + "name": "length", + "type": "int" + }, + { + "description": "the name of the api parameter", + "name": "name", + "type": "string" + }, + { + "description": "true if this parameter is required for the api request", + "name": "required", "type": "boolean" }, { - "description": "detailed response generated on running health check", - "name": "details", + "description": "comma separated related apis to get the parameter", + "name": "related", "type": "string" }, + {}, { - "description": "the name of the health check on the router", - "name": "checkname", + "description": "parameter type", + "name": "type", + "type": "string" + } + ], + "type": "set" + }, + {}, + { + "description": "response field type", + "name": "type", + "type": "string" + }, + { + "description": "api response fields", + "name": "response", + "response": [ + { + "description": "response field type", + "name": "type", "type": "string" }, { - "description": "the type of the health check - basic or advanced", - "name": "checktype", + "description": "api response fields", + "name": "response", + "type": "set" + }, + { + "description": "the name of the api response field", + "name": "name", + "type": "string" + }, + { + "description": "description of the api response field", + "name": "description", "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "the name of the router", - "name": "name", + "description": "true if api is asynchronous", + "name": "isasync", + "type": "boolean" + }, + { + "description": "comma separated related apis", + "name": "related", "type": "string" }, { - "description": "the first DNS for the router", - "name": "dns1", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the public IP address for the router", - "name": "publicip", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.1.0" + }, + { + "description": "deletes baremetal rack configuration text", + "isasync": true, + "name": "deleteBaremetalRct", + "params": [ + { + "description": "RCT id", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "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" }, { - "description": "the version of scripts", - "name": "scriptsversion", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" + } + ] + }, + { + "description": "Creates site to site vpn local gateway", + "isasync": true, + "name": "createVpnGateway", + "params": [ + { + "description": "an optional field, whether to the display the vpn to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the Pod ID for the router", - "name": "podid", + "description": "public ip address id of the vpn gateway", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { - "description": "the control state of the host for the router", - "name": "hostcontrolstate", + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" + }, + { + "description": "the vpn gateway ID", + "name": "id", + "type": "string" + }, + {}, + { + "description": "the public IP address", + "name": "publicip", + "type": "string" + }, + { + "description": "the project id", + "name": "projectid", "type": "string" }, { @@ -137201,88 +131520,141 @@ "type": "string" }, { - "description": "the template ID for the router", - "name": "templateid", + "description": "the owner", + "name": "account", "type": "string" }, { - "description": "the guest MAC address for the router", - "name": "guestmacaddress", + "description": "the project name", + "name": "project", "type": "string" }, { - "description": "the second DNS for the router", - "name": "dns2", + "description": "the vpc name of this gateway", + "name": "vpcname", "type": "string" }, { - "description": "the public netmask for the router", - "name": "publicnetmask", + "description": "the vpc id of this gateway", + "name": "vpcid", "type": "string" }, { - "description": "true if any health checks had failed", - "name": "healthchecksfailed", + "description": "the domain name of the owner", + "name": "domain", + "type": "string" + }, + { + "description": "the domain id of the owner", + "name": "domainid", + "type": "string" + }, + { + "description": "is vpn gateway for display to the regular user", + "name": "fordisplay", "type": "boolean" }, + {}, { - "description": "the link local netmask for the router", - "name": "linklocalnetmask", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Creates snapshot for a vm.", + "isasync": true, + "name": "createVMSnapshot", + "params": [ + { + "description": "The display name of the snapshot", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "The description of the snapshot", + "length": 255, + "name": "description", + "required": false, "type": "string" }, { - "description": "the guest netmask for the router", - "name": "guestnetmask", + "description": "snapshot memory if true", + "length": 255, + "name": "snapshotmemory", + "required": false, + "type": "boolean" + }, + { + "description": "The ID of the vm", + "length": 255, + "name": "virtualmachineid", + "related": "destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "required": true, + "type": "uuid" + }, + { + "description": "quiesce vm if true", + "length": 255, + "name": "quiescevm", + "required": false, + "type": "boolean" + } + ], + "related": "", + "response": [ + { + "description": "the Zone name of the vm snapshot", + "name": "zonename", "type": "string" }, { - "description": "the ID of the corresponding public network", - "name": "publicnetworkid", + "description": "the vm ID of the vm snapshot", + "name": "virtualmachineid", "type": "string" }, { - "description": "the version of template", - "name": "version", + "description": "VM Snapshot type", + "name": "type", "type": "string" }, { - "description": "the state of the router", - "name": "state", - "type": "state" + "description": "the parent ID of the vm snapshot", + "name": "parent", + "type": "string" }, { - "description": "if this router is an redundant virtual router", - "name": "isredundantrouter", + "description": "indicates if this is current snapshot", + "name": "current", "type": "boolean" }, { - "description": "role of the domain router", - "name": "role", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the hostname for the router", - "name": "hostname", + "description": "the type of hypervisor on which snapshot is stored", + "name": "hypervisor", "type": "string" }, + {}, { - "description": "the date and time the router was created", - "name": "created", - "type": "date" + "description": "the ID of the domain associated with the disk volume", + "name": "domainid", + "type": "string" }, { - "description": "the host ID for the router", - "name": "hostid", + "description": "the display name of the vm snapshot", + "name": "displayname", "type": "string" }, { - "description": "the account associated with the router", - "name": "account", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { @@ -137291,335 +131663,343 @@ "type": "integer" }, { - "description": "the domain associated with the router", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "path of the Domain the router belongs to", - "name": "domainpath", + "description": "the ID of the vm snapshot", + "name": "id", "type": "string" }, { - "description": "the Pod name for the router", - "name": "podname", + "description": "the create date of the vm snapshot", + "name": "created", + "type": "date" + }, + { + "description": "path of the domain to which the disk volume belongs", + "name": "domainpath", "type": "string" }, { - "description": "the template name for the router", - "name": "templatename", + "description": "the domain associated with the disk volume", + "name": "domain", "type": "string" }, {}, { - "description": "the state of redundant virtual router", - "name": "redundantstate", + "description": "the description of the vm snapshot", + "name": "description", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the project id of the vpn", + "name": "projectid", + "type": "string" }, { - "description": "the list of nics associated with the router", - "name": "nic", + "description": "the account associated with the disk volume", + "name": "account", + "type": "string" + }, + { + "description": "the state of the vm snapshot", + "name": "state", + "type": "state" + }, + { + "description": "the parent displayName of the vm snapshot", + "name": "parentName", + "type": "string" + }, + { + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "the gateway of the nic", - "name": "gateway", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the IPv6 address of network", - "name": "ip6address", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", + "description": "tag key name", + "name": "key", "type": "string" } ], "type": "set" }, { - "description": "the link local IP address for the router", - "name": "linklocalip", + "description": "the Zone ID of the vm snapshot", + "name": "zoneid", "type": "string" }, { - "description": "the name of VPC the router belongs to", - "name": "vpcname", + "description": "the name of the vm snapshot", + "name": "name", "type": "string" }, { - "description": "the gateway for the router", - "name": "gateway", + "description": "the vm name of the vm snapshot", + "name": "virtualmachinename", "type": "string" - }, + } + ], + "since": "4.2.0" + }, + { + "description": "Adds detail for the Resource.", + "isasync": true, + "name": "addResourceDetail", + "params": [ { - "description": "the id of the router", - "name": "id", + "description": "resource id to create the details for", + "length": 255, + "name": "resourceid", + "required": true, "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" + "description": "pass false if you want this detail to be disabled for the regular user. True by default", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the first IPv6 DNS for the router", - "name": "ip6dns1", - "type": "string" + "description": "Map of (key/value pairs)", + "length": 255, + "name": "details", + "required": true, + "type": "map" }, { - "description": "the ID of the corresponding guest network", - "name": "guestnetworkid", + "description": "type of the resource", + "length": 255, + "name": "resourcetype", + "required": true, + "type": "string" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "true if the router template requires upgrader", - "name": "requiresupgrade", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the guest IP address for the router", - "name": "guestipaddress", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" } ] }, { - "description": "list Tungsten-Fabric vm", + "description": "Lists vpn users", "isasync": false, - "name": "listTungstenFabricVm", + "name": "listVpnUsers", "params": [ { - "description": "the ID of zone", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "isrecursive", + "required": false, + "type": "boolean" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "the username of the vpn user.", + "length": 255, + "name": "username", + "required": false, + "type": "string" + }, + { + "description": "The uuid of the Vpn user", + "length": 255, + "name": "id", + "related": "addVpnUser,listVpnUsers", + "required": false, + "type": "uuid" + }, + { + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "pagesize", + "name": "domainid", + "related": "listDomains", "required": false, - "type": "integer" + "type": "uuid" }, { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { - "description": "the uuid of Tungsten-Fabric vm", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "vmuuid", + "name": "projectid", + "related": "activateProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "List by keyword", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "keyword", + "name": "account", "required": false, "type": "string" } ], - "related": "", + "related": "addVpnUser", "response": [ - {}, { - "description": "Tungsten-Fabric nic uuid", - "name": "uuid", + "description": "the domain name of the account of the remote access vpn", + "name": "domain", "type": "string" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the project name of the vpn", + "name": "project", + "type": "string" + }, + { + "description": "the domain id of the account of the remote access vpn", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the domain to which the remote access vpn belongs", + "name": "domainpath", "type": "string" }, {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the vpn userID", + "name": "id", + "type": "string" + }, + { + "description": "the account of the remote access vpn", + "name": "account", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + {}, { - "description": "Tungsten-Fabric vm name", - "name": "name", + "description": "the username of the vpn user", + "name": "username", "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the state of the Vpn User, can be 'Add', 'Revoke' or 'Active'.", + "name": "state", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" } ] }, { - "description": "Deletes a Physical Network.", + "description": "Deletes an internal load balancer", "isasync": true, - "name": "deletePhysicalNetwork", + "name": "deleteLoadBalancer", "params": [ { - "description": "the ID of the Physical network", + "description": "the ID of the Load Balancer", "length": 255, "name": "id", "related": "", @@ -137628,11 +132008,6 @@ } ], "response": [ - { - "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", @@ -137645,262 +132020,474 @@ "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" } ], - "since": "3.0.0" + "since": "4.2.0" }, { - "description": "add Tungsten-Fabric policy rule", + "description": "Deletes an IP forwarding rule", "isasync": true, - "name": "addTungstenFabricPolicyRule", + "name": "deleteIpForwardingRule", "params": [ { - "description": "Tungsten-Fabric policy rule source network", + "description": "the ID of the forwarding rule", "length": 255, - "name": "srcnetwork", + "name": "id", + "related": "", "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "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": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric policy rule source ip prefix", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + {} + ] + }, + { + "description": "Register a new userdata.", + "isasync": false, + "name": "registerUserData", + "params": [ + { + "description": "an optional account for the userdata. Must be used with domainId.", "length": 255, - "name": "srcipprefix", + "name": "account", + "required": false, + "type": "string" + }, + { + "description": "Base64 encoded userdata content. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", "required": true, "type": "string" }, { - "description": "the uuid of Tungsten-Fabric policy", + "description": "comma separated list of variables declared in userdata content", "length": 255, - "name": "policyuuid", - "required": true, + "name": "params", + "required": false, "type": "string" }, { - "description": "Tungsten-Fabric policy rule source start port", + "description": "an optional domainId for the userdata. If the account parameter is used, domainId must also be used.", "length": 255, - "name": "srcstartport", - "required": true, - "type": "integer" + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "Tungsten-Fabric policy rule destination start port", + "description": "Name of the userdata", "length": 255, - "name": "deststartport", + "name": "name", "required": true, + "type": "string" + }, + { + "description": "an optional project for the userdata", + "length": 255, + "name": "projectid", + "related": "activateProject", + "required": false, + "type": "uuid" + } + ], + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {}, + { + "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": "Tungsten-Fabric policy rule destination end port", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ], + "since": "4.18" + }, + { + "description": "Adds a Region", + "isasync": false, + "name": "addRegion", + "params": [ + { + "description": "Id of the Region", "length": 255, - "name": "destendport", + "name": "id", "required": true, "type": "integer" }, { - "description": "Tungsten-Fabric policy rule destination ip prefix", + "description": "Name of the region", "length": 255, - "name": "destipprefix", + "name": "name", "required": true, "type": "string" }, { - "description": "Tungsten-Fabric policy rule action", + "description": "Region service endpoint", "length": 255, - "name": "action", + "name": "endpoint", "required": true, "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "true if security groups support is enabled, false otherwise", + "name": "portableipserviceenabled", + "type": "boolean" + }, + { + "description": "true if GSLB service is enabled in the region, false otherwise", + "name": "gslbserviceenabled", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the name of the region", + "name": "name", + "type": "string" }, { - "description": "Tungsten-Fabric policy rule source end port", - "length": 255, - "name": "srcendport", - "required": true, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the ID of the region", + "name": "id", "type": "integer" }, { - "description": "Tungsten-Fabric policy rule protocol", - "length": 255, - "name": "protocol", - "required": true, + "description": "the end point of the region", + "name": "endpoint", "type": "string" }, + {}, + {} + ] + }, + { + "description": "Generates usage records. This will generate records only if there any records to be generated, i.e if the scheduled usage job was not run or failed", + "isasync": false, + "name": "generateUsageRecords", + "params": [ { - "description": "the ID of zone", + "description": "Start date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-01.", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "startdate", + "required": false, + "type": "date" + }, + { + "description": "List events for the specified domain.", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, "type": "uuid" }, { - "description": "Tungsten-Fabric policy rule direction", + "description": "End date range for usage record query. Use yyyy-MM-dd as the date format, e.g. startDate=2009-06-03.", "length": 255, - "name": "direction", - "required": true, + "name": "enddate", + "required": false, + "type": "date" + } + ], + "response": [ + {}, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric policy rule destination network", - "length": 255, - "name": "destnetwork", - "required": true, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "Tungsten-Fabric policy rule source ip prefix length", + "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": "Updates a role permission order", + "isasync": false, + "name": "updateRolePermission", + "params": [ + { + "description": "ID of the role", "length": 255, - "name": "srcipprefixlen", + "name": "roleid", + "related": "", "required": true, - "type": "integer" + "type": "uuid" }, { - "description": "Tungsten-Fabric policy rule destination ip prefix length", + "description": "Role permission rule id", "length": 255, - "name": "destipprefixlen", - "required": true, - "type": "integer" + "name": "ruleid", + "related": "", + "required": false, + "since": "4.11", + "type": "uuid" + }, + { + "description": "Rule permission, can be: allow or deny", + "length": 255, + "name": "permission", + "required": false, + "since": "4.11", + "type": "string" + }, + { + "description": "The parent role permission uuid, use 0 to move this rule at the top of the list", + "length": 255, + "name": "ruleorder", + "related": "", + "required": false, + "type": "list" } ], - "related": "", "response": [ { - "description": "Tungsten-Fabric policy source start port", - "name": "srcstartport", - "type": "int" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, {}, + {}, { - "description": "Tungsten-Fabric policy source ip prefix", - "name": "srcipprefix", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric policy source network", - "name": "srcnetwork", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "Tungsten-Fabric policy destination network", - "name": "destnetwork", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ], + "since": "4.9.0" + }, + { + "description": "Returns a download URL for extracting a snapshot. It must be in the Backed Up state.", + "isasync": true, + "name": "extractSnapshot", + "params": [ + { + "description": "the ID of the snapshot", + "length": 255, + "name": "id", + "related": "listSnapshots", + "required": true, + "since": "4.20.0", + "type": "uuid" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" + "description": "the ID of the zone where the snapshot is located", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": true, + "since": "4.20.0", + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the percentage of the entity uploaded to the specified location", + "name": "uploadpercentage", + "type": "integer" }, { - "description": "Tungsten-Fabric policy uuid", - "name": "policyuuid", + "description": "the state of the extracted object", + "name": "state", "type": "string" }, + {}, { - "description": "Tungsten-Fabric policy protocol", - "name": "protocol", + "description": "the name of the extracted object", + "name": "name", "type": "string" }, { - "description": "Tungsten-Fabric policy destination ip prefix", - "name": "destipprefix", + "description": "the account id to which the extracted object belongs", + "name": "accountid", "type": "string" }, { - "description": "Tungsten-Fabric policy source ip prefix length", - "name": "srcipprefixlen", - "type": "int" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "Tungsten-Fabric policy destination ip prefix length", - "name": "destipprefixlen", - "type": "int" + "description": "zone name the object was extracted from", + "name": "zonename", + "type": "string" }, { - "description": "Tungsten-Fabric policy name", - "name": "direction", + "description": "the mode of extraction - upload or download", + "name": "extractMode", "type": "string" }, { - "description": "Tungsten-Fabric policy source end port", - "name": "srcendport", - "type": "int" + "description": "zone ID the object was extracted from", + "name": "zoneid", + "type": "string" }, { - "description": "Tungsten-Fabric policy destination end port", - "name": "destendport", - "type": "int" + "description": "type of the storage", + "name": "storagetype", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", + "name": "url", "type": "string" }, + { + "description": "the time and date the object was created", + "name": "created", + "type": "date" + }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "Tungsten-Fabric policy destination start port", - "name": "deststartport", - "type": "int" + "description": "the status of the extraction", + "name": "status", + "type": "string" }, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the upload id of extracted object", + "name": "extractId", + "type": "string" }, - {}, { - "description": "Tungsten-Fabric policy action", - "name": "action", + "description": "", + "name": "resultstring", "type": "string" }, { - "description": "Tungsten-Fabric rule uuid", - "name": "uuid", + "description": "the id of extracted object", + "name": "id", "type": "string" } - ] + ], + "since": "4.20.0" }, { - "description": "Creates a Webhook", + "description": "List registered keypairs", "isasync": false, - "name": "createWebhook", + "name": "listSSHKeyPairs", "params": [ { - "description": "Secret key of the Webhook", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "secretkey", + "name": "isrecursive", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Name for the Webhook", + "description": "A key pair name to look for", "length": 255, "name": "name", - "required": true, + "required": false, "type": "string" }, { - "description": "Scope of the Webhook", + "description": "", "length": 255, - "name": "scope", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "An optional account for the Webhook. Must be used with domainId.", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "account", + "name": "projectid", + "related": "activateProject", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "an optional domainId for the Webhook. If the account parameter is used, domainId must also be used.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" + }, + { + "description": "list only resources belonging to the domain specified", "length": 255, "name": "domainid", "related": "listDomains", @@ -137908,79 +132495,73 @@ "type": "uuid" }, { - "description": "If set to true then SSL verification will be done for the Webhook otherwise not", + "description": "A public key fingerprint to look for", "length": 255, - "name": "sslverification", + "name": "fingerprint", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "Project for the Webhook", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "projectid", - "related": "", + "name": "account", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "Description for the Webhook", + "description": "the ID of the ssh keypair", "length": 255, - "name": "description", + "name": "id", + "related": "listSSHKeyPairs", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "Payload URL of the Webhook", + "description": "List by keyword", "length": 255, - "name": "payloadurl", - "required": true, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "State of the Webhook", + "description": "", "length": 255, - "name": "state", + "name": "page", "required": false, - "type": "string" + "type": "integer" } ], "related": "", "response": [ { - "description": "The ID of the Webhook", - "name": "id", + "description": "the owner of the keypair", + "name": "account", "type": "string" }, { - "description": "The date when this Webhook was created", - "name": "created", - "type": "date" - }, - { - "description": "Whether SSL verification is enabled for the Webhook", - "name": "sslverification", - "type": "boolean" + "description": "the project id of the keypair owner", + "name": "projectid", + "type": "string" }, { - "description": "The name of the Webhook", + "description": "Name of the keypair", "name": "name", "type": "string" }, + {}, { - "description": "The name of the domain in which the Webhook exists", - "name": "domain", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "The payload URL end point for the Webhook", - "name": "payloadurl", + "description": "the domain name of the keypair owner", + "name": "domain", "type": "string" }, - {}, - {}, { - "description": "the project name of the Kubernetes cluster", - "name": "project", + "description": "ID of the ssh keypair", + "name": "id", "type": "string" }, { @@ -137989,119 +132570,92 @@ "type": "string" }, { - "description": "The secret key for the Webhook", - "name": "secretkey", + "description": "the project name of the keypair owner", + "name": "project", "type": "string" }, { - "description": "The account associated with the Webhook", - "name": "account", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "The state of the Webhook", - "name": "state", + "description": "Fingerprint of the public key", + "name": "fingerprint", "type": "string" }, + {}, { - "description": "The ID of the domain in which the Webhook exists", + "description": "the domain id of the keypair owner", "name": "domainid", "type": "string" - }, - { - "description": "The description of the Webhook", - "name": "description", - "type": "string" - }, - { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the domain to which the Webhook belongs", - "name": "domainpath", - "type": "string" - }, - { - "description": "The scope of the Webhook", - "name": "scope", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" } - ], - "since": "4.20.0" + ] }, { - "description": "Removes vpn user", - "isasync": true, - "name": "removeVpnUser", + "description": "Lists accounts and provides detailed account information for listed accounts", + "isasync": false, + "name": "listAccounts", "params": [ { - "description": "username for the vpn user", + "description": "list accounts by state. Valid states are enabled, disabled, and locked.", "length": 255, - "name": "username", - "required": true, + "name": "state", + "required": false, "type": "string" }, { - "description": "an optional account for the vpn user. Must be used with domainId.", + "description": "Tag for resource type to return usage", "length": 255, - "name": "account", + "name": "tag", "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "listall", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "remove vpn user from the project", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "projectid", - "related": "", + "name": "isrecursive", "required": false, - "type": "uuid" - } - ], - "response": [ - {}, + "type": "boolean" + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "list accounts by account type. Valid account types are 1 (admin), 2 (domain-admin), and 0 (user).", + "length": 255, + "name": "accounttype", + "required": false, + "type": "integer" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "comma separated list of account details requested, value can be a list of [ all, resource, min]", + "length": 255, + "name": "details", + "required": false, + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "list account by account ID", + "length": 255, + "name": "id", + "related": "enableAccount,listAccounts,listAccounts", + "required": false, + "type": "uuid" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, - {} - ] - }, - { - "description": "List public IP addresses in quarantine.", - "isasync": false, - "name": "listQuarantinedIps", - "params": [ { "description": "", "length": 255, @@ -138110,9 +132664,16 @@ "type": "integer" }, { - "description": "Show IPs that are no longer in quarantine.", + "description": "List by keyword", "length": 255, - "name": "showinactive", + "name": "keyword", + "required": false, + "type": "string" + }, + { + "description": "flag to display the resource icon for accounts", + "length": 255, + "name": "showicon", "required": false, "type": "boolean" }, @@ -138124,1138 +132685,1153 @@ "type": "integer" }, { - "description": "List by keyword", + "description": "list accounts by cleanuprequired attribute (values are true or false)", "length": 255, - "name": "keyword", + "name": "iscleanuprequired", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Show IPs removed from quarantine.", + "description": "list account by account name", "length": 255, - "name": "showremoved", + "name": "name", "required": false, - "type": "boolean" + "type": "string" } ], - "related": "updateQuarantinedIp", + "related": "enableAccount,listAccounts", "response": [ { - "description": "Account ID of the previous public IP address owner.", - "name": "previousownerid", + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "The public IP address in quarantine.", - "name": "ipaddress", + "description": "the list of users associated with account", + "name": "user", + "response": [ + { + "description": "the domain name of the user", + "name": "domain", + "type": "string" + }, + { + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, + { + "description": "the ID of the role", + "name": "roleid", + "type": "string" + }, + { + "description": "the date and time the user account was created", + "name": "created", + "type": "date" + }, + { + "description": "the user firstname", + "name": "firstname", + "type": "string" + }, + { + "description": "the user ID", + "name": "id", + "type": "string" + }, + { + "description": "the api key of the user", + "name": "apikey", + "type": "string" + }, + { + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the name of the role", + "name": "rolename", + "type": "string" + }, + { + "description": "the secret key of the user", + "name": "secretkey", + "type": "string" + }, + { + "description": "the domain ID of the user", + "name": "domainid", + "type": "string" + }, + { + "description": "the user email address", + "name": "email", + "type": "string" + }, + { + "description": "the user state", + "name": "state", + "type": "string" + }, + { + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the account name of the user", + "name": "account", + "type": "string" + }, + { + "description": "the user name", + "name": "username", + "type": "string" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" + }, + { + "description": "the account ID of the user", + "name": "accountid", + "type": "string" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" + }, + { + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", + "type": "string" + }, + { + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "the user lastname", + "name": "lastname", + "type": "string" + }, + { + "description": "the type of the role", + "name": "roletype", + "type": "string" + } + ], + "type": "list" + }, + {}, + { + "description": "the total number of networks the account can own", + "name": "networklimit", "type": "string" }, { - "description": "When the quarantine was removed.", - "name": "removed", + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", + "type": "string" + }, + { + "description": "the date when this account was created", + "name": "created", "type": "date" }, { - "description": "The reason for removing the IP from quarantine prematurely.", - "name": "removalreason", + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, { - "description": "ID of the account that removed the IP from quarantine.", - "name": "removeraccountid", + "description": "the name of the role", + "name": "rolename", "type": "string" }, - {}, { - "description": "ID of the quarantine process.", - "name": "id", + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", "type": "string" }, { - "description": "End date for the quarantine.", - "name": "enddate", - "type": "date" + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "When the quarantine was created.", - "name": "created", - "type": "date" + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", + "type": "string" }, - {}, { - "description": "Account name of the previous public IP address owner.", - "name": "previousownername", + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", "type": "string" - } - ], - "since": "4.19" - }, - { - "description": "Deletes a load balancer health check policy.", - "isasync": true, - "name": "deleteLBHealthCheckPolicy", - "params": [ - { - "description": "the ID of the load balancer health check policy", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "description": "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", + "description": "the state of the account", + "name": "state", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", + "type": "string" }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", "type": "string" - } - ], - "since": "4.2.0" - }, - { - "description": "List Swift.", - "isasync": false, - "name": "listSwifts", - "params": [ - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the name of the account", + "name": "name", + "type": "string" }, { - "description": "the id of the swift", - "length": 255, - "name": "id", - "required": false, - "type": "long" + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the Zone ID of the image store", - "name": "zoneid", + "description": "the total volume available for this account", + "name": "volumeavailable", "type": "string" }, { - "description": "the Zone name of the image store", - "name": "zonename", + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", "type": "long" }, { - "description": "the ID of the image store", - "name": "id", + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the network domain", + "name": "networkdomain", + "type": "string" }, { - "description": "the scope of the image store", - "name": "scope", - "type": "scopetype" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, - {}, { - "description": "the protocol of the image store", - "name": "protocol", + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", "type": "string" }, { - "description": "the provider name of the image store", - "name": "providername", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the url of the image store", - "name": "url", + "description": "name of the Domain the account belongs to", + "name": "domain", "type": "string" }, { - "description": "the name of the image store", - "name": "name", + "description": "the total number of vpcs the account can own", + "name": "vpclimit", "type": "string" }, { - "description": "defines if store is read-only", - "name": "readonly", - "type": "boolean" + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", - "type": "long" + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "path of the Domain the account belongs to", + "name": "domainpath", + "type": "string" }, - {} - ], - "since": "3.0.0" - }, - { - "description": "Disables HA for a host", - "isasync": true, - "name": "disableHAForHost", - "params": [ { - "description": "ID of the host", - "length": 255, - "name": "hostid", - "related": "reconnectHost", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", + "type": "long" + }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" }, { - "description": "if host HA is enabled for the host", - "name": "haenable", - "type": "boolean" + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" }, { - "description": "the host HA provider", - "name": "haprovider", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", "type": "string" }, - {}, - {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "operation status", - "name": "status", - "type": "boolean" + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", + "type": "string" }, { - "description": "the HA state of the host", - "name": "hastate", - "type": "hastate" - } - ], - "since": "4.11" - }, - { - "description": "Enables out-of-band management for a host", - "isasync": true, - "name": "enableOutOfBandManagementForHost", - "params": [ - { - "description": "the ID of the host", - "length": 255, - "name": "hostid", - "related": "reconnectHost", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the out-of-band management interface powerState of the host", - "name": "powerstate", - "type": "powerstate" + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" }, { - "description": "the operation result description", - "name": "description", + "description": "the total memory (in MB) the account can own", + "name": "memorylimit", "type": "string" }, { - "description": "true if out-of-band management is enabled for the host", - "name": "enabled", + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", "type": "boolean" }, { - "description": "the out-of-band management driver for the host", - "name": "driver", + "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", + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", "type": "string" }, { - "description": "the operation result", - "name": "status", - "type": "boolean" + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", + "type": "integer" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", "type": "string" }, { - "description": "the out-of-band management action (if issued)", - "name": "action", + "description": "the default zone of the account", + "name": "defaultzoneid", "type": "string" }, - {}, - {}, { - "description": "the out-of-band management interface password", - "name": "password", + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", "type": "string" }, { - "description": "the out-of-band management interface port", - "name": "port", + "description": "id of the Domain the account belongs to", + "name": "domainid", "type": "string" }, { - "description": "the out-of-band management interface address", - "name": "address", - "type": "string" + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" }, { - "description": "the out-of-band management interface username", - "name": "username", - "type": "string" - } - ], - "since": "4.9.0" - }, - { - "description": "Deletes a service offering.", - "isasync": false, - "name": "deleteServiceOffering", - "params": [ - { - "description": "the ID of the service offering", - "length": 255, + "description": "the id of the account", "name": "id", - "related": "updateServiceOffering,listServiceOfferings", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, + "type": "string" + }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if account is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the total volume which can be used by this account", + "name": "volumelimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of projects the account can own", + "name": "projectlimit", "type": "string" - } - ] - }, - { - "description": "Lists supported Kubernetes version", - "isasync": false, - "name": "listKubernetesSupportedVersions", - "params": [ - { - "description": "the ID of the zone in which Kubernetes supported version will be available", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "details for the account", + "name": "accountdetails", + "type": "map" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "the total number of networks owned by account", + "name": "networktotal", + "type": "long" }, { - "description": "the ID of the Kubernetes supported version", - "length": 255, - "name": "id", - "related": "listKubernetesSupportedVersions", - "required": false, - "type": "uuid" + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" }, { - "description": "the minimum semantic version for the Kubernetes supported version to be listed", - "length": 255, - "name": "minimumsemanticversion", - "required": false, - "type": "string" - }, + "description": "the total number of vpcs owned by account", + "name": "vpctotal", + "type": "long" + } + ] + }, + { + "description": "Cancels maintenance for primary storage", + "isasync": true, + "name": "cancelStorageMaintenance", + "params": [ { - "description": "the ID of the minimum Kubernetes supported version", + "description": "the primary storage ID", "length": 255, - "name": "minimumkubernetesversionid", - "related": "listKubernetesSupportedVersions", - "required": false, + "name": "id", + "related": "cancelStorageMaintenance", + "required": true, "type": "uuid" } ], "related": "", "response": [ { - "description": "Kubernetes semantic version", - "name": "semanticversion", - "type": "string" + "description": "whether this pool is managed or not", + "name": "managed", + "type": "boolean" }, { - "description": "the name of the binaries ISO for Kubernetes supported version", - "name": "isoname", + "description": "the name of the storage pool", + "name": "name", "type": "string" }, { - "description": "the id of the binaries ISO for Kubernetes supported version", - "name": "isoid", + "description": "the ID of the cluster for the storage pool", + "name": "clusterid", "type": "string" }, + {}, { - "description": "Name of the Kubernetes supported version", - "name": "name", + "description": "the storage pool path", + "name": "path", "type": "string" }, { - "description": "the date when this Kubernetes supported version was created", - "name": "created", - "type": "date" + "description": "total min IOPS currently in use by volumes", + "name": "allocatediops", + "type": "long" }, { - "description": "the name of the zone in which Kubernetes supported version is available", - "name": "zonename", + "description": "the ID of the storage pool", + "name": "id", "type": "string" }, { - "description": "whether Kubernetes supported version supports Autoscaling", - "name": "supportsautoscaling", + "description": "true if this pool is suitable to migrate a volume, false otherwise", + "name": "suitableformigration", "type": "boolean" }, - {}, { - "description": "the id of the Kubernetes supported version", - "name": "id", - "type": "string" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "the enabled or disabled state of the Kubernetes supported version", - "name": "state", - "type": "string" + "description": "the total disk size of the storage pool", + "name": "disksizetotal", + "type": "long" }, { - "description": "the minimum RAM size in MB needed for the Kubernetes supported version", - "name": "minmemory", - "type": "integer" + "description": "IOPS CloudStack can provision from this storage pool", + "name": "capacityiops", + "type": "long" }, { - "description": "KVM Only: true if the ISO for the Kubernetes supported version is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", "type": "boolean" }, { - "description": "whether Kubernetes supported version supports HA, multi-control nodes", - "name": "supportsha", - "type": "boolean" + "description": "the IP address of the storage pool", + "name": "ipaddress", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the Pod name of the storage pool", + "name": "podname", + "type": "string" }, - {}, { - "description": "the id of the zone in which Kubernetes supported version is available", - "name": "zoneid", + "description": "Storage provider for this pool", + "name": "provider", "type": "string" }, { - "description": "the minimum number of CPUs needed for the Kubernetes supported version", - "name": "mincpunumber", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, + {}, { - "description": "the state of the binaries ISO for Kubernetes supported version", - "name": "isostate", + "description": "the tags for the storage pool", + "name": "tags", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ] - }, - { - "description": "Adds a Nicira NVP device", - "isasync": true, - "name": "addNiciraNvpDevice", - "params": [ - { - "description": "Credentials to access the Nicira Controller API", - "length": 255, - "name": "username", - "required": true, + "description": "the overprovisionfactor for the storage pool", + "name": "overprovisionfactor", "type": "string" }, { - "description": "The L2 Gateway Service UUID configured on the Nicira Controller", - "length": 255, - "name": "l2gatewayserviceuuid", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Hostname of ip address of the Nicira NVP Controller.", - "length": 255, - "name": "hostname", - "required": true, + "description": "the scope of the storage pool", + "name": "scope", "type": "string" }, { - "description": "Credentials to access the Nicira Controller API", - "length": 255, - "name": "password", - "required": true, + "description": "the Zone name of the storage pool", + "name": "zonename", "type": "string" }, { - "description": "The L3 Gateway Service UUID configured on the Nicira Controller", - "length": 255, - "name": "l3gatewayserviceuuid", - "required": false, - "type": "string" + "description": "the storage pool capabilities", + "name": "storagecapabilities", + "type": "map" }, { - "description": "The Transportzone UUID configured on the Nicira Controller", - "length": 255, - "name": "transportzoneuuid", - "required": true, + "description": "the name of the cluster for the storage pool", + "name": "clustername", "type": "string" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the date and time the storage pool was created", + "name": "created", + "type": "date" }, { - "description": "the controller Ip address", - "name": "hostname", - "type": "string" + "description": "the state of the storage pool", + "name": "state", + "type": "storagepoolstatus" }, { - "description": "device name", - "name": "niciradevicename", - "type": "string" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "device id of the Nicire Nvp", - "name": "nvpdeviceid", + "description": "the storage pool type", + "name": "type", "type": "string" }, { - "description": "this L3 gateway service Uuid", - "name": "l3gatewayserviceuuid", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "this L2 gateway service Uuid", - "name": "l2gatewayserviceuuid", + "description": "the Pod ID of the storage pool", + "name": "podid", "type": "string" }, - {}, { - "description": "the transport zone Uuid", - "name": "transportzoneuuid", + "description": "the nfs mount options for the storage pool", + "name": "nfsmountopts", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the storage pool custom stats", + "name": "storagecustomstats", + "type": "map" }, { - "description": "name of the provider", - "name": "provider", + "description": "the Zone ID of the storage pool", + "name": "zoneid", "type": "string" }, { - "description": "the physical network to which this Nirica Nvp belongs to", - "name": "physicalnetworkid", + "description": "the hypervisor type of the storage pool", + "name": "hypervisor", "type": "string" } ] }, { - "description": "Lists infrastructure", - "isasync": false, - "name": "listInfrastructure", - "params": [], + "description": "Destroys a router.", + "isasync": true, + "name": "destroyRouter", + "params": [ + { + "description": "the ID of the router", + "length": 255, + "name": "id", + "related": "destroyRouter", + "required": true, + "type": "uuid" + } + ], "related": "", "response": [ - {}, { - "description": "Number of Alerts", - "name": "alerts", - "type": "integer" + "description": "the public IP address for the router", + "name": "publicip", + "type": "string" }, { - "description": "Number of routers", - "name": "routers", - "type": "integer" + "description": "the first DNS for the router", + "name": "dns1", + "type": "string" }, { - "description": "Number of object stores", - "name": "objectstores", - "type": "integer" + "description": "the account associated with the router", + "name": "account", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the list of nics associated with the router", + "name": "nic", + "response": [ + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + } + ], + "type": "set" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the link local MAC address for the router", + "name": "linklocalmacaddress", "type": "string" }, { - "description": "Number of zones", - "name": "zones", - "type": "integer" + "description": "the name of the router", + "name": "name", + "type": "string" }, { - "description": "Number of management servers", - "name": "managementservers", - "type": "integer" + "description": "the host ID for the router", + "name": "hostid", + "type": "string" }, { - "description": "Number of hypervisor hosts", - "name": "hosts", - "type": "integer" + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" }, { - "description": "Number of systemvms", - "name": "systemvms", - "type": "integer" + "description": "the state of redundant virtual router", + "name": "redundantstate", + "type": "string" }, { - "description": "Number of clusters", - "name": "clusters", - "type": "integer" + "description": "the template name for the router", + "name": "templatename", + "type": "string" }, { - "description": "Number of pods", - "name": "pods", - "type": "integer" + "description": "the network domain for the router", + "name": "networkdomain", + "type": "string" }, { - "description": "Number of cpu sockets", - "name": "cpusockets", - "type": "integer" + "description": "the guest netmask for the router", + "name": "guestnetmask", + "type": "string" }, { - "description": "Number of images stores", - "name": "imagestores", - "type": "integer" + "description": "role of the domain router", + "name": "role", + "type": "string" }, { - "description": "Number of internal LBs", - "name": "ilbvms", - "type": "integer" + "description": "the template ID for the router", + "name": "templateid", + "type": "string" }, { - "description": "Number of storage pools", - "name": "storagepools", - "type": "integer" + "description": "the second DNS for the router", + "name": "dns2", + "type": "string" }, - {} - ], - "since": "4.9.3" - }, - { - "description": "Lists usage records for accounts", - "isasync": false, - "name": "listUsageRecords", - "params": [ { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the date and time the router was created", + "name": "created", + "type": "date" }, { - "description": "List usage records for the specified usage UUID. Can be used only together with TYPE parameter.", - "length": 255, - "name": "usageid", - "required": false, + "description": "the link local netmask for the router", + "name": "linklocalnetmask", "type": "string" }, { - "description": "Flag to enable description rendered in old format which uses internal database IDs instead of UUIDs. False by default.", - "length": 255, - "name": "oldformat", - "required": false, - "type": "boolean" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the ID of the corresponding link local network", + "name": "linklocalnetworkid", "type": "string" }, + {}, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the guest IP address for the router", + "name": "guestipaddress", + "type": "string" }, { - "description": "Specify if usage records should be fetched recursively per domain. If an account id is passed, records will be limited to that account.", - "length": 255, - "name": "isrecursive", - "required": false, - "since": "4.15", - "type": "boolean" + "description": "the state of the router", + "name": "state", + "type": "state" }, { - "description": "List usage records for the specified user.", - "length": 255, - "name": "account", - "required": false, + "description": "the domain ID associated with the router", + "name": "domainid", "type": "string" }, { - "description": "List usage records for the specified domain.", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "the ID of the corresponding public network", + "name": "publicnetworkid", + "type": "string" }, { - "description": "End date range for usage record query. The recommended format is \"yyyy-MM-dd'T'HH:mm:ssZ\" (e.g.: \"2023-01-01T12:00:00+0100\"); however, the following formats are also accepted: \"yyyy-MM-dd HH:mm:ss\" (e.g.: \"2023-01-01 12:00:00\") and \"yyyy-MM-dd\" (e.g.: \"2023-01-01\" - if the time is not added, it will be interpreted as \"23:59:59\"). If the recommended format is not used, the date will be considered in the server timezone.", - "length": 255, - "name": "enddate", - "required": true, - "type": "date" + "description": "the project name of the address", + "name": "project", + "type": "string" }, { - "description": "Flag to enable display of Tags for a resource", - "length": 255, - "name": "includetags", - "required": false, - "type": "boolean" + "description": "the version of scripts", + "name": "scriptsversion", + "type": "string" }, { - "description": "List usage records for the specified usage type", - "length": 255, - "name": "type", - "required": false, - "type": "long" + "description": "the hostname for the router", + "name": "hostname", + "type": "string" }, { - "description": "Start date range for usage record query. The recommended format is \"yyyy-MM-dd'T'HH:mm:ssZ\" (e.g.: \"2023-01-01T12:00:00+0100\"); however, the following formats are also accepted: \"yyyy-MM-dd HH:mm:ss\" (e.g.: \"2023-01-01 12:00:00\") and \"yyyy-MM-dd\" (e.g.: \"2023-01-01\" - if the time is not added, it will be interpreted as \"00:00:00\"). If the recommended format is not used, the date will be considered in the server timezone.", - "length": 255, - "name": "startdate", - "required": true, - "type": "date" + "description": "if this router is an redundant virtual router", + "name": "isredundantrouter", + "type": "boolean" }, { - "description": "List usage records for the specified account", - "length": 255, - "name": "accountid", - "related": "enableAccount,listAccounts", - "required": false, - "type": "uuid" + "description": "the link local IP address for the router", + "name": "linklocalip", + "type": "string" }, { - "description": "List usage records for specified project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the domain ID", - "name": "domainid", + "description": "the public netmask for the router", + "name": "publicnetmask", "type": "string" }, { - "description": "path of the domain to which the usage reocrd belongs", - "name": "domainpath", + "description": "the domain associated with the router", + "name": "domain", "type": "string" }, { - "description": "the project id of the resource", - "name": "projectid", + "description": "the Pod name for the router", + "name": "podname", "type": "string" }, { - "description": "speed of each cpu of resource", - "name": "cpuspeed", - "type": "long" + "description": "the public MAC address for the router", + "name": "publicmacaddress", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the id of the router", + "name": "id", + "type": "string" }, { - "description": "the project name of the resource", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "virtual machine os type ID", - "name": "ostypeid", + "description": "the version of template", + "name": "version", "type": "string" }, { - "description": "virtual machine os category name", - "name": "oscategoryname", + "description": "the Zone ID for the router", + "name": "zoneid", "type": "string" }, { - "description": "True if the IPAddress is source NAT", - "name": "issourcenat", - "type": "boolean" + "description": "the name of the corresponding guest network", + "name": "guestnetworkname", + "type": "string" }, { - "description": "virtual machine os display name", - "name": "osdisplayname", + "description": "the project id of the ipaddress", + "name": "projectid", "type": "string" }, { - "description": "the domain the resource is associated with", - "name": "domain", + "description": "path of the Domain the router belongs to", + "name": "domainpath", "type": "string" }, { - "description": "virtual machine ID", - "name": "virtualmachineid", + "description": "VPC the router belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the user account Id", - "name": "accountid", + "description": "the control state of the host for the router", + "name": "hostcontrolstate", "type": "string" }, { - "description": "memory allocated for the resource", - "name": "memory", - "type": "long" + "description": "the guest MAC address for the router", + "name": "guestmacaddress", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the first IPv6 DNS for the router", + "name": "ip6dns1", "type": "string" }, { - "description": "raw usage in hours", - "name": "rawusage", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "template ID", - "name": "templateid", + "description": "the Zone name for the router", + "name": "zonename", "type": "string" }, { - "description": "start date of the usage record", - "name": "startdate", - "type": "date" + "description": "the ID of the corresponding guest network", + "name": "guestnetworkid", + "type": "string" }, { - "description": "end date of the usage record", - "name": "enddate", - "type": "date" + "description": "the gateway for the router", + "name": "gateway", + "type": "string" }, { - "description": "resource type", - "name": "type", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "virtual size of resource", - "name": "virtualsize", - "type": "long" + "description": "true if the router template requires upgrader", + "name": "requiresupgrade", + "type": "boolean" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "Last executed health check result for the router", + "name": "healthcheckresults", "response": [ { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the name of the health check on the router", + "name": "checkname", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "detailed response generated on running health check", + "name": "details", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" + "description": "result of the health check", + "name": "success", + "type": "boolean" }, { - "description": "id of the resource", - "name": "resourceid", - "type": "string" + "description": "the date this VPC was created", + "name": "lastupdated", + "type": "date" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the type of the health check - basic or advanced", + "name": "checktype", "type": "string" } ], - "type": "set" + "type": "list" }, - {}, { - "description": "the user account name", - "name": "account", + "description": "the Pod ID for the router", + "name": "podid", "type": "string" }, { - "description": "resource or virtual machine name", - "name": "name", + "description": "the version of the code / software in the router", + "name": "softwareversion", "type": "string" }, - { - "description": "True if the IPAddress is system IP - allocated during vm deploy or lb rule create", - "name": "issystem", - "type": "boolean" - }, { "description": "true if the entity/resource has annotations", "name": "hasannotations", "type": "boolean" }, { - "description": "offering ID", - "name": "offeringid", - "type": "string" - }, - { - "description": "id of the vpc", - "name": "vpcid", - "type": "string" - }, - { - "description": "id of the network", - "name": "networkid", - "type": "string" - }, - {}, - { - "description": "the zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "True if the resource is default", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "usage in hours", - "name": "usage", - "type": "string" - }, - { - "description": "usage type ID", - "name": "usagetype", - "type": "integer" - }, - { - "description": "description of the usage record", - "name": "description", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, - { - "description": "number of cpu of resource", - "name": "cpunumber", - "type": "long" + { + "description": "true if any health checks had failed", + "name": "healthchecksfailed", + "type": "boolean" }, { - "description": "virtual machine guest os category ID", - "name": "oscategoryid", + "description": "the second IPv6 DNS for the router", + "name": "ip6dns2", "type": "string" }, { - "description": "id of the resource", - "name": "usageid", + "description": "the name of VPC the router belongs to", + "name": "vpcname", "type": "string" }, - { - "description": "resource size", - "name": "size", - "type": "long" - } + {} ] }, { - "description": "Recovers a Destroy volume.", - "isasync": false, - "name": "recoverVolume", + "description": "Updates the snapshot policy.", + "isasync": true, + "name": "updateSnapshotPolicy", "params": [ { - "description": "The ID of the volume", + "description": "the ID of the snapshot policy", "length": 255, "name": "id", - "related": "createVolume,recoverVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", - "required": true, + "related": "updateSnapshotPolicy", + "required": false, "type": "uuid" + }, + { + "description": "an optional field, whether to the display the snapshot policy to the end user or not.", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + }, + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", + "type": "string" } ], - "related": "createVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "related": "", "response": [ { "description": "true if the entity/resource has annotations", @@ -139263,13 +133839,24 @@ "type": "boolean" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "the interval type of the snapshot policy", + "name": "intervaltype", + "type": "short" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "the time zone of the snapshot policy", + "name": "timezone", + "type": "string" + }, + {}, + { + "description": "The list of zones in which snapshot backup is scheduled", + "name": "zone", + "type": "set" + }, + { + "description": "the ID of the disk volume", + "name": "volumeid", "type": "string" }, { @@ -139277,18 +133864,18 @@ "name": "tags", "response": [ { - "description": "customer associated with the tag", - "name": "customer", + "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 id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { @@ -139297,198 +133884,287 @@ "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" } ], "type": "set" }, - {}, { - "description": "ID of the availability zone", - "name": "zoneid", - "type": "string" + "description": "maximum number of snapshots retained", + "name": "maxsnaps", + "type": "int" }, + {}, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the ID of the snapshot policy", + "name": "id", "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "time the snapshot is scheduled to be taken.", + "name": "schedule", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", + "description": "is this policy for display to the regular user", + "name": "fordisplay", "type": "boolean" + } + ] + }, + { + "description": "Retrieves the current status of asynchronous job.", + "isasync": false, + "name": "queryAsyncJobResult", + "params": [ + { + "description": "the ID of the asynchronous job", + "length": 255, + "name": "jobid", + "related": "queryAsyncJobResult", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": " the completed date of the job", + "name": "completed", + "type": "date" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", + "description": "the account id that executed the async command", + "name": "accountid", "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": " the created date of the job", + "name": "created", + "type": "date" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the domain id that executed the async command", + "name": "domainid", "type": "string" }, { - "description": "the status of the volume", - "name": "status", + "description": "the user that executed the async command", + "name": "userid", "type": "string" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the result type", + "name": "jobresulttype", "type": "string" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "the account that executed the async command", + "name": "account", "type": "string" }, {}, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the current job status-should be 0 for PENDING", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the instance/entity object related to the job", + "name": "jobinstancetype", "type": "string" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" + "description": "the progress information of the PENDING job", + "name": "jobprocstatus", + "type": "integer" }, { - "description": "name of the disk volume", - "name": "name", + "description": "the result code for the job", + "name": "jobresultcode", + "type": "integer" + }, + { + "description": "the unique ID of the instance/entity object related to the job", + "name": "jobinstanceid", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", + "description": "the result reason", + "name": "jobresult", + "type": "responseobject" + }, + { + "description": "the async command executed", + "name": "cmd", + "type": "string" + }, + { + "description": "the domain that executed the async command", + "name": "domainpath", + "type": "string" + }, + { + "description": "the msid of the management server on which the job is running", + "name": "managementserverid", "type": "long" }, + {} + ] + }, + { + "description": "Adds a netscaler control center device", + "isasync": true, + "name": "registerNetscalerControlCenter", + "params": [ { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" + "description": "Credentials to reach netscaler controlcenter device", + "length": 255, + "name": "username", + "required": true, + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Credentials to reach netscaler controlcenter device", + "length": 255, + "name": "numretries", + "required": true, + "type": "integer" + }, + { + "description": "Credentials to reach netscaler controlcenter device", + "length": 255, + "name": "password", + "required": true, "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "URL of the netscaler controlcenter appliance.", + "length": 255, + "name": "ipaddress", + "required": true, + "type": "string" + } + ], + "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers", + "response": [ + { + "description": "name of the provider", + "name": "provider", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", + "description": "device capacity", + "name": "lbdevicecapacity", "type": "long" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "the physical network to which this netscaler device belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the public interface of the load balancer", + "name": "publicinterface", + "type": "string" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", + "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", + "name": "isexclusivegslbprovider", + "type": "boolean" + }, + { + "description": "the private interface of the load balancer", + "name": "privateinterface", "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "true if device is dedicated for an account", + "name": "lbdevicededicated", + "type": "boolean" }, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "public IP of the NetScaler representing GSLB site", + "name": "gslbproviderpublicip", "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "private IP of the NetScaler representing GSLB site", + "name": "gslbproviderprivateip", + "type": "string" }, + {}, { - "description": "size of the disk volume", - "name": "size", - "type": "long" + "description": "true if NetScaler device is provisioned to be a GSLB service provider", + "name": "gslbprovider", + "type": "boolean" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "name": "podids", + "type": "list" + }, + {}, + { + "description": "device id of the netscaler load balancer", + "name": "lbdeviceid", "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "device name", + "name": "lbdevicename", "type": "string" }, { @@ -139497,300 +134173,600 @@ "type": "integer" }, { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the management IP address of the external load balancer", + "name": "ipaddress", "type": "string" }, { - "description": "ID of the disk volume", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "device state", + "name": "lbdevicestate", + "type": "string" + } + ] + }, + { + "description": "Lists image stores.", + "isasync": false, + "name": "listImageStores", + "params": [ + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "the Zone ID for the image store", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": false, + "type": "uuid" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the image store provider", + "length": 255, + "name": "provider", + "required": false, "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the path of the volume", - "name": "path", - "type": "string" + "description": "read-only status of the image store", + "length": 255, + "name": "readonly", + "related": "listImageStores", + "required": false, + "since": "4.15.0", + "type": "boolean" }, { - "description": "the chain info of the volume", - "name": "chaininfo", - "type": "string" + "description": "the ID of the storage pool", + "length": 255, + "name": "id", + "related": "listImageStores", + "required": false, + "type": "uuid" }, { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the name of the image store", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", + "description": "the image store protocol", + "length": 255, + "name": "protocol", + "required": false, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "the name of the image store", + "name": "name", "type": "string" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "the protocol of the image store", + "name": "protocol", "type": "string" }, { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "the scope of the image store", + "name": "scope", + "type": "scopetype" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "the provider name of the image store", + "name": "providername", + "type": "string" }, + {}, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "the Zone name of the image store", + "name": "zonename", "type": "string" }, + {}, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", + "description": "the total disk size of the host", + "name": "disksizetotal", "type": "long" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", - "type": "string" + "description": "defines if store is read-only", + "name": "readonly", + "type": "boolean" }, { - "description": "pod id of the volume", - "name": "podid", - "type": "string" + "description": "the host's currently used disk size", + "name": "disksizeused", + "type": "long" }, { - "description": "shared or local storage", - "name": "storagetype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the url of the image store", + "name": "url", "type": "string" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "the ID of the image store", + "name": "id", "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the Zone ID of the image store", + "name": "zoneid", + "type": "string" + } + ], + "since": "4.2.0" + }, + { + "description": "Deletes a account, and all users associated with this account", + "isasync": true, + "name": "deleteAccount", + "params": [ + { + "description": "Account id", + "length": 255, + "name": "id", + "related": "enableAccount,listAccounts", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "the project name of the vpn", - "name": "project", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "Adds metric counter for VM auto scaling", + "isasync": true, + "name": "createCounter", + "params": [ + { + "description": "Value of the counter e.g. oid in case of snmp.", + "length": 255, + "name": "value", + "required": true, + "type": "string" }, { - "description": "pod name of the volume", - "name": "podname", + "description": "Source of the counter.", + "length": 255, + "name": "source", + "required": true, "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" + "description": "Network provider of the counter.", + "length": 255, + "name": "provider", + "required": true, + "since": "4.18.0", + "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "Name of the counter.", + "length": 255, + "name": "name", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "Source of the counter.", + "name": "source", "type": "string" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "the id of the Counter", + "name": "id", "type": "string" }, + {}, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "Value in case of snmp or other specific counters.", + "name": "value", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "zone id of counter", + "name": "zoneid", "type": "string" }, { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "Provider of the counter.", + "name": "provider", + "type": "string" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "Name of the counter.", + "name": "name", + "type": "string" } - ], - "since": "4.14.0" + ] }, { - "description": "remove Tungsten-Fabric network gateway from logical router", - "isasync": true, - "name": "removeTungstenFabricNetworkGatewayFromLogicalRouter", - "params": [ + "description": "List Event Types", + "isasync": false, + "name": "listEventTypes", + "params": [], + "related": "", + "response": [ + {}, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "description": "Event Type", + "name": "name", + "type": "string" }, + {}, { - "description": "Tungsten-Fabric network uuid", - "length": 255, - "name": "networkuuid", - "required": true, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric logical router uuid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "Disables out-of-band management for a cluster", + "isasync": true, + "name": "disableOutOfBandManagementForCluster", + "params": [ + { + "description": "the ID of the cluster", "length": 255, - "name": "logicalrouteruuid", + "name": "clusterid", + "related": "addCluster", "required": true, - "type": "string" + "type": "uuid" } ], "related": "", "response": [ + {}, { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" + "description": "the out-of-band management driver for the host", + "name": "driver", + "type": "string" + }, + { + "description": "the out-of-band management interface address", + "name": "address", + "type": "string" + }, + { + "description": "the out-of-band management interface username", + "name": "username", + "type": "string" }, {}, { - "description": "list Tungsten-Fabric policy network name", - "name": "network", - "type": "list" + "description": "the operation result description", + "name": "description", + "type": "string" + }, + { + "description": "the out-of-band management action (if issued)", + "name": "action", + "type": "string" + }, + { + "description": "the out-of-band management interface powerState of the host", + "name": "powerstate", + "type": "powerstate" + }, + { + "description": "the operation result", + "name": "status", + "type": "boolean" + }, + { + "description": "true if out-of-band management is enabled for the host", + "name": "enabled", + "type": "boolean" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + { + "description": "the out-of-band management interface password", + "name": "password", + "type": "string" + }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, { - "description": "Tungsten-Fabric logical router name", - "name": "name", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "Tungsten-Fabric logical router uuid", - "name": "uuid", + "description": "the out-of-band management interface port", + "name": "port", "type": "string" + } + ], + "since": "4.9.0" + }, + { + "description": "Prepares CloudStack for a safe manual shutdown by preventing new jobs from being accepted", + "isasync": false, + "name": "prepareForShutdown", + "params": [ + { + "description": "the uuid of the management server", + "length": 255, + "name": "managementserverid", + "related": "", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Tungsten-Fabric provider zone name", - "name": "zonename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + }, + {}, + { + "description": "Indicates whether a shutdown has been triggered", + "name": "shutdowntriggered", + "type": "boolean" + }, + {}, + { + "description": "Indicates whether CloudStack is ready to shutdown", + "name": "readyforshutdown", + "type": "boolean" + }, + { + "description": "The number of jobs in progress", + "name": "pendingjobscount", + "type": "long" + }, + { + "description": "The id of the management server", + "name": "managementserverid", + "type": "long" } - ] + ], + "since": "4.19.0" }, { - "description": "Lists unmanaged volumes on a storage pool", + "description": "Adds a new cluster", "isasync": false, - "name": "listVolumesForImport", + "name": "addCluster", "params": [ { - "description": "", + "description": "Type of virtual switch used for guest traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)", "length": 255, - "name": "page", + "name": "guestvswitchtype", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the path of the volume on the storage pool", + "description": "type of the cluster: CloudManaged, ExternalManaged", "length": 255, - "name": "path", + "name": "clustertype", + "required": true, + "type": "string" + }, + { + "description": "hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator,Ovm3", + "length": 255, + "name": "hypervisor", + "required": true, + "type": "string" + }, + { + "description": "the CPU arch of the cluster. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", "required": false, + "since": "4.20", "type": "string" }, { - "description": "the ID of the storage pool", + "description": "Type of virtual switch used for public traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)", "length": 255, - "name": "storageid", - "related": "cancelStorageMaintenance,createStoragePool,findStoragePoolsForMigration,enableStorageMaintenance", + "name": "publicvswitchtype", + "required": false, + "type": "string" + }, + { + "description": "the password for the VSM associated with this cluster", + "length": 255, + "name": "vsmpassword", + "required": false, + "type": "string" + }, + { + "description": "the ipaddress of the VSM associated with this cluster", + "length": 255, + "name": "vsmipaddress", + "required": false, + "type": "string" + }, + { + "description": "Allocation state of this cluster for allocation of new resources", + "length": 255, + "name": "allocationstate", + "required": false, + "type": "string" + }, + { + "description": "the Pod ID for the host", + "length": 255, + "name": "podid", + "related": "createManagementNetworkIpRange", "required": true, "type": "uuid" }, { - "description": "", + "description": "the username for the VSM associated with this cluster", "length": 255, - "name": "pagesize", + "name": "vsmusername", "required": false, - "type": "integer" + "type": "string" }, { - "description": "List by keyword", + "description": "the Zone ID for the cluster", "length": 255, - "name": "keyword", + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" + }, + { + "description": "Name of virtual switch used for public traffic in the cluster. This would override zone wide traffic label setting.", + "length": 255, + "name": "publicvswitchname", + "required": false, + "type": "string" + }, + { + "description": "the password for the host", + "length": 255, + "name": "password", + "required": false, + "type": "string" + }, + { + "description": "the username for the cluster", + "length": 255, + "name": "username", + "required": false, + "type": "string" + }, + { + "description": "Ovm3 vip to use for pool (and cluster)", + "length": 255, + "name": "ovm3vip", + "required": false, + "type": "string" + }, + { + "description": "Ovm3 native pooling enabled for cluster", + "length": 255, + "name": "ovm3pool", + "required": false, + "type": "string" + }, + { + "description": "the cluster name", + "length": 255, + "name": "clustername", + "required": true, + "type": "string" + }, + { + "description": "the URL", + "length": 255, + "name": "url", + "required": false, + "type": "string" + }, + { + "description": "Name of virtual switch used for guest traffic in the cluster. This would override zone wide traffic label setting.", + "length": 255, + "name": "guestvswitchname", + "required": false, + "type": "string" + }, + { + "description": "Ovm3 native OCFS2 clustering enabled for cluster", + "length": 255, + "name": "ovm3cluster", "required": false, "type": "string" } @@ -139798,19 +134774,19 @@ "related": "", "response": [ { - "description": "the format of the volume", - "name": "format", + "description": "the cluster name", + "name": "name", "type": "string" }, { - "description": "volume details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the Zone name of the cluster", + "name": "zonename", + "type": "string" }, { - "description": "the name of the volume", - "name": "name", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -139818,39 +134794,126 @@ "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the Zone ID of the cluster", + "name": "zoneid", "type": "string" }, - {}, { - "description": "the virtual size of the volume", - "name": "virtualsize", - "type": "long" + "description": "the Pod name of the cluster", + "name": "podname", + "type": "string" }, { - "description": "id of the primary storage hosting the volume", - "name": "storageid", + "description": "CPU Arch of the hosts in the cluster", + "name": "arch", + "type": "string" + }, + { + "description": "the hypervisor type of the cluster", + "name": "hypervisortype", + "type": "string" + }, + { + "description": "the capacity of the Cluster", + "name": "capacity", + "response": [ + { + "description": "the Pod ID", + "name": "podid", + "type": "string" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the Cluster name", + "name": "clustername", + "type": "string" + }, + { + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Cluster ID", + "name": "clusterid", + "type": "string" + }, + { + "description": "the percentage of capacity currently in use", + "name": "percentused", + "type": "string" + }, + { + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the Pod name", + "name": "podname", + "type": "string" + }, + { + "description": "the capacity name", + "name": "name", + "type": "string" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "whether this cluster is managed by cloudstack", + "name": "managedstate", + "type": "string" + }, + {}, + { + "description": "the Pod ID of the cluster", + "name": "podid", "type": "string" }, { - "description": "the size of the volume", - "name": "size", - "type": "long" + "description": "the type of the cluster", + "name": "clustertype", + "type": "string" }, { - "description": "name of the primary storage hosting the volume", - "name": "storage", + "description": "The cpu overcommit ratio of the cluster", + "name": "cpuovercommitratio", "type": "string" }, { - "description": "the encrypt format of the volume", - "name": "encryptformat", + "description": "Ovm3 VIP to use for pooling and/or clustering", + "name": "ovm3vip", "type": "string" }, { - "description": "the full path of the volume", - "name": "fullpath", + "description": "the cluster ID", + "name": "id", "type": "string" }, { @@ -139859,368 +134922,544 @@ "type": "integer" }, { - "description": "the path of the volume", - "name": "path", + "description": "The memory overcommit ratio of the cluster", + "name": "memoryovercommitratio", "type": "string" }, {}, { - "description": "type of the primary storage hosting the volume", - "name": "storagetype", + "description": "Meta data associated with the zone (key/value pairs)", + "name": "resourcedetails", + "type": "map" + }, + { + "description": "the allocation state of the cluster", + "name": "allocationstate", "type": "string" } - ], - "since": "4.19.1" + ] }, { - "description": "Lists zone metrics", + "description": "Deletes an traffic monitor host.", "isasync": false, - "name": "listZonesMetrics", + "name": "deleteTrafficMonitor", "params": [ { - "description": "the network type of the zone that the virtual machine belongs to", + "description": "Id of the Traffic Monitor Host.", "length": 255, - "name": "networktype", - "required": false, - "type": "string" - }, + "name": "id", + "related": "addBaremetalHost,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "", - "length": 255, - "name": "page", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the ID of the zone", - "length": 255, - "name": "id", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the name of the zone", - "length": 255, - "name": "name", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, + {}, { - "description": "", + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ] + }, + { + "description": "Removes VM from specified network by deleting a NIC", + "isasync": true, + "name": "removeNicFromVirtualMachine", + "params": [ + { + "description": "NIC ID", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "nicid", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "List by keyword", + "description": "Virtual Machine ID", "length": 255, - "name": "keyword", - "required": false, + "name": "virtualmachineid", + "related": "destroyVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "required": true, + "type": "uuid" + } + ], + "related": "destroyVirtualMachine,scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "response": [ + { + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the IDs of the zones, mutually exclusive with id", - "length": 255, - "name": "ids", - "related": "listZones", - "required": false, - "since": "4.19.0", - "type": "list" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the ID of the domain associated with the zone", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "Guest vm Boot Type", + "name": "boottype", + "type": "string" }, { - "description": "List zones by resource tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "since": "4.3", - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "flag to display the resource image for the zones", - "length": 255, - "name": "showicon", - "required": false, - "type": "boolean" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false.", - "length": 255, - "name": "available", - "required": false, - "type": "boolean" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "flag to display the capacity of the zones", - "length": 255, - "name": "showcapacities", - "required": false, - "type": "boolean" - } - ], - "related": "", - "response": [ - { - "description": "the dhcp Provider for the Zone", - "name": "dhcpprovider", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, - {}, { - "description": "the name of the containing domain, null for public zones", - "name": "domainname", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "Allow end users to specify VR MTU", - "name": "allowuserspecifyvrmtu", - "type": "boolean" - }, - { - "description": "The maximum value the MTU can have on the VR's private interfaces", - "name": "routerprivateinterfacemaxmtu", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "the guest CIDR address for the Zone", - "name": "guestcidraddress", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "AS Number Range", - "name": "asnrange", + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the allocation state of the cluster", - "name": "allocationstate", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "true, if zone contains clusters and hosts from different CPU architectures", - "name": "ismultiarch", - "type": "boolean" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the maximum cpu deviation", - "name": "cpumaxdeviation", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "memory usage notification threshold exceeded", - "name": "memorythreshold", - "type": "boolean" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "the UUID of the containing domain, null for public zones", - "name": "domainid", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "memory usage disable threshold exceeded", - "name": "memorydisablethreshold", - "type": "boolean" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, { - "description": "Zone id", - "name": "id", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the second DNS for the Zone", - "name": "dns2", + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" + }, + { + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "the display text of the zone", - "name": "displaytext", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the capacity of the Zone", - "name": "capacity", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "the percentage of capacity currently in use", - "name": "percentused", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the Zone name", - "name": "zonename", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the Pod ID", - "name": "podid", + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "The tag for the capacity type", - "name": "tag", + "description": "the type of the nic", + "name": "type", "type": "string" }, { - "description": "the Zone ID", - "name": "zoneid", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "the Pod name", - "name": "podname", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "the capacity name", - "name": "name", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "the Cluster ID", - "name": "clusterid", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" }, { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" }, { - "description": "the Cluster name", - "name": "clustername", + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the capacity type", - "name": "type", - "type": "short" + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" }, { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" } ], - "type": "list" + "type": "set" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", + "type": "boolean" }, { - "description": "the total cpu allocated in Ghz", - "name": "cpuallocated", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the first DNS for the Zone", - "name": "dns1", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "Network domain name for the networks in the zone", - "name": "domain", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the first IPv6 DNS for the Zone", - "name": "ip6dns1", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "state of the cluster", - "name": "state", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the total cpu used in GiB", - "name": "memoryused", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, - {}, { - "description": "cpu usage disable threshold exceeded", - "name": "cpudisablethreshold", - "type": "boolean" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "the type of the zone - core or edge", - "name": "type", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the maximum memory deviation", - "name": "memorymaxdeviation", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "cpu allocated disable threshold exceeded", - "name": "cpuallocateddisablethreshold", + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "Zone description", - "name": "description", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the total cpu capacity in GiB", - "name": "memorytotal", + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "true if security groups support is enabled, false otherwise", - "name": "securitygroupsenabled", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" + }, + { + "description": "the format of the template for the virtual machine", + "name": "templateformat", + "type": "string" + }, + { + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": "the total cpu capacity in Ghz", - "name": "cputotal", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the network type of the zone; can be Basic or Advanced", - "name": "networktype", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "memory allocated disable threshold exceeded", - "name": "memoryallocateddisablethreshold", - "type": "boolean" + "description": "OS type id of the vm", + "name": "ostypeid", + "type": "string" }, { - "description": "true, if zone is NSX enabled", - "name": "isnsxenabled", + "description": "the state of the virtual machine", + "name": "state", + "type": "string" + }, + { + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, + {}, { - "description": "the second IPv6 DNS for the Zone", - "name": "ip6dns2", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { @@ -140229,492 +135468,776 @@ "type": "boolean" }, { - "description": "the total cpu allocated in GiB", - "name": "memoryallocated", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "Zone Token", - "name": "zonetoken", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "true if local storage offering enabled, false otherwise", - "name": "localstorageenabled", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "memory allocated notification threshold exceeded", - "name": "memoryallocatedthreshold", - "type": "boolean" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "cpu usage notification threshold exceeded", - "name": "cputhreshold", - "type": "boolean" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "the total cpu used in Ghz", - "name": "cpuused", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "Zone name", - "name": "name", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "healthy / total clusters in the zone", - "name": "clusters", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the second internal DNS for the Zone", - "name": "internaldns2", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, + {}, { - "description": "The maximum value the MTU can have on the VR's public interfaces", - "name": "routerpublicinterfacemaxmtu", + "description": "the memory allocated for the virtual machine", + "name": "memory", "type": "integer" }, { - "description": "the first internal DNS for the Zone", - "name": "internaldns1", + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "cpu allocated notification threshold exceeded", - "name": "cpuallocatedthreshold", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", + "type": "string" + }, + { + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" + }, + { + "description": "the name of userdata used for the VM", + "name": "userdataname", + "type": "string" + }, + { + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "the list of resource tags associated with zone.", - "name": "tags", + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", + "type": "string" + }, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", + "description": "the project ID of the affinity group", "name": "projectid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the ID of the affinity group", + "name": "id", "type": "string" } ], "type": "set" - } - ], - "since": "4.9.3" - }, - { - "description": "Extracts a template", - "isasync": true, - "name": "extractTemplate", - "params": [ + }, { - "description": "the ID of the zone where the ISO is originally located", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD", - "length": 255, - "name": "mode", - "required": true, + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the url to which the ISO would be extracted", - "length": 2048, - "name": "url", - "required": false, + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the ID of the template", - "length": 255, - "name": "id", - "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" - } - ], - "related": "extractSnapshot", - "response": [ - { - "description": "the state of the extracted object", - "name": "state", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the percentage of the entity uploaded to the specified location", - "name": "uploadpercentage", - "type": "integer" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, { - "description": "the status of the extraction", - "name": "status", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, - {}, { - "description": "", - "name": "resultstring", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "zone name the object was extracted from", - "name": "zonename", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the mode of extraction - upload or download", - "name": "extractMode", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "the name of the extracted object", - "name": "name", - "type": "string" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "type of the storage", - "name": "storagetype", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the time and date the object was created", - "name": "created", - "type": "date" + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the account id to which the extracted object belongs", - "name": "accountid", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "zone ID the object was extracted from", - "name": "zoneid", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the id of extracted object", - "name": "id", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, {}, { - "description": "the upload id of extracted object", - "name": "extractId", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", - "name": "url", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Expunge a virtual machine. Once expunged, it cannot be recoverd.", - "isasync": true, - "name": "expungeVirtualMachine", - "params": [ - { - "description": "The ID of the virtual machine", - "length": 255, - "name": "id", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, - {}, - { - "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", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" } ] }, { - "description": "Updates an IP address", + "description": "Activates a project", "isasync": true, - "name": "updateIpAddress", + "name": "activateProject", "params": [ { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", - "type": "string" - }, - { - "description": "an optional field, whether to the display the IP to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "the ID of the public IP address to update", + "description": "id of the project to be modified", "length": 255, "name": "id", - "related": "updateIpAddress,associateIpAddress,listPublicIpAddresses", + "related": "activateProject", "required": true, "type": "uuid" } ], - "related": "associateIpAddress,listPublicIpAddresses", + "related": "", "response": [ { - "description": "the name of the Network associated with the IP address", - "name": "associatednetworkname", - "type": "string" - }, - { - "description": "is public ip for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "is public IP portable across the zones", - "name": "isportable", - "type": "boolean" - }, - { - "description": "virtual machine display name the ip address is assigned to (not null only for static nat Ip)", - "name": "virtualmachinedisplayname", - "type": "string" - }, - { - "description": "the ID of the VLAN associated with the IP address. This parameter is visible to ROOT admins only", - "name": "vlanid", - "type": "string" - }, - { - "description": "the project name of the address", - "name": "project", + "description": "the state of the project", + "name": "state", "type": "string" }, { - "description": "VPC id the ip belongs to", - "name": "vpcid", + "description": "the total number of vpcs the project can own", + "name": "vpclimit", "type": "string" }, { - "description": "purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value", - "name": "purpose", + "description": "the total primary storage space (in GiB) the project can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "the VLAN associated with the IP address", - "name": "vlanname", + "description": "the displaytext of the project", + "name": "displaytext", "type": "string" }, - {}, { - "description": "true if range is dedicated for System VMs", - "name": "forsystemvms", - "type": "boolean" + "description": "the total number of public ip addresses allocated for this project", + "name": "iptotal", + "type": "long" }, { - "description": "the domain ID the public IP address is associated with", - "name": "domainid", + "description": "the total number of vpcs available to be created for this project", + "name": "vpcavailable", "type": "string" }, { - "description": "virtual machine type the ip address is assigned to", - "name": "virtualmachinetype", + "description": "the total number of networks available to be created for this project", + "name": "networkavailable", "type": "string" }, { - "description": "public IP address", - "name": "ipaddress", + "description": "the total memory (in MB) the project can own", + "name": "memorylimit", "type": "string" }, { - "description": "true if this ip is system ip (was allocated as a part of deployVm or createLbRule)", - "name": "issystem", - "type": "boolean" + "description": "the total volume being used by this project", + "name": "volumetotal", + "type": "long" }, { - "description": "the domain the public IP address is associated with", - "name": "domain", + "description": "the total volume available for this project", + "name": "volumeavailable", "type": "string" }, { - "description": "the ID of the Network associated with the IP address", - "name": "associatednetworkid", - "type": "string" + "description": "the total number of cpu cores owned by project", + "name": "cputotal", + "type": "long" }, { - "description": "the account the public IP address is associated with", - "name": "account", + "description": "the id of the project", + "name": "id", "type": "string" }, { - "description": "true if this ip is for static nat, false otherwise", - "name": "isstaticnat", - "type": "boolean" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", + "description": "the total number of snapshots which can be stored by this project", + "name": "snapshotlimit", "type": "string" }, { - "description": "virtual machine id the ip address is assigned to", - "name": "virtualmachineid", + "description": "the total number of templates which can be created by this project", + "name": "templatelimit", "type": "string" }, - {}, { - "description": "the ID of the Network where ip belongs to", - "name": "networkid", + "description": "the total memory (in MB) available to be created for this project", + "name": "memoryavailable", "type": "string" }, { - "description": "State of the ip address. Can be: Allocating, Allocated, Releasing, Reserved and Free", - "name": "state", - "type": "string" + "description": "the total number of snapshots stored by this project", + "name": "snapshottotal", + "type": "long" }, { - "description": "true if the IP address is a source nat address, false otherwise", - "name": "issourcenat", - "type": "boolean" + "description": "The tagged resource limit and count for the project", + "name": "taggedresources", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the total number of virtual machines running for this project", + "name": "vmrunning", "type": "integer" }, { - "description": "the ID of the zone the public IP address belongs to", - "name": "zoneid", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the virtual network for the IP address", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the date this project was created", + "name": "created", + "type": "date" }, { - "description": "public IP address id", - "name": "id", + "description": "the total number of virtual machines that can be deployed by this project", + "name": "vmlimit", "type": "string" }, { - "description": "virtual machine name the ip address is assigned to", - "name": "virtualmachinename", + "description": "the total number of virtual machines available for this project to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the list of resource tags associated with ip address", + "description": "the list of resource tags associated with vm", "name": "tags", "response": [ { - "description": "resource type", - "name": "resourcetype", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { @@ -140723,23 +136246,23 @@ "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "tag value", + "name": "value", "type": "string" }, { @@ -140748,348 +136271,179 @@ "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" } ], "type": "list" }, { - "description": "the name of the zone the public IP address belongs to", - "name": "zonename", + "description": "the name of the project", + "name": "name", "type": "string" }, { - "description": "VPC name the ip belongs to", - "name": "vpcname", + "description": "the total secondary storage space (in GiB) the project can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "path of the domain to which the public IP address belongs", - "name": "domainpath", + "description": "the total volume which can be used by this project", + "name": "volumelimit", "type": "string" }, + {}, { - "description": "virtual machine (dnat) ip address (not null only for static nat Ip)", - "name": "vmipaddress", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the Network where ip belongs to", - "name": "networkname", - "type": "string" + "description": "the total secondary storage space (in GiB) owned by project", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "whether the ip address has Firewall/PortForwarding/LoadBalancing rules defined", - "name": "hasrules", - "type": "boolean" + "description": "the total number of templates available to be created by this project", + "name": "templateavailable", + "type": "string" }, { - "description": "date the public IP address was acquired", - "name": "allocated", - "type": "date" + "description": "the total number of networks owned by project", + "name": "networktotal", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of public ip addresses this project can acquire", + "name": "iplimit", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", - "type": "string" - } - ] - }, - { - "description": "moves a network to another physical network", - "isasync": true, - "name": "migrateNetwork", - "params": [ - { - "description": "true if previous network migration cmd failed", - "length": 255, - "name": "resume", - "required": false, - "type": "boolean" + "description": "the total primary storage space (in GiB) owned by project", + "name": "primarystoragetotal", + "type": "long" }, { - "description": "network offering ID", - "length": 255, - "name": "networkofferingid", - "related": "", - "required": true, - "type": "uuid" + "description": "the total memory (in MB) owned by project", + "name": "memorytotal", + "type": "long" }, { - "description": "the ID of the network", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", - "required": true, - "type": "uuid" - } - ], - "related": "createNetwork,updateNetwork,listNetworks", - "response": [ - { - "description": "display text of the network offering the network is created from", - "name": "networkofferingdisplaytext", + "description": "the total number of cpu cores the project can own", + "name": "cpulimit", "type": "string" }, { - "description": "true network requires restart", - "name": "restartrequired", - "type": "boolean" - }, - { - "description": "name of the network offering the network is created from", - "name": "networkofferingname", + "description": "the total secondary storage space (in GiB) available to be used for this project", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "ACL name associated with the VPC network", - "name": "aclname", + "description": "the domain name where the project belongs to", + "name": "domain", "type": "string" }, { - "description": "the list of resource tags associated with network", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "The BGP peers for the network", - "name": "bgppeers", - "type": "set" - }, - { - "description": "If a network is enabled for 'streched l2 subnet' then represents zones on which network currently spans", - "name": "zonesnetworkspans", - "type": "set" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the total number of virtual machines deployed by this project", + "name": "vmtotal", + "type": "long" }, { - "description": "AS NUMBER", - "name": "asnumber", + "description": "the total number of vpcs owned by project", + "name": "vpctotal", "type": "long" }, { - "description": "MTU configured on the network VR's public facing interfaces", - "name": "publicmtu", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the date this network was created", - "name": "created", - "type": "date" - }, - { - "description": "the first IPv4 DNS for the network", - "name": "dns1", + "description": "the project account name of the project", + "name": "projectaccountname", "type": "string" }, { - "description": "VPC the network belongs to", - "name": "vpcid", + "description": "the total number of networks the project can own", + "name": "networklimit", "type": "string" }, { - "description": "the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes", - "name": "reservediprange", + "description": "the total primary storage space (in GiB) available to be used for this project", + "name": "primarystorageavailable", "type": "string" }, { - "description": "The vlan of the network. This parameter is visible to ROOT admins only", - "name": "vlan", + "description": "the total number of cpu cores available to be created for this project", + "name": "cpuavailable", "type": "string" }, { - "description": "true if network can span multiple zones", - "name": "strechedl2subnet", - "type": "boolean" + "description": "the total number of snapshots available for this project", + "name": "snapshotavailable", + "type": "string" }, { - "description": "the list of services", - "name": "service", - "response": [ - { - "description": "the service name", - "name": "name", - "type": "string" - }, - { - "description": "the list of capabilities", - "name": "capability", - "response": [ - { - "description": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability name", - "name": "name", - "type": "string" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - } - ], - "type": "list" - } - ], - "type": "list" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the domain id the project belongs to", + "name": "domainid", + "type": "string" }, { - "description": "the name of the zone the network belongs to", - "name": "zonename", - "type": "string" + "description": "the total number of templates which have been created by this project", + "name": "templatetotal", + "type": "long" }, { - "description": "if network offering supports vm autoscaling feature", - "name": "supportsvmautoscaling", - "type": "boolean" + "description": "the account name of the project's owners", + "name": "owner", + "type": "list" }, + {}, { - "description": "true if network supports specifying ip ranges, false otherwise", - "name": "specifyipranges", - "type": "boolean" + "description": "the total number of virtual machines stopped for this project", + "name": "vmstopped", + "type": "integer" }, { - "description": "zone id of the network", - "name": "zoneid", + "description": "the total number of public ip addresses available for this project to acquire", + "name": "ipavailable", "type": "string" - }, + } + ], + "since": "3.0.0" + }, + { + "description": "Delete a certificate to CloudStack", + "isasync": false, + "name": "deleteSslCert", + "params": [ { - "description": "the id of the network", + "description": "Id of SSL certificate", + "length": 255, "name": "id", - "type": "string" - }, + "related": "uploadSslCert", + "required": true, + "type": "uuid" + } + ], + "response": [ { - "description": "an optional field, whether to the display the network to the end user or not.", - "name": "displaynetwork", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, + {}, { - "description": "If the network has redundant routers enabled", - "name": "redundantrouter", - "type": "boolean" + "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", @@ -141097,510 +136451,568 @@ "type": "integer" }, { - "description": "the ID of the Network associated with this network", - "name": "associatednetworkid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ] + }, + { + "description": "Lists dedicated hosts.", + "isasync": false, + "name": "listDedicatedHosts", + "params": [ + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the physical network id", - "name": "physicalnetworkid", - "type": "string" + "description": "the ID of the domain associated with the host", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "the domain name of the network owner", - "name": "domain", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "list networks that are persistent", - "name": "ispersistent", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "list dedicated hosts by affinity group", + "length": 255, + "name": "affinitygroupid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the name of the Network associated with this network", - "name": "associatednetwork", + "description": "the name of the account associated with the host. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the first IPv6 DNS for the network", - "name": "ip6dns1", + "description": "the ID of the host", + "length": 255, + "name": "hostid", + "related": "addBaremetalHost,reconnectHost", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the Account ID of the host", + "name": "accountid", "type": "string" }, - {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the Dedication Affinity Group ID of the host", + "name": "affinitygroupid", + "type": "string" }, { - "description": "the network's netmask", - "name": "netmask", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "broadcast uri of the network. This parameter is visible to ROOT admins only", - "name": "broadcasturi", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the ID of the dedicated resource", + "name": "id", "type": "string" }, + {}, + {}, { - "description": "the displaytext of the network", - "name": "displaytext", + "description": "the ID of the host", + "name": "hostid", "type": "string" }, { - "description": "Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR", - "name": "cidr", + "description": "the name of the host", + "name": "hostname", "type": "string" }, { - "description": "the domain id of the network owner", + "description": "the domain ID of the host", "name": "domainid", "type": "string" + } + ] + }, + { + "description": "upload an existing ISO into the CloudStack cloud.", + "isasync": false, + "name": "getUploadParamsForIso", + "params": [ + { + "description": "true if you want to register the ISO to be publicly available to all users, false otherwise.", + "length": 255, + "name": "ispublic", + "required": false, + "type": "boolean" }, { - "description": "Broadcast domain type of the network", - "name": "broadcastdomaintype", + "description": "the format for the volume/template/iso. Possible values include QCOW2, OVA, and VHD.", + "length": 255, + "name": "format", + "required": true, "type": "string" }, { - "description": "the type of the network", - "name": "type", + "description": "the name of the volume/template/iso", + "length": 255, + "name": "name", + "required": true, "type": "string" }, - {}, { - "description": "Name of the VPC to which this network belongs", - "name": "vpcname", + "description": "the display text of the ISO. This is usually used for display purposes.", + "length": 4096, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "ACL Id associated with the VPC network", - "name": "aclid", - "type": "string" + "description": "the ID of the OS type that best represents the OS of this ISO. If the ISO is bootable this parameter needs to be passed", + "length": 255, + "name": "ostypeid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "availability of the network offering the network is created from", - "name": "networkofferingavailability", + "description": "an optional domainId. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" + }, + { + "description": "the checksum value of this volume/template/iso The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", + "length": 255, + "name": "checksum", + "required": false, "type": "string" }, { - "description": "true if guest network default egress policy is allow; false if default egress policy is deny", - "name": "egressdefaultpolicy", + "description": "true if this ISO is bootable. If not passed explicitly its assumed to be true", + "length": 255, + "name": "bootable", + "required": false, "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "true if you want this ISO to be featured", + "length": 255, + "name": "isfeatured", + "required": false, + "type": "boolean" }, { - "description": "UUID of AS NUMBER", - "name": "asnumberid", - "type": "string" + "description": "the ID of the zone the volume/template/iso is to be hosted on", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" }, { - "description": "the ID of the Network associated with this private gateway", - "name": "associatednetworkid", + "description": "true if the ISO or its derivatives are extractable; default is false", + "length": 255, + "name": "isextractable", + "required": false, + "type": "boolean" + }, + { + "description": "an optional accountName. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the second IPv6 DNS for the network", - "name": "ip6dns2", + "description": "Upload volume/template/iso for the project", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "encrypted data to be sent in the POST request.", + "name": "metadata", "type": "string" }, { - "description": "the second IPv4 DNS for the network", - "name": "dns2", + "description": "the template/volume ID", + "name": "id", + "type": "uuid" + }, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "related to what other network configuration", - "name": "related", + "description": "the timestamp after which the signature expires", + "name": "expires", "type": "string" }, { - "description": "the details of the network", - "name": "details", - "type": "map" + "description": "POST url to upload the file to", + "name": "postURL", + "type": "url" }, { - "description": "true if users from subdomains can access the domain level network", - "name": "subdomainaccess", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "signature to be sent in the POST request.", + "name": "signature", + "type": "string" + } + ], + "since": "4.13" + }, + { + "description": "Get diagnostics and files from system VMs", + "isasync": true, + "name": "getDiagnosticsData", + "params": [ + { + "description": "The ID of the system VM instance to retrieve diagnostics data files from", + "length": 255, + "name": "targetid", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "The external id of the network", - "name": "externalid", + "description": "A comma separated list of diagnostics data files to be retrieved. Defaults are taken from global settings if none has been provided.", + "length": 255, + "name": "files", + "required": false, + "type": "list" + } + ], + "related": "", + "response": [ + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {}, { - "description": "the traffic type of the network", - "name": "traffictype", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the project name of the address", - "name": "project", + "description": "Storage URL to download retrieve diagnostics data files", + "name": "url", "type": "string" + } + ], + "since": "4.14.0.0" + }, + { + "description": "Deletes a autoscale vm group.", + "isasync": true, + "name": "deleteAutoScaleVmGroup", + "params": [ + { + "description": "true if all VMs have to be cleaned up, false otherwise", + "length": 255, + "name": "cleanup", + "required": false, + "since": "4.18.0", + "type": "boolean" }, { - "description": "state of the network", - "name": "state", + "description": "the ID of the autoscale group", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if network is default, false otherwise", - "name": "isdefault", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "The internet protocol of network offering", - "name": "internetprotocol", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "MTU configured on the network VR's private interfaces", - "name": "privatemtu", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ] + }, + { + "description": "lists Palo Alto firewall devices in a physical network", + "isasync": false, + "name": "listPaloAltoFirewalls", + "params": [ + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, "type": "integer" }, { - "description": "list networks available for vm deployment", - "name": "canusefordeploy", - "type": "boolean" + "description": "Palo Alto firewall device ID", + "length": 255, + "name": "fwdeviceid", + "related": "addPaloAltoFirewall,listPaloAltoFirewalls", + "required": false, + "type": "uuid" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip4routes", - "type": "set" + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "The routes for the network to ease adding route in upstream router", - "name": "ip6routes", - "type": "set" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "The Ipv6 routing type of network offering", - "name": "ip6routing", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" - }, + } + ], + "related": "addPaloAltoFirewall", + "response": [ { - "description": "acl type - access type to the network", - "name": "acltype", + "description": "the private security zone of the external firewall", + "name": "privatezone", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "device id of the Palo Alto firewall", + "name": "fwdeviceid", "type": "string" }, { - "description": "true if network offering is ip conserve mode enabled", - "name": "networkofferingconservemode", - "type": "boolean" + "description": "device capacity", + "name": "fwdevicecapacity", + "type": "long" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", + "description": "device name", + "name": "fwdevicename", "type": "string" }, { - "description": "The IPv4 routing type of network", - "name": "ip4routing", + "description": "device state", + "name": "fwdevicestate", "type": "string" }, + {}, { - "description": "the name of the Network associated with this private gateway", - "name": "associatednetwork", + "description": "the management IP address of the external firewall", + "name": "ipaddress", "type": "string" }, { - "description": "network offering id the network is created from", - "name": "networkofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the network's gateway", - "name": "gateway", + "description": "the public security zone of the external firewall", + "name": "publiczone", "type": "string" }, { - "description": "true if network is system, false otherwise", - "name": "issystem", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Tungsten-Fabric virtual router the network belongs to", - "name": "tungstenvirtualrouteruuid", + "description": "the timeout (in seconds) for requests to the external firewall", + "name": "timeout", "type": "string" }, { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "the public interface of the external firewall", + "name": "publicinterface", "type": "string" }, { - "description": "the name of the network", - "name": "name", + "description": "the zone ID of the external firewall", + "name": "zoneid", "type": "string" }, { - "description": "the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE", - "name": "networkcidr", + "description": "the private interface of the external firewall", + "name": "privateinterface", "type": "string" }, + {}, { - "description": "the owner of the network", - "name": "account", + "description": "the username that's used to log in to the external firewall", + "name": "username", "type": "string" }, { - "description": "path of the Domain the network belongs to", - "name": "domainpath", + "description": "the usage interface of the external firewall", + "name": "usageinterface", "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the number of times to retry requests to the external firewall", + "name": "numretries", + "type": "string" + }, + { + "description": "name of the provider", + "name": "provider", + "type": "string" + }, + { + "description": "the physical network to which this Palo Alto firewall belongs to", + "name": "physicalnetworkid", "type": "string" } - ], - "since": "4.11.0" + ] }, { - "description": "Lists unmanaged virtual machines for a given cluster.", - "isasync": false, - "name": "listUnmanagedInstances", + "description": "Updates load balancer", + "isasync": true, + "name": "updateLoadBalancerRule", "params": [ { - "description": "the hypervisor name of the instance", + "description": "the name of the load balancer rule", "length": 255, "name": "name", "required": false, "type": "string" }, { - "description": "", + "description": "the ID of the load balancer rule to update", "length": 255, - "name": "pagesize", + "name": "id", + "related": "", + "required": true, + "type": "uuid" + }, + { + "description": "load balancer algorithm (source, roundrobin, leastconn)", + "length": 255, + "name": "algorithm", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the cluster ID", + "description": "The protocol for the LB", "length": 255, - "name": "clusterid", - "related": "addCluster", - "required": true, - "type": "uuid" + "name": "protocol", + "required": false, + "type": "string" }, { - "description": "List by keyword", + "description": "the description of the load balancer rule", + "length": 4096, + "name": "description", + "required": false, + "type": "string" + }, + { + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "keyword", + "name": "customid", "required": false, + "since": "4.4", "type": "string" }, { - "description": "", + "description": "an optional field, whether to the display the rule to the end user or not", "length": 255, - "name": "page", + "name": "fordisplay", "required": false, - "type": "integer" + "since": "4.4", + "type": "boolean" } ], - "related": "", + "related": "listLoadBalancerRules", "response": [ { - "description": "the list of nics associated with the virtual machine", - "name": "nic", - "response": [ - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the CPU cores per socket for the virtual machine. VMware specific", - "name": "cpucorepersocket", - "type": "integer" - }, - { - "description": "the operating system of the virtual machine", - "name": "osdisplayname", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" }, { - "description": "the CPU speed of the virtual machine", - "name": "cpuspeed", - "type": "integer" + "description": "the public ip address", + "name": "publicip", + "type": "string" }, {}, + {}, { - "description": "the power state of the virtual machine", - "name": "powerstate", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { - "description": "the ID of the cluster to which virtual machine belongs", - "name": "clusterid", + "description": "the name of the zone the load balancer rule belongs to", + "name": "zonename", "type": "string" }, { @@ -141609,598 +137021,647 @@ "type": "integer" }, { - "description": "the memory of the virtual machine in MB", - "name": "memory", - "type": "integer" + "description": "the project name of the load balancer", + "name": "project", + "type": "string" }, { - "description": "the operating system ID of the virtual machine", - "name": "osid", + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the protocol of the loadbalanacer rule", + "name": "protocol", "type": "string" }, - {}, { - "description": "the CPU cores of the virtual machine", - "name": "cpunumber", - "type": "integer" + "description": "the private port", + "name": "privateport", + "type": "string" }, { - "description": "the name of the cluster to which virtual machine belongs", - "name": "clustername", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the name of the virtual machine", + "description": "the name of the load balancer", "name": "name", "type": "string" }, { - "description": "the ID of the host to which virtual machine belongs", - "name": "hostid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the list of disks associated with the virtual machine", - "name": "disk", + "description": "the id of the zone the rule belongs to", + "name": "zoneid", + "type": "string" + }, + { + "description": "the domain of the load balancer rule", + "name": "domain", + "type": "string" + }, + { + "description": "the description of the load balancer", + "name": "description", + "type": "string" + }, + { + "description": "the id of the guest network the lb rule belongs to", + "name": "networkid", + "type": "string" + }, + { + "description": "the load balancer rule ID", + "name": "id", + "type": "string" + }, + { + "description": "the list of resource tags associated with load balancer", + "name": "tags", "response": [ { - "description": "the ID of the disk", - "name": "id", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the controller of the disk", - "name": "datastoretype", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "the position of the disk", - "name": "position", - "type": "integer" + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" }, { - "description": "the controller of the disk", - "name": "datastorepath", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the controller of the disk", - "name": "datastorename", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "the controller of the disk", - "name": "datastorehost", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the label of the disk", - "name": "label", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the controller unit of the disk", - "name": "controllerunit", - "type": "integer" + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "the file path of the disk image", - "name": "imagepath", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "the capacity of the disk in bytes", - "name": "capacity", - "type": "long" + "description": "tag value", + "name": "value", + "type": "string" }, { - "description": "the controller of the disk", - "name": "controller", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" } ], - "type": "set" + "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the load balancer", + "name": "projectid", "type": "string" }, { - "description": "the name of the host to which virtual machine belongs", - "name": "hostname", + "description": "the public port", + "name": "publicport", "type": "string" - } - ], - "since": "4.14.0" - }, - { - "description": "Registers an existing template into the CloudStack cloud.", - "isasync": false, - "name": "registerTemplate", - "params": [ + }, { - "description": "the URL of where the template is hosted. Possible URL include http:// and https://", - "length": 2048, - "name": "url", - "required": true, + "description": "the account of the load balancer rule", + "name": "account", "type": "string" }, { - "description": "true if the template supports the password reset feature; default is false", - "length": 255, - "name": "passwordenabled", - "required": false, - "type": "boolean" + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", + "type": "string" }, { - "description": "the checksum value of this template. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", - "length": 255, - "name": "checksum", - "required": false, + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "true if the template is available to all accounts; default is true", - "length": 255, - "name": "ispublic", - "required": false, - "type": "boolean" - }, + "description": "the public ip address id", + "name": "publicipid", + "type": "string" + } + ] + }, + { + "description": "Delete one or more alerts.", + "isasync": false, + "name": "deleteAlerts", + "params": [ { - "description": "true if this template requires HVM", + "description": "end date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", "length": 255, - "name": "requireshvm", + "name": "enddate", "required": false, - "type": "boolean" + "type": "date" }, { - "description": "Register template for the project", + "description": "delete by alert type", "length": 255, - "name": "projectid", - "related": "", + "name": "type", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "true if the template supports the sshkey upload feature; default is false", + "description": "the IDs of the alerts", "length": 255, - "name": "sshkeyenabled", + "name": "ids", + "related": "", "required": false, - "type": "boolean" + "type": "list" }, { - "description": "the tag for this template.", + "description": "start date range to delete alerts (including) this date (use format \"yyyy-MM-dd\" or the new format \"yyyy-MM-ddThh:mm:ss\")", "length": 255, - "name": "templatetag", + "name": "startdate", "required": false, - "type": "string" - }, + "type": "date" + } + ], + "response": [ { - "description": "an optional accountName. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "32 or 64 bits support. 64 by default", - "length": 255, - "name": "bits", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the ID of the OS Type that best represents the OS of this template. Not applicable with VMware, as we honour what is defined in the template", - "length": 255, - "name": "ostypeid", - "related": "", - "required": false, - "type": "uuid" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {} + ] + }, + { + "description": "Enables an account", + "isasync": false, + "name": "enableAccount", + "params": [ { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "description": "Enables specified account in this domain.", "length": 255, - "name": "isdynamicallyscalable", + "name": "domainid", + "related": "listDomains", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "true if template should bypass Secondary Storage and be downloaded to Primary Storage on deployment", + "description": "Enables specified account.", "length": 255, - "name": "directdownload", + "name": "account", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", + "description": "Account id", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "id", + "related": "enableAccount,listAccounts", "required": false, "type": "uuid" + } + ], + "related": "listAccounts", + "response": [ + { + "description": "account type (admin, domain-admin, user)", + "name": "accounttype", + "type": "integer" }, { - "description": "the name of the template", - "length": 255, - "name": "name", - "required": true, + "description": "the total number of vpcs available to be created for this account", + "name": "vpcavailable", "type": "string" }, { - "description": "true if this template is a featured template, false otherwise", - "length": 255, - "name": "isfeatured", - "required": false, - "type": "boolean" + "description": "the total memory (in MB) owned by account", + "name": "memorytotal", + "type": "long" }, { - "description": "the target hypervisor for the template", - "length": 255, - "name": "hypervisor", - "required": true, + "description": "the total number of networks available to be created for this account", + "name": "networkavailable", "type": "string" }, { - "description": "(VMware only) true if VM deployments should preserve all the configurations defined for this template", - "length": 255, - "name": "deployasis", - "required": false, - "since": "4.15.1", - "type": "boolean" + "description": "the total number of vpcs the account can own", + "name": "vpclimit", + "type": "string" }, { - "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", - "length": 255, - "name": "templatetype", - "required": false, - "since": "4.19.0", - "type": "string" + "description": "the total number of virtual machines running for this account", + "name": "vmrunning", + "type": "integer" }, { - "description": "The display text of the template, defaults to 'name'.", - "length": 4096, - "name": "displaytext", - "required": false, + "description": "the total secondary storage space (in GiB) available to be used for this account", + "name": "secondarystorageavailable", "type": "string" }, { - "description": "true if the template or its derivatives are extractable; default is false", - "length": 255, - "name": "isextractable", - "required": false, - "type": "boolean" + "description": "the total number of networks owned by account", + "name": "networktotal", + "type": "long" }, { - "description": "true if the template type is routing i.e., if template is used to deploy router", - "length": 255, - "name": "isrouting", - "required": false, + "description": "true if the account requires cleanup", + "name": "iscleanuprequired", "type": "boolean" }, { - "description": "A list of zone ids where the template will be hosted. Use this parameter if the template needs to be registered to multiple zones in one go. Use zoneid if the template needs to be registered to only one zone.Passing only -1 to this will cause the template to be registered as a cross zone template and will be copied to all zones. ", - "length": 255, - "name": "zoneids", - "related": "listZones", - "required": false, - "type": "list" + "description": "the total secondary storage space (in GiB) owned by account", + "name": "secondarystoragetotal", + "type": "float" }, { - "description": "the CPU arch of the template. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", + "description": "the total number of virtual machines available for this account to acquire", + "name": "vmavailable", "type": "string" }, { - "description": "the format for the template. Possible values include QCOW2, RAW, VHD and OVA.", - "length": 255, - "name": "format", - "required": true, - "type": "string" + "description": "the total volume being used by this account", + "name": "volumetotal", + "type": "long" }, { - "description": "the ID of the zone the template is to be hosted on", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" - } - ], - "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "response": [ - { - "description": "the name of the domain to which the template belongs", - "name": "domain", + "description": "the total number of cpu cores available to be created for this account", + "name": "cpuavailable", "type": "string" }, { - "description": "the template ID", - "name": "id", + "description": "the total secondary storage space (in GiB) the account can own", + "name": "secondarystoragelimit", "type": "string" }, { - "description": "the account id to which the template belongs", - "name": "accountid", - "type": "string" + "description": "the total number of virtual machines stopped for this account", + "name": "vmstopped", + "type": "integer" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "the total number of projects being administrated by this account", + "name": "projecttotal", + "type": "long" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the network domain", + "name": "networkdomain", "type": "string" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", - "type": "string" + "description": "the total number of virtual machines deployed by this account", + "name": "vmtotal", + "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the total number of public ip addresses this account can acquire", + "name": "iplimit", "type": "string" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", + "description": "the id of the account", + "name": "id", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "the total number of projects the account can own", + "name": "projectlimit", + "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "the list of users associated with account", + "name": "user", "response": [ { - "description": "tag value", - "name": "value", + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the date and time the user account was created", + "name": "created", + "type": "date" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" + }, + { + "description": "the user email address", + "name": "email", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" + }, + { + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "true if user is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "the ID of the domain associated with the tag", + "description": "the ID of the role", + "name": "roleid", + "type": "string" + }, + { + "description": "the api key of the user", + "name": "apikey", + "type": "string" + }, + { + "description": "the account type of the user", + "name": "accounttype", + "type": "integer" + }, + { + "description": "the timezone user was created in", + "name": "timezone", + "type": "string" + }, + { + "description": "the domain ID of the user", "name": "domainid", "type": "string" }, { - "description": "the domain associated with the tag", + "description": "the domain name of the user", "name": "domain", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the user ID", + "name": "id", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the user state", + "name": "state", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the secret key of the user", + "name": "secretkey", + "type": "string" + }, + { + "description": "the account name of the user", + "name": "account", + "type": "string" + }, + { + "description": "the type of the role", + "name": "roletype", + "type": "string" + }, + { + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" + }, + { + "description": "the name of the role", + "name": "rolename", "type": "string" } ], - "type": "set" - }, - { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" - }, - { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" - }, - { - "description": "the name of the zone for this template", - "name": "zonename", - "type": "string" + "type": "list" }, { - "description": "the ID of the domain to which the template belongs", + "description": "id of the Domain the account belongs to", "name": "domainid", "type": "string" }, { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the total primary storage space (in GiB) available to be used for this account", + "name": "primarystorageavailable", + "type": "string" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", + "description": "the total volume available for this account", + "name": "volumeavailable", "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 total memory (in MB) the account can own", + "name": "memorylimit", + "type": "string" }, - {}, { - "description": "the processor bit size", - "name": "bits", - "type": "int" + "description": "The tagged resource limit and count for the account", + "name": "taggedresources", + "type": "list" }, { - "description": "the project name of the template", - "name": "project", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the account name to which the template belongs", - "name": "account", + "description": "the state of the account", + "name": "state", "type": "string" }, { - "description": "the status of the template", - "name": "status", - "type": "string" + "description": "the list of acl groups that account belongs to", + "name": "groups", + "type": "list" }, { - "description": "the template display text", - "name": "displaytext", - "type": "string" + "description": "the total number of cpu cores owned by account", + "name": "cputotal", + "type": "long" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "the total number of projects available for administration by this account", + "name": "projectavailable", "type": "string" }, { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" + "description": "the total number of public ip addresses allocated for this account", + "name": "iptotal", + "type": "long" }, { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" + "description": "the date when this account was created", + "name": "created", + "type": "date" }, { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "true if account is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" + "description": "the total number of public ip addresses available for this account to acquire", + "name": "ipavailable", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the total memory (in MB) available to be created for this account", + "name": "memoryavailable", + "type": "string" }, - {}, { - "description": "the type of the template", - "name": "templatetype", + "description": "the total number of virtual machines that can be deployed by this account", + "name": "vmlimit", "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "the total number of snapshots available for this account", + "name": "snapshotavailable", + "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the total primary storage space (in GiB) the account can own", + "name": "primarystoragelimit", "type": "string" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the total number of snapshots stored by this account", + "name": "snapshottotal", + "type": "long" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", - "type": "boolean" + "description": "details for the account", + "name": "accountdetails", + "type": "map" }, + {}, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "the name of the account", + "name": "name", "type": "string" }, { - "description": "the tag of this template", - "name": "templatetag", + "description": "name of the Domain the account belongs to", + "name": "domain", "type": "string" }, { - "description": "the project id of the template", - "name": "projectid", - "type": "string" + "description": "the total primary storage space (in GiB) owned by account", + "name": "primarystoragetotal", + "type": "long" }, + {}, { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the total volume which can be used by this account", + "name": "volumelimit", "type": "string" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the total number of networks the account can own", + "name": "networklimit", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", + "name": "roletype", + "type": "string" }, { - "description": "the size of the template", - "name": "size", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "checksum of the template", - "name": "checksum", + "description": "the total number of templates which can be created by this account", + "name": "templatelimit", "type": "string" }, { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" + "description": "path of the Domain the account belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" + "description": "the total number of cpu cores the account can own", + "name": "cpulimit", + "type": "string" }, { - "description": "the date this template was created", - "name": "created", - "type": "date" + "description": "the default zone of the account", + "name": "defaultzoneid", + "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the total number of templates available to be created by this account", + "name": "templateavailable", "type": "string" }, { @@ -142209,856 +137670,777 @@ "type": "resourceiconresponse" }, { - "description": "the physical size of the template", - "name": "physicalsize", + "description": "the total number of vpcs owned by account", + "name": "vpctotal", "type": "long" }, { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", - "type": "boolean" - }, - { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" - }, - { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "the total number of snapshots which can be stored by this account", + "name": "snapshotlimit", "type": "string" }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "the name of the role", + "name": "rolename", "type": "string" }, { - "description": "the template name", - "name": "name", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the URL which the template/iso is registered from", - "name": "url", - "type": "string" + "description": "the total number of templates which have been created by this account", + "name": "templatetotal", + "type": "long" } ] }, { - "description": "List VNF appliance owned by the account.", - "isasync": false, - "name": "listVnfAppliances", + "description": "Changes the scope of a storage pool when the pool is in Disabled state.This feature is officially tested and supported for Hypervisors: KVM and VMware, Protocols: NFS and Ceph, and Storage Provider: DefaultPrimary. There might be extra steps involved to make this work for other hypervisors and storage options.", + "isasync": true, + "name": "changeStoragePoolScope", "params": [ { - "description": "the IDs of the virtual machines, mutually exclusive with id", + "description": "the scope of the storage: cluster or zone", "length": 255, - "name": "ids", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "since": "4.4", - "type": "list" + "name": "scope", + "required": true, + "type": "string" }, { - "description": "the target hypervisor for the template", + "description": "the Id of the storage pool", "length": 255, - "name": "hypervisor", - "required": false, - "type": "string" + "name": "id", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "list by network type; true if need to list vms using Virtual Network, false otherwise", + "description": "the Id of the cluster to use if scope is being set to Cluster", "length": 255, - "name": "forvirtualnetwork", + "name": "clusterid", + "related": "", "required": false, + "type": "uuid" + } + ], + "response": [ + {}, + { + "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": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, + {}, { - "description": "list vms by ssh keypair name", - "length": 255, - "name": "keypair", - "required": false, + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, + } + ], + "since": "4.19.1" + }, + { + "description": "Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.", + "isasync": true, + "name": "createAutoScaleVmProfile", + "params": [ { - "description": "the availability zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", + "description": "an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 4KB of data after base64 encoding. Using HTTP POST (via POST body), you can send up to 1MB of data after base64 encoding. You also need to change vm.userdata.max.length value", + "length": 1048576, + "name": "userdata", "required": false, - "type": "uuid" + "since": "4.18.0", + "type": "string" }, { - "description": "makes the API's response contains only the resource count", + "description": "parameters other than zoneId/serviceOfferringId/templateId of the auto deployed virtual machine.\nExample: otherdeployparams[0].name=serviceofferingid&otherdeployparams[0].value=a7fb50f6-01d9-11ed-8bc1-77f8f0228926&otherdeployparams[1].name=rootdisksize&otherdeployparams[1].value=10 .\nPossible parameters are \"rootdisksize\", \"diskofferingid\",\"size\", \"securitygroupids\", \"overridediskofferingid\", \"keypairs\", \"affinitygroupids'\" and \"networkids\".", "length": 255, - "name": "retrieveonlyresourcecount", + "name": "otherdeployparams", "required": false, - "type": "boolean" + "type": "map" }, { - "description": "the security group ID", + "description": "used to specify the parameters values for the variables in userdata.", "length": 255, - "name": "securitygroupid", - "related": "", + "name": "userdatadetails", "required": false, - "since": "4.15", - "type": "uuid" + "since": "4.18.1", + "type": "map" }, { - "description": "", + "description": "the time allowed for existing connections to get closed before a vm is expunged", "length": 255, - "name": "pagesize", + "name": "expungevmgraceperiod", "required": false, "type": "integer" }, { - "description": "", + "description": "availability zone for the auto deployed virtual machine", "length": 255, - "name": "page", - "required": false, - "type": "integer" + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" }, { - "description": "the group ID", + "description": "the ID of the Userdata", "length": 255, - "name": "groupid", + "name": "userdataid", "related": "", "required": false, + "since": "4.18.1", "type": "uuid" }, { - "description": "Whether to return the VMs' user data or not. By default, user data will not be returned.", + "description": "an optional field, whether to the display the profile to the end user or not", "length": 255, - "name": "userdata", + "name": "fordisplay", "required": false, - "since": "4.18.0.0", + "since": "4.4", "type": "boolean" }, { - "description": "list by network id", + "description": "the template of the auto deployed virtual machine", "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks", - "required": false, + "name": "templateid", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, "type": "uuid" }, { - "description": "list by the service offering", + "description": "the ID of the user used to launch and destroy the VMs", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", + "name": "autoscaleuserid", + "related": "getUser", "required": false, - "since": "4.4", "type": "uuid" }, { - "description": "list vms by affinity group", + "description": "an optional project for the autoscale VM profile", "length": 255, - "name": "affinitygroupid", + "name": "projectid", "related": "", "required": false, "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "account that will own the autoscale VM profile", "length": 255, - "name": "isrecursive", + "name": "account", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "Accumulates the VM metrics data instead of returning only the most recent data collected. The default behavior is set by the global configuration vm.stats.increment.metrics.", + "description": "the service offering of the auto deployed virtual machine", "length": 255, - "name": "accumulate", - "required": false, - "since": "4.17.0", - "type": "boolean" + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "domain ID of the account owning a autoscale VM profile", "length": 255, - "name": "listall", + "name": "domainid", + "related": "listDomains", "required": false, - "type": "boolean" + "type": "uuid" }, { - "description": "flag to display the resource icon for VMs", + "description": "counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161", "length": 255, - "name": "showicon", + "name": "counterparam", "required": false, - "since": "4.16.0.0", - "type": "boolean" - }, + "type": "map" + } + ], + "related": "", + "response": [ { - "description": "flag to list vms created from VNF templates (as known as VNF appliances) or not; true if need to list VNF appliances, false otherwise.", - "length": 255, - "name": "isvnf", - "required": false, - "since": "4.19.0", - "type": "boolean" + "description": "the project name of the vm profile", + "name": "project", + "type": "string" }, { - "description": "list by the backup offering", - "length": 255, - "name": "backupofferingid", - "required": false, - "since": "4.17", - "type": "uuid" + "description": "the time allowed for existing connections to get closed before a vm is destroyed", + "name": "expungevmgraceperiod", + "type": "integer" }, { - "description": "comma separated list of vm details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, backoff, iso, volume, min, affgrp]. When no parameters are passed, all the details are returned if list.vm.default.details.stats is true (default), otherwise when list.vm.default.details.stats is false the API response will exclude the stats details.", - "length": 255, - "name": "details", - "required": false, - "type": "list" + "description": "the domain ID of the vm profile", + "name": "domainid", + "type": "string" }, { - "description": "the user ID that created the VM and is under the account that owns the VM", - "length": 255, - "name": "userid", - "related": "getUser", - "required": false, - "type": "uuid" + "description": "the project id vm profile", + "name": "projectid", + "type": "string" }, { - "description": "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.", - "length": 255, - "name": "state", - "required": false, + "description": "the template to be used while deploying a virtual machine", + "name": "templateid", "type": "string" }, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the availability zone to be used while deploying a virtual machine", + "name": "zoneid", + "type": "string" }, + {}, { - "description": "list vms by iso", - "length": 255, - "name": "isoid", - "required": false, - "type": "uuid" + "description": "the domain name of the vm profile", + "name": "domain", + "type": "string" }, + {}, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "displayvm", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "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, + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" }, { - "description": "list by the High Availability offering; true if filtering VMs with HA enabled; false for VMs with HA disabled", - "length": 255, - "name": "haenable", - "required": false, - "since": "4.15", - "type": "boolean" + "description": "Base64 encoded VM user data", + "name": "userdata", + "type": "string" }, { - "description": "the ID of AutoScaling VM Group", - "length": 255, - "name": "autoscalevmgroupid", - "related": "", - "required": false, - "since": "4.18.0", - "type": "uuid" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "is profile for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "list vms by vpc", - "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,updateVPC", - "required": false, - "type": "uuid" + "description": "the account owning the instance group", + "name": "account", + "type": "string" }, { - "description": "list vms by template", - "length": 255, - "name": "templateid", - "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": false, - "type": "uuid" + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", + "type": "string" }, { - "description": "the ID of the virtual machine", - "length": 255, + "description": "the autoscale vm profile ID", "name": "id", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "type": "string" }, { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "path of the domain to which the vm profile belongs", + "name": "domainpath", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the ID of the user used to launch and destroy the VMs", + "name": "autoscaleuserid", "type": "string" - } - ], - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "response": [ - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, + {}, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the service offering to be used while deploying a virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" + "description": "parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine", + "name": "otherdeployparams", + "type": "map" }, + {} + ] + }, + { + "description": "Register the OAuth2 provider in CloudStack", + "isasync": false, + "name": "registerOauthProvider", + "params": [ { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "Name of the provider from the list of OAuth providers supported in CloudStack", + "length": 255, + "name": "provider", + "required": true, "type": "string" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "Client ID pre-registered in the specific OAuth provider", + "length": 255, + "name": "clientid", + "required": true, "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "Any OAuth provider details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].clientsecret=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", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "Secret Key pre-registered in the specific OAuth provider", + "length": 255, + "name": "secretkey", + "required": true, "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "Description of the OAuth Provider", + "length": 255, + "name": "description", + "required": true, "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "Redirect URI pre-registered in the specific OAuth provider", + "length": 255, + "name": "redirecturi", + "required": true, "type": "string" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, + {}, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "4.19.0" + }, + { + "description": "Lists load balancer stickiness policies.", + "isasync": false, + "name": "listLBStickinessPolicies", + "params": [ + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the ID of the load balancer rule", + "length": 255, + "name": "lbruleid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the ID of the load balancer stickiness policy", + "length": 255, + "name": "id", + "related": "listLBStickinessPolicies", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the account of the Stickiness policy", + "name": "account", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the id of the zone the Stickiness policy belongs to", + "name": "zoneid", + "type": "string" }, + {}, + {}, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the domain of the Stickiness policy", + "name": "domain", + "type": "string" }, { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "the list of stickinesspolicies", + "name": "stickinesspolicy", "response": [ { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the LB Stickiness policy ID", + "name": "id", "type": "string" }, { - "description": "the description of the affinity group", + "description": "the description of the Stickiness policy", "name": "description", "type": "string" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" + "description": "the params of the policy", + "name": "params", + "type": "map" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the method name of the Stickiness policy", + "name": "methodname", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" + "description": "is policy for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the name of the affinity group", + "description": "the name of the Stickiness policy", "name": "name", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the state of the policy", + "name": "state", "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" } ], - "type": "set" + "type": "list" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the domain ID of the Stickiness policy", + "name": "domainid", + "type": "string" + }, + { + "description": "the LB rule ID", + "name": "lbruleid", + "type": "string" + }, + { + "description": "the state of the policy", + "name": "state", + "type": "string" + }, + { + "description": "the name of the Stickiness policy", + "name": "name", + "type": "string" + }, + { + "description": "the description of the Stickiness policy", + "name": "description", + "type": "string" + }, + { + "description": "the 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" + } + ], + "since": "3.0.0" + }, + { + "description": "Adds a Ucs manager", + "isasync": false, + "name": "addUcsManager", + "params": [ + { + "description": "the name of UCS manager", + "length": 255, + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "the Zone id for the ucs manager", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" + }, + { + "description": "the password of UCS", + "length": 255, + "name": "password", + "required": true, "type": "string" }, + { + "description": "the name of UCS url", + "length": 255, + "name": "url", + "required": true, + "type": "string" + }, + { + "description": "the username of UCS", + "length": 255, + "name": "username", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ {}, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "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": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - } - ], - "type": "set" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, + "description": "the url of ucs manager", + "name": "url", + "type": "string" + }, + { + "description": "the ID of the ucs manager", + "name": "id", + "type": "string" + }, + { + "description": "the zone ID of ucs manager", + "name": "zoneid", + "type": "string" + }, + {}, + { + "description": "the name of ucs manager", + "name": "name", + "type": "string" + } + ] + }, + { + "description": "Deletes a network", + "isasync": true, + "name": "deleteNetwork", + "params": [ + { + "description": "Force delete a network. Network will be marked as 'Destroy' even when commands to shutdown and cleanup to the backend fails.", + "length": 255, + "name": "forced", + "required": false, + "type": "boolean" + }, + { + "description": "the ID of the network", + "length": 255, + "name": "id", + "related": "createNetwork,updateNetwork,listNetworks", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" + }, + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "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": "Reconnects a host.", + "isasync": true, + "name": "reconnectHost", + "params": [ + { + "description": "the host ID", + "length": 255, + "name": "id", + "related": "addBaremetalHost,reconnectHost", + "required": true, + "type": "uuid" + } + ], + "related": "addBaremetalHost", + "response": [ + { + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", + "type": "string" + }, + { + "description": "GPU cards present in the host", + "name": "gpugroup", + "response": [ { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", + "description": "the list of enabled vGPUs", + "name": "vgpu", "response": [ { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" }, { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" }, { - "description": "security group name", - "name": "securitygroupname", - "type": "string" + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" }, { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" }, { - "description": "account owning the security group rule", - "name": "account", + "description": "Model Name of vGPU", + "name": "vgputype", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" }, { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" }, { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" } ], - "type": "set" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" + "type": "list" }, { - "description": "the name of the security group", - "name": "name", + "description": "GPU cards present in the host", + "name": "gpugroupname", "type": "string" } ], - "type": "set" + "type": "list" + }, + { + "description": "the cluster ID of the host", + "name": "clusterid", + "type": "string" + }, + { + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", + "type": "boolean" + }, + { + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", + "type": "string" + }, + { + "description": "the host version", + "name": "version", + "type": "string" + }, + { + "description": "the ID of the host", + "name": "id", + "type": "string" + }, + { + "description": "the Pod ID of the host", + "name": "podid", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -143066,1157 +138448,1224 @@ "type": "integer" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", + "description": "the CPU number of the host", + "name": "cpunumber", "type": "integer" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - } - ], - "type": "set" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", "type": "long" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" + }, + { + "description": "the OS category name of the host", + "name": "oscategoryname", + "type": "string" + }, + { + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", "type": "long" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "events available for the host", + "name": "events", + "type": "string" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", + "description": "the amount of the host's CPU currently used", + "name": "cpuused", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, - {}, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" + }, + { + "description": "true if the host supports encryption", + "name": "encryptionsupported", + "type": "boolean" + }, + { + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" + }, + { + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" + }, + { + "description": "the incoming network traffic on the host", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" + }, + { + "description": "the Pod name of the host", + "name": "podname", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "CPU Arch of the host", + "name": "arch", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" + }, + { + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, + {}, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "description": "the date and time the host was created", + "name": "created", + "type": "date" + }, + { + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", "type": "boolean" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" + "description": "the Zone ID of the host", + "name": "zoneid", + "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", + "type": "string" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" + }, + { + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, { - "description": "Vm details in key/value pairs.", + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "the resource state of the host", + "name": "resourcestate", + "type": "string" + }, + { + "description": "Host details in key/value pairs.", "name": "details", "type": "map" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", + "type": "string" + }, + { + "description": "the amount of the host's memory currently used", + "name": "memoryused", "type": "long" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" + }, + {}, + { + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" + }, + { + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" + }, + { + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", + "type": "boolean" + }, + { + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", + "type": "boolean" + }, + { + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" + }, + { + "description": "the state of the host", + "name": "state", + "type": "status" + }, + { + "description": "the host type", + "name": "type", + "type": "type" + } + ] + }, + { + "description": "Deletes a VNF template from the system. All virtual machines using the deleted template will not be affected.", + "isasync": true, + "name": "deleteVnfTemplate", + "params": [ + { + "description": "Force delete a template.", + "length": 255, + "name": "forced", + "required": false, + "since": "4.9+", + "type": "boolean" + }, + { + "description": "Necessary if the template's type is system.", + "length": 255, + "name": "issystem", + "required": false, + "since": "4.20.0", + "type": "boolean" + }, + { + "description": "the ID of the template", + "length": 255, + "name": "id", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" + }, + { + "description": "the ID of zone of the template", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": false, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + }, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {} + ], + "since": "4.19.0" + }, + { + "description": "Deletes a project", + "isasync": true, + "name": "deleteProject", + "params": [ + { + "description": "true if all project resources have to be cleaned up, false otherwise", + "length": 255, + "name": "cleanup", + "required": false, + "since": "4.16.0", + "type": "boolean" + }, + { + "description": "id of the project to be deleted", + "length": 255, + "name": "id", + "related": "", + "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", + "name": "jobid", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, {}, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + } + ], + "since": "3.0.0" + }, + { + "description": "lists netscaler load balancer devices", + "isasync": false, + "name": "listNetscalerLoadBalancers", + "params": [ + { + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "netscaler load balancer device ID", + "length": 255, + "name": "lbdeviceid", + "related": "addNetscalerLoadBalancer,listNetscalerLoadBalancers", + "required": false, + "type": "uuid" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" + } + ], + "related": "addNetscalerLoadBalancer", + "response": [ + { + "description": "device capacity", + "name": "lbdevicecapacity", "type": "long" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "device name", + "name": "lbdevicename", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "device state", + "name": "lbdevicestate", "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" + "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "name": "podids", + "type": "list" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "device id of the netscaler load balancer", + "name": "lbdeviceid", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the public interface of the load balancer", + "name": "publicinterface", + "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the physical network to which this netscaler device belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the private interface of the load balancer", + "name": "privateinterface", "type": "string" }, + {}, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "private IP of the NetScaler representing GSLB site", + "name": "gslbproviderprivateip", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the management IP address of the external load balancer", + "name": "ipaddress", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "true if NetScaler device is provisioned to be a GSLB service provider", + "name": "gslbprovider", + "type": "boolean" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "true if device is dedicated for an account", + "name": "lbdevicededicated", + "type": "boolean" }, + {}, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "public IP of the NetScaler representing GSLB site", + "name": "gslbproviderpublicip", "type": "string" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", + "name": "isexclusivegslbprovider", + "type": "boolean" + }, + { + "description": "name of the provider", + "name": "provider", "type": "string" + } + ] + }, + { + "description": "Creates a vm group", + "isasync": false, + "name": "createInstanceGroup", + "params": [ + { + "description": "the domain ID of account owning the instance group", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the account of the instance group. The account parameter must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "The project of the instance group", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the name of the instance group", + "length": 255, + "name": "name", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the domain ID of the instance group", + "name": "domainid", "type": "string" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "the account owning the instance group", + "name": "account", + "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - } - ], - "type": "set" + "description": "the name of the instance group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the instance group", + "name": "domain", + "type": "string" }, + {}, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the project name of the instance group", + "name": "project", "type": "string" }, + {}, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the project ID of the instance group", + "name": "projectid", "type": "string" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" + "description": "the ID of the instance group", + "name": "id", + "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "path of the Domain the instance group belongs to", + "name": "domainpath", + "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "time and date the instance group was created", + "name": "created", + "type": "date" } - ], - "since": "4.19.1" + ] }, { - "description": "Adds stratosphere ssp server", + "description": "Lists all available shared filesystem providers.", "isasync": false, - "name": "addStratosphereSsp", + "name": "listSharedFileSystemProviders", "params": [ { - "description": "stratosphere ssp tenant uuid", + "description": "", "length": 255, - "name": "tenantuuid", + "name": "page", "required": false, - "type": "string" - }, - { - "description": "the zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "type": "integer" }, { - "description": "stratosphere ssp api password", + "description": "", "length": 255, - "name": "password", + "name": "pagesize", "required": false, - "type": "string" - }, - { - "description": "stratosphere ssp server url", - "length": 255, - "name": "url", - "required": true, - "type": "string" - }, - { - "description": "stratosphere ssp api name", - "length": 255, - "name": "name", - "required": true, - "type": "string" + "type": "integer" }, { - "description": "stratosphere ssp api username", + "description": "List by keyword", "length": 255, - "name": "username", + "name": "keyword", "required": false, "type": "string" } ], "related": "", "response": [ + {}, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "url of ssp endpoint", - "name": "url", + "description": "the name of the shared filesystem provider", + "name": "name", "type": "string" }, - {}, { - "description": "server id of the stratosphere ssp server", - "name": "hostid", + "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": "name", - "name": "name", - "type": "string" - }, - { - "description": "zone which this ssp controls", - "name": "zoneid", - "type": "string" } - ] + ], + "since": "4.20.0" }, { - "description": "Creates a storage pool.", + "description": "List iso visibility and all accounts that have permissions to view this iso.", "isasync": false, - "name": "createStoragePool", + "name": "listIsoPermissions", "params": [ { - "description": "Whether the informed tag is a JS interpretable rule or not.", + "description": "the template ID", "length": 255, - "name": "istagarule", - "required": false, - "type": "boolean" + "name": "id", + "related": "listIsoPermissions,listTemplatePermissions,listIsoPermissions", + "required": true, + "type": "uuid" + } + ], + "related": "listTemplatePermissions,listIsoPermissions", + "response": [ + { + "description": "the list of accounts the template is available for", + "name": "account", + "type": "list" }, { - "description": "the Pod ID for the storage pool", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": false, - "type": "uuid" + "description": "the template ID", + "name": "id", + "type": "string" }, { - "description": "the details for the storage pool", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "the name for the storage pool", - "length": 255, - "name": "name", - "required": true, - "type": "string" + "description": "the list of projects the template is available for", + "name": "projectids", + "type": "list" }, { - "description": "the scope of the storage: cluster or zone", - "length": 255, - "name": "scope", - "required": false, + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" }, { - "description": "the tags for the storage pool", - "length": 255, - "name": "tags", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the URL of the storage pool", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + {} + ] + }, + { + "description": "Adds a netscaler load balancer device", + "isasync": true, + "name": "addNetscalerLoadBalancer", + "params": [ + { + "description": "URL of the netscaler load balancer appliance.", "length": 255, "name": "url", "required": true, "type": "string" }, { - "description": "hypervisor type of the hosts in zone that will be attached to this storage pool. KVM, VMware supported as of now.", + "description": "Credentials to reach netscaler load balancer device", "length": 255, - "name": "hypervisor", - "required": false, + "name": "password", + "required": true, "type": "string" }, { - "description": "the Zone ID for the storage pool", + "description": "Netscaler device type supports NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "networkdevicetype", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", + "description": "private IP of the site", "length": 255, - "name": "capacityiops", + "name": "gslbproviderprivateip", "required": false, - "type": "long" + "type": "string" }, { - "description": "the cluster ID for the storage pool", + "description": "true if NetScaler device being added is for providing GSLB service exclusively and can not be used for LB", "length": 255, - "name": "clusterid", - "related": "addCluster", + "name": "isexclusivegslbprovider", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "the storage provider name", + "description": "true if NetScaler device being added is for providing GSLB service", "length": 255, - "name": "provider", + "name": "gslbprovider", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "bytes CloudStack can provision from this storage pool", + "description": "the Physical Network ID", "length": 255, - "name": "capacitybytes", - "required": false, - "type": "long" + "name": "physicalnetworkid", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "whether the storage should be managed by CloudStack", + "description": "public IP of the site", "length": 255, - "name": "managed", + "name": "gslbproviderpublicip", "required": false, - "type": "boolean" - } - ], - "related": "cancelStorageMaintenance,findStoragePoolsForMigration,enableStorageMaintenance", - "response": [ - { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" - }, - { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", "type": "string" }, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", - "type": "string" - }, - { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the Pod name of the storage pool", - "name": "podname", + "description": "Credentials to reach netscaler load balancer device", + "length": 255, + "name": "username", + "required": true, "type": "string" - }, - { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" - }, - {}, + } + ], + "related": "", + "response": [ { - "description": "the scope of the storage pool", - "name": "scope", + "description": "device id of the netscaler load balancer", + "name": "lbdeviceid", "type": "string" }, { - "description": "the ID of the storage pool", - "name": "id", + "description": "the physical network to which this netscaler device belongs to", + "name": "physicalnetworkid", "type": "string" }, { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" - }, - { - "description": "the tags for the storage pool", - "name": "tags", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the name of the storage pool", - "name": "name", + "description": "private IP of the NetScaler representing GSLB site", + "name": "gslbproviderprivateip", "type": "string" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "device state", + "name": "lbdevicestate", "type": "string" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", - "type": "string" + "description": "true if device is dedicated for an account", + "name": "lbdevicededicated", + "type": "boolean" }, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "the private interface of the load balancer", + "name": "privateinterface", "type": "string" }, { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" - }, - { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", - "type": "string" + "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", + "name": "isexclusivegslbprovider", + "type": "boolean" }, { - "description": "Storage provider for this pool", - "name": "provider", - "type": "string" + "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", + "name": "podids", + "type": "list" }, + {}, { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", + "description": "device capacity", + "name": "lbdevicecapacity", "type": "long" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", - "type": "string" - }, - { - "description": "the Zone name of the storage pool", - "name": "zonename", + "description": "the management IP address of the external load balancer", + "name": "ipaddress", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "the storage pool path", - "name": "path", + "description": "the public interface of the load balancer", + "name": "publicinterface", "type": "string" }, + {}, { "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": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", + "description": "true if NetScaler device is provisioned to be a GSLB service provider", + "name": "gslbprovider", "type": "boolean" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "name of the provider", + "name": "provider", "type": "string" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" - }, - { - "description": "the storage pool type", - "name": "type", + "description": "public IP of the NetScaler representing GSLB site", + "name": "gslbproviderpublicip", "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - {}, - { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" + "description": "device name", + "name": "lbdevicename", + "type": "string" } ] }, { - "description": "Lists storage pools available for migration of a volume.", - "isasync": false, - "name": "findStoragePoolsForMigration", + "description": "Creates an internal load balancer", + "isasync": true, + "name": "createLoadBalancer", "params": [ { - "description": "", - "length": 255, - "name": "pagesize", + "description": "the description of the load balancer", + "length": 4096, + "name": "description", "required": false, - "type": "integer" + "type": "string" }, { - "description": "the ID of the volume", + "description": "The guest network the load balancer will be created for", "length": 255, - "name": "id", - "related": "createVolume,attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks", "required": true, "type": "uuid" }, { - "description": "", + "description": "the source port the network traffic will be load balanced from", "length": 255, - "name": "page", - "required": false, + "name": "sourceport", + "required": true, "type": "integer" }, { - "description": "List by keyword", + "description": "name of the load balancer", "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "cancelStorageMaintenance,enableStorageMaintenance", - "response": [ - { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", + "name": "name", + "required": true, "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" + "description": "load balancer algorithm (source, roundrobin, leastconn)", + "length": 255, + "name": "algorithm", + "required": true, + "type": "string" }, { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" + "description": "the source IP address the network traffic will be load balanced from", + "length": 255, + "name": "sourceipaddress", + "required": false, + "type": "string" }, { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" + "description": "the network id of the source ip address", + "length": 255, + "name": "sourceipaddressnetworkid", + "related": "createNetwork,updateNetwork,listNetworks", + "required": true, + "type": "uuid" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the TCP port of the virtual machine where the network traffic will be load balanced to", + "length": 255, + "name": "instanceport", + "required": true, "type": "integer" }, { - "description": "the Pod name of the storage pool", - "name": "podname", - "type": "string" - }, - { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "the load balancer scheme. Supported value in this release is Internal", + "length": 255, + "name": "scheme", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the name of the Load Balancer", + "name": "name", "type": "string" }, { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the ID of the storage pool", - "name": "id", + "description": "the project id of the Load Balancer", + "name": "projectid", "type": "string" }, { - "description": "the storage pool type", - "name": "type", + "description": "the domain of the Load Balancer", + "name": "domain", "type": "string" }, { - "description": "Storage provider for this pool", - "name": "provider", + "description": "the project name of the Load Balancer", + "name": "project", "type": "string" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" + "description": "the list of rules associated with the Load Balancer", + "name": "loadbalancerrule", + "response": [ + { + "description": "source port of the load balancer rule", + "name": "sourceport", + "type": "integer" + }, + { + "description": "the state of the load balancer rule", + "name": "state", + "type": "string" + }, + { + "description": "instance port of the load balancer rule", + "name": "instanceport", + "type": "integer" + } + ], + "type": "list" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", - "type": "string" + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "the name of the storage pool", - "name": "name", + "description": "Load Balancer network id", + "name": "networkid", "type": "string" }, - { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" - }, - { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", - "type": "long" - }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the Zone name of the storage pool", - "name": "zonename", + "description": "the list of resource tags associated with the Load Balancer", + "name": "tags", + "response": [ + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the domain ID of the Load Balancer", + "name": "domainid", "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the storage pool path", - "name": "path", + "description": "Load Balancer source ip", + "name": "sourceipaddress", "type": "string" }, { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, {}, - {}, { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", + "description": "path of the domain to which the Load Balancer belongs", + "name": "domainpath", "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "the description of the Load Balancer", + "name": "description", "type": "string" }, { - "description": "the scope of the storage pool", - "name": "scope", + "description": "the account of the Load Balancer", + "name": "account", "type": "string" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" - }, - { - "description": "the Zone ID of the storage pool", - "name": "zoneid", + "description": "the Load Balancer ID", + "name": "id", "type": "string" }, { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "Load Balancer source ip network id", + "name": "sourceipaddressnetworkid", + "type": "string" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", - "type": "string" + "description": "the list of instances associated with the Load Balancer", + "name": "loadbalancerinstance", + "response": [ + { + "description": "the instance ID", + "name": "id", + "type": "string" + }, + { + "description": "the ip address of the instance", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the name of the instance", + "name": "name", + "type": "string" + }, + { + "description": "the state of the instance", + "name": "state", + "type": "string" + } + ], + "type": "list" } - ] + ], + "since": "4.2.0" }, { - "description": "delete Tungsten-Fabric firewall rule", - "isasync": true, - "name": "deleteTungstenFabricFirewallRule", + "description": "Removes network permissions.", + "isasync": false, + "name": "removeNetworkPermissions", "params": [ { - "description": "the uuid of Tungsten-Fabric firewall rule", + "description": "the network ID", "length": 255, - "name": "firewallruleuuid", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks", "required": true, - "type": "string" + "type": "uuid" }, { - "description": "the ID of zone", + "description": "a comma delimited list of accounts within owner's domain. If specified, \"op\" parameter has to be passed in.", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" + "name": "accounts", + "required": false, + "type": "list" + }, + { + "description": "a comma delimited list of projects within owner's domain. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "projectids", + "related": "", + "required": false, + "type": "list" + }, + { + "description": "a comma delimited list of account IDs within owner's domain. If specified, \"op\" parameter has to be passed in.", + "length": 255, + "name": "accountids", + "related": "listAccounts", + "required": false, + "type": "list" } ], "response": [ @@ -144225,12 +139674,6 @@ "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", @@ -144241,49 +139684,73 @@ "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" } - ] + ], + "since": "4.17.0" }, { - "description": "disable a Cisco Nexus VSM device", - "isasync": true, - "name": "disableCiscoNexusVSM", + "description": "list baremetal pxe server", + "isasync": false, + "name": "listBaremetalPxeServers", "params": [ { - "description": "Id of the Cisco Nexus 1000v VSM device to be deleted", + "description": "Pxe server device ID", "length": 255, "name": "id", - "related": "listCiscoNexusVSMs,disableCiscoNexusVSM", - "required": true, - "type": "uuid" - } - ], - "related": "listCiscoNexusVSMs", - "response": [ + "required": false, + "type": "long" + }, { - "description": "packet vlan id of the VSM", - "name": "vsmpktvlanid", - "type": "int" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, - {}, { - "description": "The Config State (Primary/Standby) of the VSM", - "name": "vsmconfigstate", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, + { + "description": "the Physical Network ID", + "length": 255, + "name": "physicalnetworkid", + "related": "", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "device id of the Cisco N1KV VSM device", - "name": "vsmdeviceid", + "description": "device id of ", + "name": "id", "type": "string" }, { - "description": "device name", - "name": "vsmdevicename", + "description": "name of the provider", + "name": "provider", "type": "string" }, { @@ -144292,93 +139759,57 @@ "type": "string" }, { - "description": "the management IP address of the external Cisco Nexus 1000v Virtual Supervisor Module", - "name": "ipaddress", - "type": "string" - }, - { - "description": "management vlan id of the VSM", - "name": "vsmmgmtvlanid", + "description": "the physical network to which this external dhcp device belongs to", + "name": "physicalnetworkid", "type": "string" }, - { - "description": "control vlan id of the VSM", - "name": "vsmctrlvlanid", - "type": "int" - }, + {}, {}, { - "description": "storage vlan id of the VSM", - "name": "vsmstoragevlanid", - "type": "int" - }, - { - "description": "The mode of the VSM (standalone/HA)", - "name": "vsmconfigmode", - "type": "string" - }, - { - "description": "device state", - "name": "vsmdevicestate", - "type": "string" - }, - { - "description": "The VSM is a switch supervisor. This is the VSM's switch domain id", - "name": "vsmdomainid", - "type": "string" - }, - { - "description": "The Device State (Enabled/Disabled) of the VSM", - "name": "vsmdevicestate", + "description": "url", + "name": "url", "type": "string" } ] }, { - "description": "Creates a Storage network IP range.", + "description": "Adds a Palo Alto firewall device", "isasync": true, - "name": "createStorageNetworkIpRange", + "name": "addPaloAltoFirewall", "params": [ { - "description": "the ending IP address", + "description": "Credentials to reach Palo Alto firewall device", "length": 255, - "name": "endip", - "required": false, + "name": "password", + "required": true, "type": "string" }, { - "description": "the netmask for storage network", + "description": "URL of the Palo Alto appliance.", "length": 255, - "name": "netmask", + "name": "url", "required": true, "type": "string" }, { - "description": "UUID of pod where the ip range belongs to", + "description": "the Physical Network ID", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", + "name": "physicalnetworkid", + "related": "", "required": true, "type": "uuid" }, { - "description": "Optional. The vlan the ip range sits on, default to Null when it is not specified which means your network is not on any Vlan. This is mainly for Vmware as other hypervisors can directly retrieve bridge from physical network traffic type table", - "length": 255, - "name": "vlan", - "required": false, - "type": "integer" - }, - { - "description": "the beginning IP address", + "description": "Credentials to reach Palo Alto firewall device", "length": 255, - "name": "startip", + "name": "username", "required": true, "type": "string" }, { - "description": "the gateway for storage network", + "description": "supports only PaloAltoFirewall", "length": 255, - "name": "gateway", + "name": "networkdevicetype", "required": true, "type": "string" } @@ -144386,551 +139817,504 @@ "related": "", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "name of the provider", + "name": "provider", "type": "string" }, - {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, {}, { - "description": "the end ip of the storage network IP range", - "name": "endip", + "description": "the usage interface of the external firewall", + "name": "usageinterface", "type": "string" }, { - "description": "the uuid of storage network IP range.", - "name": "id", + "description": "device capacity", + "name": "fwdevicecapacity", + "type": "long" + }, + { + "description": "the management IP address of the external firewall", + "name": "ipaddress", "type": "string" }, { - "description": "the Zone uuid of the storage network IP range", - "name": "zoneid", + "description": "the username that's used to log in to the external firewall", + "name": "username", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the private security zone of the external firewall", + "name": "privatezone", + "type": "string" }, { - "description": "the start ip of the storage network IP range", - "name": "startip", + "description": "device state", + "name": "fwdevicestate", "type": "string" }, { - "description": "the network uuid of storage network IP range", - "name": "networkid", + "description": "device name", + "name": "fwdevicename", "type": "string" }, { - "description": "the netmask of the storage network IP range", - "name": "netmask", + "description": "the number of times to retry requests to the external firewall", + "name": "numretries", "type": "string" }, { - "description": "the ID or VID of the VLAN.", - "name": "vlan", - "type": "integer" + "description": "the physical network to which this Palo Alto firewall belongs to", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "the gateway of the storage network IP range", - "name": "gateway", + "description": "the private interface of the external firewall", + "name": "privateinterface", "type": "string" }, { - "description": "the Pod uuid for the storage network IP range", - "name": "podid", + "description": "the timeout (in seconds) for requests to the external firewall", + "name": "timeout", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the public security zone of the external firewall", + "name": "publiczone", + "type": "string" + }, + {}, + { + "description": "device id of the Palo Alto firewall", + "name": "fwdeviceid", + "type": "string" + }, + { + "description": "the zone ID of the external firewall", + "name": "zoneid", + "type": "string" + }, + { + "description": "the public interface of the external firewall", + "name": "publicinterface", "type": "string" } - ], - "since": "3.0.0" + ] }, { - "description": "Configures an ovs element.", + "description": "Creates a private gateway", "isasync": true, - "name": "configureOvsElement", + "name": "createPrivateGateway", "params": [ { - "description": "Enabled/Disabled the service provider", + "description": "the Physical Network ID the network belongs to", "length": 255, - "name": "enabled", - "required": true, + "name": "physicalnetworkid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the network implementation uri for the private gateway", + "length": 255, + "name": "vlan", + "required": false, + "type": "string" + }, + { + "description": "when true bypasses VLAN id/range overlap check during private gateway creation", + "length": 255, + "name": "bypassvlanoverlapcheck", + "required": false, "type": "boolean" }, { - "description": "the ID of the ovs provider", + "description": "source NAT supported value. Default value false. If 'true' source NAT is enabled on the private gateway 'false': sourcenat is not supported", "length": 255, - "name": "id", - "related": "configureOvsElement", + "name": "sourcenatsupported", + "required": false, + "type": "boolean" + }, + { + "description": "the IP address of the Private gateaway", + "length": 255, + "name": "ipaddress", + "required": true, + "type": "string" + }, + { + "description": "the uuid of the network offering to use for the private gateways network connection", + "length": 255, + "name": "networkofferingid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the VPC network belongs to", + "length": 255, + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC", + "required": true, + "type": "uuid" + }, + { + "description": "the gateway of the Private gateway", + "length": 255, + "name": "gateway", + "required": true, + "type": "string" + }, + { + "description": "The isolated network this private gateway is associated to.", + "length": 255, + "name": "associatednetworkid", + "related": "createNetwork,updateNetwork,listNetworks", + "required": false, + "since": "4.17.0", + "type": "uuid" + }, + { + "description": "the ID of the network ACL", + "length": 255, + "name": "aclid", + "related": "createNetworkACLList", + "required": false, + "type": "uuid" + }, + { + "description": "the netmask of the Private gateway", + "length": 255, + "name": "netmask", "required": true, - "type": "uuid" + "type": "string" } ], - "related": "", + "related": "createPrivateGateway,listPrivateGateways", "response": [ { - "description": "Enabled/Disabled the service provider", - "name": "enabled", - "type": "boolean" + "description": "State of the gateway, can be Creating, Ready, Deleting", + "name": "state", + "type": "string" }, { - "description": "the domain associated with the provider", - "name": "domain", + "description": "ACL name set for private gateway", + "name": "aclname", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the gateway", + "name": "gateway", + "type": "string" }, { - "description": "the domain ID associated with the provider", - "name": "domainid", + "description": "path of the domain to which the private gateway belongs", + "name": "domainpath", "type": "string" }, { - "description": "the physical network service provider id of the provider", - "name": "nspid", + "description": "zone id of the private gateway", + "name": "zoneid", "type": "string" }, + {}, { - "description": "the id of the ovs", - "name": "id", + "description": "the private gateway's netmask", + "name": "netmask", "type": "string" }, - {}, { - "description": "path of the domain to which the provider belongs", - "name": "domainpath", + "description": "VPC id the private gateway belongs to", + "name": "vpcid", "type": "string" }, { - "description": "the project name of the address", - "name": "project", + "description": "ACL Id set for private gateway", + "name": "aclid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the zone the private gateway belongs to", + "name": "zonename", "type": "string" }, { - "description": "the account associated with the provider", + "description": "the account associated with the private gateway", "name": "account", "type": "string" }, { - "description": "the project id of the ipaddress", - "name": "projectid", + "description": "the name of the Network associated with this private gateway", + "name": "associatednetwork", "type": "string" - } - ] - }, - { - "description": "Lists System VM stats", - "isasync": false, - "name": "listSystemVmsUsageHistory", - "params": [ + }, { - "description": "the ID of the system VM.", - "length": 255, - "name": "id", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the project id of the private gateway", + "name": "projectid", + "type": "string" }, { - "description": "the IDs of the system VMs, mutually exclusive with id.", - "length": 255, - "name": "ids", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "required": false, - "type": "list" + "description": "the physical network id", + "name": "physicalnetworkid", + "type": "string" }, { - "description": "start date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", - "length": 255, - "name": "startdate", - "required": false, - "type": "date" + "description": "the id of the private gateway", + "name": "id", + "type": "string" }, { - "description": "name of the system VMs (a substring match is made against the parameter value returning the data for all matching VMs).", - "length": 255, - "name": "name", - "required": false, + "description": "the project name of the private gateway", + "name": "project", "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the ID of the domain associated with the private gateway", + "name": "domainid", "type": "string" }, { - "description": "end date to filter stats.Use format \"yyyy-MM-dd hh:mm:ss\")", - "length": 255, - "name": "enddate", - "required": false, - "type": "date" + "description": "the domain associated with the private gateway", + "name": "domain", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the ID of the Network associated with this private gateway", + "name": "associatednetworkid", "type": "string" }, { - "description": "the list of VM stats", - "name": "stats", - "type": "list" + "description": "VPC name the private gateway belongs to", + "name": "vpcname", + "type": "string" + }, + { + "description": "Source Nat enable status", + "name": "sourcenatsupported", + "type": "boolean" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the ID of the virtual machine", - "name": "id", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the network implementation uri for the private gateway", + "name": "vlan", "type": "string" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the private gateway's ip address", + "name": "ipaddress", "type": "string" - }, - {} + } ], - "since": "4.18.0" + "since": "4.17.0" }, { - "description": "Deletes a IPv6 firewall rule", - "isasync": true, - "name": "deleteIpv6FirewallRule", + "description": "Find user account by API key", + "isasync": false, + "name": "getUser", "params": [ { - "description": "the ID of the IPv6 firewall rule", + "description": "API key of the user", "length": 255, - "name": "id", - "related": "", + "name": "userapikey", "required": true, - "type": "uuid" + "type": "string" } ], + "related": "", "response": [ { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the name of the role", + "name": "rolename", + "type": "string" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the account name of the user", + "name": "account", "type": "string" }, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Creates a firewall rule for a given IP address", - "isasync": true, - "name": "createFirewallRule", - "params": [ { - "description": "the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.", - "length": 255, - "name": "protocol", - "required": true, + "description": "the user firstname", + "name": "firstname", "type": "string" }, { - "description": "type of firewallrule: system/user", - "length": 255, - "name": "type", - "required": false, + "description": "the user lastname", + "name": "lastname", "type": "string" }, { - "description": "the starting port of firewall rule", - "length": 255, - "name": "startport", - "required": false, - "type": "integer" - }, - { - "description": "the CIDR list to forward traffic from. Multiple entries must be separated by a single comma character (,).", - "length": 255, - "name": "cidrlist", - "required": false, - "type": "list" + "description": "the type of the role", + "name": "roletype", + "type": "string" }, + {}, { - "description": "error code for this icmp message", - "length": 255, - "name": "icmpcode", - "required": false, - "type": "integer" + "description": "the user state", + "name": "state", + "type": "string" }, { - "description": "type of the ICMP message being sent", - "length": 255, - "name": "icmptype", - "required": false, - "type": "integer" + "description": "the date and time the user account was created", + "name": "created", + "type": "date" }, { - "description": "the ending port of firewall rule", - "length": 255, - "name": "endport", - "required": false, + "description": "the account type of the user", + "name": "accounttype", "type": "integer" }, { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "the IP address id of the port forwarding rule", - "length": 255, - "name": "ipaddressid", - "related": "associateIpAddress,listPublicIpAddresses", - "required": true, - "type": "uuid" - } - ], - "related": "updateEgressFirewallRule", - "response": [ - { - "description": "the network id of the firewall rule", - "name": "networkid", + "description": "the timezone user was created in", + "name": "timezone", "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the api key of the user", + "name": "apikey", "type": "string" }, { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "list" + "description": "the domain name of the user", + "name": "domain", + "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", + "description": "true if user is default, false otherwise", + "name": "isdefault", "type": "boolean" }, { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" + "description": "the secret key of the user", + "name": "secretkey", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the role", + "name": "roleid", "type": "string" }, + {}, { - "description": "the starting port of firewall rule's port range", - "name": "startport", - "type": "integer" + "description": "the user ID", + "name": "id", + "type": "string" }, { - "description": "the public ip address for the firewall rule", - "name": "ipaddress", + "description": "the user email address", + "name": "email", "type": "string" }, - {}, { - "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", - "name": "destcidrlist", + "description": "the domain ID of the user", + "name": "domainid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if user has two factor authentication enabled", + "name": "is2faenabled", + "type": "boolean" }, { - "description": "the protocol of the firewall rule", - "name": "protocol", + "description": "the user name", + "name": "username", "type": "string" }, { - "description": "the ID of the firewall rule", - "name": "id", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, - {}, { - "description": "the ending port of firewall rule's port range", - "name": "endport", - "type": "integer" + "description": "the boolean value representing if the updating target is in caller's child domain", + "name": "iscallerchilddomain", + "type": "boolean" }, { - "description": "the traffic type for the firewall rule", - "name": "traffictype", + "description": "the source type of the user in lowercase, such as native, ldap, saml2", + "name": "usersource", "type": "string" }, { - "description": "the public ip address id for the firewall rule", - "name": "ipaddressid", + "description": "the account ID of the user", + "name": "accountid", "type": "string" }, { - "description": "the state of the rule", - "name": "state", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "true if user has two factor authentication is mandated", + "name": "is2famandated", + "type": "boolean" } ] }, { - "description": "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.", - "isasync": true, - "name": "createVolume", + "description": "Lists load balancer rules.", + "isasync": false, + "name": "listLoadBalancerRules", "params": [ { - "description": "the ID of the virtual machine; to be used with snapshot Id, VM to which the volume gets attached after creation", - "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "required": false, - "type": "uuid" - }, - { - "description": "the name of the disk volume", + "description": "", "length": 255, - "name": "name", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the ID of the disk offering. Either diskOfferingId or snapshotId must be passed in.", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "diskofferingid", - "related": "", + "name": "listall", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "customid", + "name": "account", "required": false, "type": "string" }, { - "description": "the snapshot ID for the disk volume. Either diskOfferingId or snapshotId must be passed in.", + "description": "", "length": 255, - "name": "snapshotid", - "related": "listSnapshots", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the project associated with the volume. Mutually exclusive with account parameter", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, "name": "projectid", "related": "", @@ -144938,7 +140322,7 @@ "type": "uuid" }, { - "description": "the domain ID associated with the disk offering. If used with the account parameter returns the disk volume associated with the account for the specified domain.If account is NOT provided then the volume will be assigned to the caller account and domain.", + "description": "list only resources belonging to the domain specified", "length": 255, "name": "domainid", "related": "listDomains", @@ -144946,35 +140330,45 @@ "type": "uuid" }, { - "description": "max iops", + "description": "the name of the load balancer rule", "length": 255, - "name": "maxiops", + "name": "name", "required": false, - "type": "long" + "type": "string" }, { - "description": "min iops", + "description": "the ID of the virtual machine of the load balancer rule", "length": 255, - "name": "miniops", + "name": "virtualmachineid", + "related": "destroyVirtualMachine,scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "required": false, - "type": "long" + "type": "uuid" }, { - "description": "Arbitrary volume size", + "description": "List resources by tags (key/value pairs)", "length": 255, - "name": "size", + "name": "tags", "required": false, - "type": "long" + "type": "map" }, { - "description": "the account associated with the disk volume. Must be used with the domainId parameter.", + "description": "the ID of the load balancer rule", "length": 255, - "name": "account", + "name": "id", + "related": "", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the ID of the availability zone", + "description": "the public IP address ID of the load balancer rule", + "length": 255, + "name": "publicipid", + "related": "associateIpAddress,listPublicIpAddresses", + "required": false, + "type": "uuid" + }, + { + "description": "the availability zone ID", "length": 255, "name": "zoneid", "related": "listZones", @@ -144982,234 +140376,336 @@ "type": "uuid" }, { - "description": "an optional field, whether to display the volume to the end user or not.", + "description": "List by keyword", "length": 255, - "name": "displayvolume", + "name": "keyword", "required": false, - "type": "boolean" - } - ], - "related": "attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", - "response": [ - { - "description": "ID of the disk volume", - "name": "id", "type": "string" }, { - "description": "the write (IO) of disk on the vm", - "name": "diskiowrite", - "type": "long" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "Hypervisor the volume belongs to", - "name": "hypervisor", - "type": "string" + "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" }, { - "description": "the date the disk volume was created", - "name": "created", - "type": "date" - }, + "description": "list by network ID the rule belongs to", + "length": 255, + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ { - "description": "display name of the virtual machine", - "name": "vmdisplayname", + "description": "the project name of the load balancer", + "name": "project", "type": "string" }, { - "description": "state of the virtual machine", - "name": "vmstate", + "description": "the domain of the load balancer rule", + "name": "domain", "type": "string" }, { - "description": "volume uuid that is given by virtualisation provider (only for VMware)", - "name": "externaluuid", + "description": "the id of the guest network the lb rule belongs to", + "name": "networkid", "type": "string" }, { - "description": "name of the service offering for root disk", - "name": "serviceofferingname", + "description": "path of the domain to which the load balancer rule belongs", + "name": "domainpath", "type": "string" }, { - "description": "the date the volume was attached to a VM instance", - "name": "attached", - "type": "date" - }, - { - "description": "shared or local storage", - "name": "storagetype", + "description": "the private port", + "name": "privateport", "type": "string" }, + {}, { - "description": "path of the Domain the disk volume belongs to", - "name": "domainpath", + "description": "the description of the load balancer", + "name": "description", "type": "string" }, + {}, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the public port", + "name": "publicport", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - { - "description": "true if the volume is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" + "description": "the state of the rule", + "name": "state", + "type": "string" }, { - "description": "the chain info of the volume", - "name": "chaininfo", + "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "an optional field whether to the display the volume to the end user or not.", - "name": "displayvolume", - "type": "boolean" + "description": "the account of the load balancer rule", + "name": "account", + "type": "string" }, { - "description": "the bytes actually consumed on disk", - "name": "physicalsize", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "ID of the disk offering", - "name": "diskofferingid", + "description": "the public ip address id", + "name": "publicipid", "type": "string" }, { - "description": "the display text of the service offering for root disk", - "name": "serviceofferingdisplaytext", + "description": "the public ip address", + "name": "publicip", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "the load balancer algorithm (source, roundrobin, leastconn)", + "name": "algorithm", "type": "string" }, { - "description": "pod id of the volume", - "name": "podid", + "description": "the id of the zone the rule belongs to", + "name": "zoneid", "type": "string" }, { - "description": "the path of the volume", - "name": "path", + "description": "the name of the load balancer", + "name": "name", "type": "string" }, { - "description": "cluster name where the volume is allocated", - "name": "clustername", + "description": "the name of the zone the load balancer rule belongs to", + "name": "zonename", "type": "string" }, { - "description": "max iops of the disk volume", - "name": "maxiops", - "type": "long" + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" }, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the protocol of the loadbalanacer rule", + "name": "protocol", "type": "string" }, { - "description": "the bytes allocated", - "name": "virtualsize", - "type": "long" + "description": "the load balancer rule ID", + "name": "id", + "type": "string" }, { - "description": "details for the volume repair result, they may vary for different hypervisors", - "name": "volumerepairresult", - "type": "map" + "description": "the list of resource tags associated with load balancer", + "name": "tags", + "response": [ + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "list" }, { - "description": "min iops of the disk volume", - "name": "miniops", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the project id of the load balancer", + "name": "projectid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", + "description": "the domain ID of the load balancer rule", + "name": "domainid", "type": "string" - }, + } + ] + }, + { + "description": "Deletes a firewall rule", + "isasync": true, + "name": "deleteFirewallRule", + "params": [ { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the ID of the firewall rule", + "length": 255, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "details for the volume check result, they may vary for different hypervisors", - "name": "volumecheckresult", - "type": "map" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "id of the virtual machine", - "name": "virtualmachineid", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "the format of the disk encryption if applicable", - "name": "encryptformat", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, + {} + ] + }, + { + "description": "Upload a certificate to CloudStack", + "isasync": false, + "name": "uploadSslCert", + "params": [ { - "description": "type of the virtual machine", - "name": "vmtype", - "type": "string" + "description": "Enables revocation checking for certificates", + "length": 255, + "name": "enabledrevocationcheck", + "required": false, + "since": "4.15", + "type": "boolean" }, { - "description": "IO requests write rate of the disk volume per the disk offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "domain ID of the account owning the SSL certificate", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "account that will own the SSL certificate", + "length": 255, + "name": "account", + "required": false, + "type": "string" }, { - "description": "cluster id of the volume", - "name": "clusterid", + "description": "Name for the uploaded certificate", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" + "description": "Certificate chain of trust", + "length": 2097152, + "name": "certchain", + "required": false, + "type": "string" }, { - "description": "name of the disk volume", - "name": "name", + "description": "Password for the private key", + "length": 255, + "name": "password", + "required": false, "type": "string" }, { - "description": "IO requests read rate of the disk volume per the disk offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "an optional project for the SSL certificate", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Private key", + "length": 16384, + "name": "privatekey", + "required": true, "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "SSL certificate", + "length": 16384, + "name": "certificate", + "required": true, "type": "string" - }, + } + ], + "related": "", + "response": [ { - "description": "the read (IO) of disk on the vm", - "name": "diskioread", - "type": "long" + "description": "the domain id of the network owner", + "name": "domainid", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -145217,543 +140713,464 @@ "type": "integer" }, { - "description": "true if storage snapshot is supported for the volume, false otherwise", - "name": "supportsstoragesnapshot", - "type": "boolean" - }, - { - "description": "name of the virtual machine", - "name": "vmname", + "description": "the project name of the certificate", + "name": "project", "type": "string" }, { - "description": "size of the disk volume", - "name": "size", - "type": "long" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the domain name of the network owner", + "name": "domain", "type": "string" }, { - "description": "id of the primary storage hosting the disk volume; returned to admin user only", - "name": "storageid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the disk utilization", - "name": "utilization", + "description": "account for the certificate", + "name": "account", "type": "string" }, + {}, { - "description": "pod name of the volume", - "name": "podname", + "description": "certificate fingerprint", + "name": "fingerprint", "type": "string" }, { - "description": "the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached.", - "name": "deviceid", - "type": "long" - }, - { - "description": "ID of the service offering for root disk", - "name": "serviceofferingid", + "description": "the project id of the certificate", + "name": "projectid", "type": "string" }, { - "description": "ID of the availability zone", - "name": "zoneid", + "description": "name", + "name": "name", "type": "string" }, { - "description": "bytes write rate of the disk volume", - "name": "diskBytesWriteRate", - "type": "long" - }, - { - "description": "the boolean state of whether the volume is destroyed or not", - "name": "destroyed", - "type": "boolean" + "description": "certificate chain", + "name": "certchain", + "type": "string" }, - {}, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "SSL certificate ID", + "name": "id", "type": "string" }, { - "description": "the status of the volume", - "name": "status", - "type": "string" + "description": "List of loabalancers this certificate is bound to", + "name": "loadbalancerrulelist", + "type": "list" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "certificate", + "name": "certificate", "type": "string" }, + {} + ] + }, + { + "description": "Updates the registered OAuth provider details", + "isasync": false, + "name": "updateOauthProvider", + "params": [ { - "description": "need quiesce vm or not when taking snapshot", - "name": "quiescevm", - "type": "boolean" + "description": "Description of the OAuth Provider", + "length": 255, + "name": "description", + "required": false, + "type": "string" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "Redirect URI pre-registered in the specific OAuth provider", + "length": 255, + "name": "redirecturi", + "required": false, "type": "string" }, { - "description": "bytes read rate of the disk volume", - "name": "diskBytesReadRate", - "type": "long" + "description": "id of the OAuth provider to be updated", + "length": 255, + "name": "id", + "related": "updateOauthProvider", + "required": true, + "type": "uuid" }, { - "description": "ID of the snapshot from which this volume was created", - "name": "snapshotid", - "type": "string" + "description": "OAuth provider will be enabled or disabled based on this value", + "length": 255, + "name": "enabled", + "required": false, + "type": "boolean" }, { - "description": "provisioning type used to create volumes.", - "name": "provisioningtype", + "description": "Secret Key pre-registered in the specific OAuth provider", + "length": 255, + "name": "secretkey", + "required": false, "type": "string" }, { - "description": "name of the availability zone", - "name": "zonename", + "description": "Client ID pre-registered in the specific OAuth provider", + "length": 255, + "name": "clientid", + "required": false, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "ID of the provider", + "name": "id", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "Name of the provider", + "name": "name", "type": "string" }, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "Client ID registered in the OAuth provider", + "name": "clientid", "type": "string" }, { - "description": "type of the disk volume (ROOT or DATADISK)", - "name": "type", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if volume has delete protection.", - "name": "deleteprotection", + "description": "Secret key registered in the OAuth provider", + "name": "secretkey", + "type": "string" + }, + { + "description": "Whether the OAuth provider is enabled or not", + "name": "enabled", "type": "boolean" }, { - "description": "name of the primary storage hosting the disk volume", - "name": "storage", + "description": "Name of the provider", + "name": "provider", "type": "string" }, { - "description": "the state of the disk volume", - "name": "state", + "description": "Description of the provider registered", + "name": "description", "type": "string" }, - {} - ] + {}, + {}, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Redirect URI registered in the OAuth provider", + "name": "redirecturi", + "type": "string" + } + ], + "since": "4.19.0" }, { - "description": "List virtual machine snapshot by conditions", - "isasync": false, - "name": "listVMSnapshot", + "description": "Creates site to site vpn customer gateway", + "isasync": true, + "name": "createVpnCustomerGateway", "params": [ { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "IPsec Preshared-Key of the customer gateway. Cannot contain newline or double quotes.", + "length": 255, + "name": "ipsecpsk", + "required": true, + "type": "string" + }, + { + "description": "create site-to-site VPN customer gateway for the project", "length": 255, "name": "projectid", "related": "", "required": false, + "since": "4.6", "type": "uuid" }, { - "description": "", + "description": "If DPD is enabled for VPN connection", "length": 255, - "name": "page", + "name": "dpd", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "IKE policy of the customer gateway", "length": 255, - "name": "account", - "required": false, + "name": "ikepolicy", + "required": true, "type": "string" }, { - "description": "", + "description": "name of this customer gateway", "length": 255, - "name": "pagesize", + "name": "name", "required": false, - "type": "integer" + "type": "string" }, { - "description": "The ID of the VM snapshot", + "description": "the account associated with the gateway. Must be used with the domainId parameter.", "length": 255, - "name": "vmsnapshotid", - "related": "listVMSnapshot,createVMSnapshot", + "name": "account", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "Lifetime of phase 1 VPN connection to the customer gateway, in seconds", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "ikelifetime", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "ESP policy of the customer gateway", "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "name": "esppolicy", + "required": true, + "type": "string" }, { - "description": "lists snapshot by snapshot name or display name", + "description": "the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.", "length": 255, - "name": "name", + "name": "domainid", + "related": "listDomains", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "public ip address id of the customer gateway", "length": 255, - "name": "listall", - "required": false, - "type": "boolean" + "name": "gateway", + "required": true, + "type": "string" }, { - "description": "the ID of the vm", + "description": "Force Encapsulation for NAT traversal", "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "name": "forceencap", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "List resources by tags (key/value pairs)", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Connections marked with 'ike' will use 'ikev2' when initiating, but accept any protocol version when responding. Defaults to ike", "length": 255, - "name": "tags", + "name": "ikeversion", "required": false, - "type": "map" + "since": "4.15.1", + "type": "string" }, { - "description": "the IDs of the vm snapshots, mutually exclusive with vmsnapshotid", + "description": "guest cidr list of the customer gateway. Multiple entries must be separated by a single comma character (,).", "length": 255, - "name": "vmsnapshotids", - "related": "listVMSnapshot,createVMSnapshot", - "required": false, - "since": "4.9", - "type": "list" + "name": "cidrlist", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", "length": 255, - "name": "keyword", + "name": "splitconnections", "required": false, - "type": "string" + "since": "4.15.1", + "type": "boolean" }, { - "description": "state of the virtual machine snapshot", + "description": "Lifetime of phase 2 VPN connection to the customer gateway, in seconds", "length": 255, - "name": "state", + "name": "esplifetime", "required": false, - "type": "string" + "type": "long" } ], - "related": "createVMSnapshot", + "related": "", "response": [ { - "description": "the name of the vm snapshot", - "name": "name", + "description": "the domain name of the owner", + "name": "domain", "type": "string" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "name of the customer gateway", + "name": "name", "type": "string" }, { - "description": "path of the domain to which the disk volume belongs", - "name": "domainpath", + "description": "IPsec policy of customer gateway", + "name": "esppolicy", "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 vm name of the vm snapshot", - "name": "virtualmachinename", - "type": "string" + "description": "Lifetime of IKE SA of customer gateway", + "name": "ikelifetime", + "type": "long" }, { - "description": "the ID of the vm snapshot", - "name": "id", + "description": "Which IKE Version to use, one of ike (autoselect), ikev1, or ikev2. Defaults to ike", + "name": "ikeversion", "type": "string" }, + {}, { - "description": "the account associated with the disk volume", - "name": "account", - "type": "string" + "description": "if DPD is enabled for customer gateway", + "name": "dpd", + "type": "boolean" }, { - "description": "the type of hypervisor on which snapshot is stored", - "name": "hypervisor", - "type": "string" + "description": "For IKEv2, whether to split multiple right subnet cidrs into multiple connection statements.", + "name": "splitconnections", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "the display name of the vm snapshot", - "name": "displayname", - "type": "string" + "description": "if Force NAT Encapsulation is enabled for customer gateway", + "name": "forceencap", + "type": "boolean" }, { - "description": "the vm ID of the vm snapshot", - "name": "virtualmachineid", + "description": "public ip address id of the customer gateway", + "name": "gateway", "type": "string" }, - {}, { - "description": "the Zone name of the vm snapshot", - "name": "zonename", - "type": "string" + "description": "Lifetime of ESP SA of customer gateway", + "name": "esplifetime", + "type": "long" }, - {}, { - "description": "the Zone ID of the vm snapshot", - "name": "zoneid", + "description": "the domain path of the owner", + "name": "domainpath", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "IPsec preshared-key of customer gateway", + "name": "ipsecpsk", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "guest ip of the customer gateway", + "name": "ipaddress", "type": "string" }, { - "description": "the description of the vm snapshot", - "name": "description", + "description": "the domain id of the owner", + "name": "domainid", "type": "string" }, { - "description": "the parent displayName of the vm snapshot", - "name": "parentName", + "description": "the vpn gateway ID", + "name": "id", "type": "string" }, { - "description": "the domain associated with the disk volume", - "name": "domain", + "description": "IKE policy of customer gateway", + "name": "ikepolicy", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name", + "name": "project", + "type": "string" }, { - "description": "the state of the vm snapshot", - "name": "state", - "type": "state" + "description": "guest cidr list of the customer gateway. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", + "type": "string" }, { - "description": "VM Snapshot type", - "name": "type", + "description": "the project id", + "name": "projectid", "type": "string" }, { - "description": "the parent ID of the vm snapshot", - "name": "parent", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the create date of the vm snapshot", - "name": "created", + "description": "the date and time the host was removed", + "name": "removed", "type": "date" }, { - "description": "indicates if this is current snapshot", - "name": "current", - "type": "boolean" + "description": "the owner", + "name": "account", + "type": "string" } - ], - "since": "4.2.0" + ] }, { - "description": "Move an ACL rule to a position bettwen two other ACL rules of the same ACL network list", + "description": "Creates a Management network IP range.", "isasync": true, - "name": "moveNetworkAclItem", + "name": "createManagementNetworkIpRange", "params": [ { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "Specify if range is dedicated for CPVM and SSVM.", "length": 255, - "name": "customid", + "name": "forsystemvms", "required": false, - "since": "4.4", - "type": "string" + "type": "boolean" }, { - "description": "The ID of the first rule that is right before the new position where the rule being moved is going to be placed. This value can be 'NULL' if the rule is being moved to the first position of the network ACL list.", + "description": "The ending IP address.", "length": 255, - "name": "previousaclruleid", + "name": "endip", "required": false, "type": "string" }, { - "description": "The ID of the rule that is right after the new position where the rule being moved is going to be placed. This value can be 'NULL' if the rule is being moved to the last position of the network ACL list.", + "description": "Optional. The vlan id the ip range sits on, default to Null when it is not specified which means your network is not on any Vlan", "length": 255, - "name": "nextaclruleid", + "name": "vlan", "required": false, "type": "string" }, { - "description": "Md5 hash used to check the consistency of the ACL rule list before applying the ACL rule move. This check is useful to manage concurrency problems that may happen when multiple users are editing the same ACL rule listing. The parameter is not required. Therefore, if the user does not send it, they assume the risk of moving ACL rules without checking the consistency of the access control list before executing the move. We use MD5 hash function on a String that is composed of all UUIDs of the ACL rules in concatenated in their respective order (order defined via 'number' field).", + "description": "UUID of POD, where the IP range belongs to.", "length": 255, - "name": "aclconsistencyhash", - "required": false, + "name": "podid", + "related": "createManagementNetworkIpRange", + "required": true, + "type": "uuid" + }, + { + "description": "The gateway for the management network.", + "length": 255, + "name": "gateway", + "required": true, "type": "string" }, { - "description": "The ID of the network ACL rule that is being moved to a new position.", + "description": "The netmask for the management network.", "length": 255, - "name": "id", + "name": "netmask", + "required": true, + "type": "string" + }, + { + "description": "The starting IP address.", + "length": 255, + "name": "startip", "required": true, "type": "string" } @@ -145761,607 +141178,626 @@ "related": "", "response": [ { - "description": "Number of the ACL Item", - "name": "number", - "type": "integer" + "description": "the ID of the Pod", + "name": "id", + "type": "string" }, { - "description": "the protocol of the ACL", - "name": "protocol", + "description": "the netmask of the Pod", + "name": "netmask", "type": "string" }, + {}, { - "description": "the list of resource tags associated with the network ACLs", - "name": "tags", + "description": "the Zone name of the Pod", + "name": "zonename", + "type": "string" + }, + { + "description": "the IP ranges for the Pod", + "name": "ipranges", "response": [ { - "description": "tag value", - "name": "value", + "description": "the starting IP for the range", + "name": "startip", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "indicates Vlan ID for the range", + "name": "vlanid", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the gateway for the range", + "name": "gateway", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the CIDR for the range", + "name": "cidr", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "indicates if range is dedicated for CPVM and SSVM", + "name": "forsystemvms", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the ending IP for the range", + "name": "endip", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "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 Zone ID of the Pod", + "name": "zoneid", + "type": "string" + }, + { + "description": "the gateway of the Pod", + "name": "gateway", + "type": "string" + }, + { + "description": "the allocation state of the Pod", + "name": "allocationstate", + "type": "string" + }, + { + "description": "the capacity of the Pod", + "name": "capacity", + "response": [ + { + "description": "the capacity name", + "name": "name", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the percentage of capacity currently in use", + "name": "percentused", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the Cluster ID", + "name": "clusterid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the capacity type", + "name": "type", + "type": "short" + }, + { + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" + }, + { + "description": "the Pod ID", + "name": "podid", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" + }, + { + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the Zone name", + "name": "zonename", + "type": "string" + }, + { + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" + }, + { + "description": "the Zone ID", + "name": "zoneid", + "type": "string" + }, + { + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" + }, + { + "description": "the Pod name", + "name": "podname", "type": "string" } ], "type": "list" }, - {}, { - "description": "the name of the ACL this item belongs to", - "name": "aclname", + "description": "the name of the Pod", + "name": "name", "type": "string" }, { - "description": "Action of ACL Item. Allow/Deny", - "name": "action", - "type": "string" + "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", + "name": "endip", + "type": "list" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the ending port of ACL's port range", - "name": "endport", - "type": "string" + "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", + "name": "vlanid", + "type": "list" }, { - "description": "error code for this icmp message", - "name": "icmpcode", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "an explanation on why this ACL rule is being applied", - "name": "reason", - "type": "string" + "description": "the starting IP for the Pod. This parameter is deprecated, please use 'startip' from ipranges parameter.", + "name": "startip", + "type": "list" }, + {} + ], + "since": "4.11.0.0" + }, + { + "description": "Adds vpn users", + "isasync": true, + "name": "addVpnUser", + "params": [ { - "description": "the starting port of ACL's port range", - "name": "startport", + "description": "password for the username", + "length": 255, + "name": "password", + "required": true, "type": "string" }, { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", - "type": "string" + "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "the ID of the ACL Item", - "name": "id", + "description": "username for the vpn user", + "length": 255, + "name": "username", + "required": true, "type": "string" }, { - "description": "type of the icmp message being sent", - "name": "icmptype", - "type": "integer" + "description": "add vpn user to the specific project", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the ID of the ACL this item belongs to", - "name": "aclid", + "description": "an optional account for the vpn user. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "the vpn userID", + "name": "id", "type": "string" }, { - "description": "the traffic type for the ACL", - "name": "traffictype", + "description": "the domain name of the account of the remote access vpn", + "name": "domain", "type": "string" }, { - "description": "the state of the rule", - "name": "state", + "description": "the domain id of the account of the remote access vpn", + "name": "domainid", "type": "string" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "the username of the vpn user", + "name": "username", + "type": "string" }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ] - }, - { - "description": "Disassociates an IP address from the account.", - "isasync": true, - "name": "disassociateIpAddress", - "params": [ + }, { - "description": "the ID of the public IP address to disassociate. Mutually exclusive with the ipaddress parameter", - "length": 255, - "name": "id", - "related": "associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "IP Address to be disassociated. Mutually exclusive with the id parameter", - "length": 255, - "name": "ipaddress", - "required": false, - "since": "4.19.0", + "description": "the project id of the vpn", + "name": "projectid", "type": "string" - } - ], - "response": [ + }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the state of the Vpn User, can be 'Add', 'Revoke' or 'Active'.", + "name": "state", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the account of the remote access vpn", + "name": "account", + "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the project name of the vpn", + "name": "project", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the domain to which the remote access vpn belongs", + "name": "domainpath", "type": "string" } ] }, { - "description": "list baremetal dhcp servers", + "description": "add a baremetal host", "isasync": false, - "name": "listBaremetalDhcp", + "name": "addBaremetalHost", "params": [ { - "description": "Type of DHCP device", + "description": "the cluster ID for the host", "length": 255, - "name": "dhcpservertype", + "name": "clusterid", + "related": "", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the Physical Network ID", + "description": "hypervisor type of the host", "length": 255, - "name": "physicalnetworkid", - "related": "", + "name": "hypervisor", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "", + "description": "Allocation state of this Host for allocation of new resources", "length": 255, - "name": "page", + "name": "allocationstate", "required": false, - "type": "integer" + "type": "string" }, { - "description": "", + "description": "list of tags to be added to the host", "length": 255, - "name": "pagesize", + "name": "hosttags", "required": false, - "type": "integer" + "type": "list" }, { - "description": "DHCP server device ID", + "description": "the host URL", "length": 255, - "name": "id", - "required": false, - "type": "long" + "name": "url", + "required": true, + "type": "string" }, { - "description": "List by keyword", + "description": "the cluster name for the host", "length": 255, - "name": "keyword", + "name": "clustername", "required": false, "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the physical network to which this external dhcp device belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "name of the provider", - "name": "provider", - "type": "string" - }, - { - "description": "name of the provider", - "name": "dhcpservertype", - "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ip address intentionally allocated to this host after provisioning", + "length": 255, + "name": "ipaddress", + "required": false, "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the Pod ID for the host", + "length": 255, + "name": "podid", + "related": "", + "required": true, + "type": "uuid" }, { - "description": "url", - "name": "url", + "description": "the username for the host; required to be passed for hypervisors other than VMWare", + "length": 255, + "name": "username", + "required": false, "type": "string" }, { - "description": "device id of ", - "name": "id", + "description": "the password for the host; required to be passed for hypervisors other than VMWare", + "length": 255, + "name": "password", + "required": false, "type": "string" }, - {}, - {} - ] - }, - { - "description": "Puts storage pool into maintenance state", - "isasync": true, - "name": "enableStorageMaintenance", - "params": [ { - "description": "Primary storage ID", + "description": "the Zone ID for the host", "length": 255, - "name": "id", - "related": "cancelStorageMaintenance,enableStorageMaintenance", + "name": "zoneid", + "related": "listZones", "required": true, "type": "uuid" } ], - "related": "cancelStorageMaintenance", + "related": "", "response": [ + {}, { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" - }, - { - "description": "the name of the storage pool", - "name": "name", + "description": "the ID of the host", + "name": "id", "type": "string" }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", - "type": "boolean" - }, - { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "the date and time the host was created", + "name": "created", + "type": "date" }, { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", + "description": "the hypervisor version", + "name": "hypervisorversion", "type": "string" }, { - "description": "whether this pool is managed or not", - "name": "managed", - "type": "boolean" + "description": "true if the host is disconnected. False otherwise.", + "name": "disconnected", + "type": "date" }, { - "description": "the name of the cluster for the storage pool", - "name": "clustername", + "description": "the Zone name of the host", + "name": "zonename", "type": "string" }, { - "description": "the Pod name of the storage pool", - "name": "podname", - "type": "string" + "description": "the cpu average load on the host", + "name": "cpuloadaverage", + "type": "double" }, { - "description": "the ID of the storage pool", - "name": "id", - "type": "string" + "description": "true if local storage is active, false otherwise", + "name": "islocalstorageactive", + "type": "boolean" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the date and time the host was removed", + "name": "removed", + "type": "date" }, { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", - "type": "string" + "description": "the amount of the host's CPU currently allocated in MHz", + "name": "cpuallocatedvalue", + "type": "long" }, { - "description": "the Zone name of the storage pool", - "name": "zonename", + "description": "the OS category ID of the host", + "name": "oscategoryid", "type": "string" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", + "description": "the amount of the host's memory currently allocated in percentage", + "name": "memoryallocatedpercentage", "type": "string" }, { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" + "description": "the host type", + "name": "type", + "type": "type" }, { - "description": "the Zone ID of the storage pool", + "description": "the Zone ID of the host", "name": "zoneid", "type": "string" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" + "description": "the CPU number of the host", + "name": "cpunumber", + "type": "integer" }, - {}, { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" + "description": "the cluster type of the cluster that host belongs to", + "name": "clustertype", + "type": "string" }, { - "description": "the scope of the storage pool", - "name": "scope", + "description": "the amount of the host's CPU currently allocated in percentage", + "name": "cpuallocatedpercentage", "type": "string" }, { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" + "description": "the amount of the host's memory currently used", + "name": "memoryused", + "type": "long" }, { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "GPU cards present in the host", + "name": "gpugroup", + "response": [ + { + "description": "the list of enabled vGPUs", + "name": "vgpu", + "response": [ + { + "description": "Maximum no. of vgpu per gpu card (pgpu)", + "name": "maxvgpuperpgpu", + "type": "long" + }, + { + "description": "Maximum Y resolution per display", + "name": "maxresolutiony", + "type": "long" + }, + { + "description": "Maximum X resolution per display", + "name": "maxresolutionx", + "type": "long" + }, + { + "description": "Maximum displays per user", + "name": "maxheads", + "type": "long" + }, + { + "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", + "name": "maxcapacity", + "type": "long" + }, + { + "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", + "name": "remainingcapacity", + "type": "long" + }, + { + "description": "Video RAM for this vGPU type", + "name": "videoram", + "type": "long" + }, + { + "description": "Model Name of vGPU", + "name": "vgputype", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "GPU cards present in the host", + "name": "gpugroupname", + "type": "string" + } + ], + "type": "list" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", + "description": "the admin that annotated this host", + "name": "username", "type": "string" }, { - "description": "Storage provider for this pool", - "name": "provider", - "type": "string" + "description": "the last time this host was annotated", + "name": "lastannotated", + "type": "date" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", + "name": "cpuallocatedwithoverprovisioning", + "type": "string" }, { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", + "description": "comma-separated list of tags for the host", + "name": "hosttags", "type": "string" }, { - "description": "the storage pool type", - "name": "type", + "description": "the amount of the host's CPU currently allocated", + "name": "cpuallocated", "type": "string" }, { - "description": "the storage pool path", - "name": "path", + "description": "the IP address of the host", + "name": "ipaddress", "type": "string" }, { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" + "description": "the number of CPU sockets on the host", + "name": "cpusockets", + "type": "integer" }, { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", + "description": "the cluster ID of the host", + "name": "clusterid", "type": "string" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the cluster name of the host", + "name": "clustername", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", + "description": "the incoming network traffic on the host", + "name": "networkkbsread", "type": "long" - } - ] - }, - { - "description": "Removes an existing secondary storage selector.", - "isasync": false, - "name": "removeSecondaryStorageSelector", - "params": [ - { - "description": "The unique identifier of the secondary storage selector to be removed.", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - }, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the amount of the host's memory currently allocated", + "name": "memoryallocated", + "type": "long" }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.19.0" - }, - { - "description": "lists all available apis on the server, provided by the Api Discovery plugin", - "isasync": false, - "name": "listApis", - "params": [ { - "description": "API name", - "length": 255, - "name": "name", - "required": false, + "description": "the Pod name of the host", + "name": "podname", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "version of CloudStack the api was introduced in", - "name": "since", - "type": "string" + "description": "the date and time the host was last pinged", + "name": "lastpinged", + "type": "date" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Whether the informed tag is a JS interpretable rule or not.", + "name": "istagarule", + "type": "boolean" }, { - "description": "the list params the api accepts", - "name": "params", - "response": [ - { - "description": "true if this parameter is required for the api request", - "name": "required", - "type": "boolean" - }, - { - "description": "description of the api parameter", - "name": "description", - "type": "string" - }, - { - "description": "parameter type", - "name": "type", - "type": "string" - }, - { - "description": "the name of the api parameter", - "name": "name", - "type": "string" - }, - {}, - { - "description": "version of CloudStack the api was introduced in", - "name": "since", - "type": "string" - }, - { - "description": "comma separated related apis to get the parameter", - "name": "related", - "type": "string" - }, - { - "description": "length of the parameter", - "name": "length", - "type": "int" - } - ], - "type": "set" + "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", + "name": "hahost", + "type": "boolean" }, { - "description": "description of the api", - "name": "description", + "description": "capabilities of the host", + "name": "capabilities", "type": "string" }, - {}, { - "description": "true if api is asynchronous", - "name": "isasync", + "description": "true if the host supports encryption", + "name": "encryptionsupported", "type": "boolean" }, { - "description": "comma separated related apis", - "name": "related", - "type": "string" + "description": "the outgoing network traffic on the host", + "name": "networkkbswrite", + "type": "long" }, {}, { - "description": "the name of the api command", - "name": "name", + "description": "the OS category name of the host", + "name": "oscategoryname", "type": "string" }, { - "description": "response field type", - "name": "type", - "type": "string" + "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", + "name": "suitableformigration", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -146369,482 +141805,398 @@ "type": "string" }, { - "description": "api response fields", - "name": "response", - "response": [ - { - "description": "response field type", - "name": "type", - "type": "string" - }, - { - "description": "description of the api response field", - "name": "description", - "type": "string" - }, - { - "description": "the name of the api response field", - "name": "name", - "type": "string" - }, - { - "description": "api response fields", - "name": "response", - "type": "set" - } - ], - "type": "set" - } - ], - "since": "4.1.0" - }, - { - "description": "deletes baremetal rack configuration text", - "isasync": true, - "name": "deleteBaremetalRct", - "params": [ - { - "description": "RCT id", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the host hypervisor", + "name": "hypervisor", "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the resource state of the host", + "name": "resourcestate", "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if the host has capability to support UEFI boot", + "name": "ueficapability", "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ] - }, - { - "description": "Creates snapshot for a vm.", - "isasync": true, - "name": "createVMSnapshot", - "params": [ + "description": "CPU Arch of the host", + "name": "arch", + "type": "string" + }, { - "description": "quiesce vm if true", - "length": 255, - "name": "quiescevm", - "required": false, - "type": "boolean" + "description": "Host details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "The ID of the vm", - "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "required": true, - "type": "uuid" + "description": "the host's currently allocated disk size", + "name": "disksizeallocated", + "type": "long" }, { - "description": "snapshot memory if true", - "length": 255, - "name": "snapshotmemory", - "required": false, + "description": "true if the host supports instance conversion (using virt-v2v)", + "name": "instanceconversionsupported", "type": "boolean" }, { - "description": "The display name of the snapshot", - "length": 255, - "name": "name", - "required": false, + "description": "the Pod ID of the host", + "name": "podid", "type": "string" }, { - "description": "The description of the snapshot", - "length": 255, - "name": "description", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ + "description": "the CPU speed of the host", + "name": "cpuspeed", + "type": "long" + }, { - "description": "the project id of the vpn", - "name": "projectid", - "type": "string" + "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", + "name": "hasenoughcapacity", + "type": "boolean" }, { - "description": "the parent displayName of the vm snapshot", - "name": "parentName", + "description": "the last annotation set on this host by an admin", + "name": "annotation", "type": "string" }, { - "description": "the ID of the domain associated with the disk volume", - "name": "domainid", + "description": "the total disk size of the host", + "name": "disksizetotal", + "type": "long" + }, + { + "description": "the state of the host", + "name": "state", + "type": "status" + }, + { + "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", + "name": "memorywithoverprovisioning", "type": "string" }, { - "description": "the vm ID of the vm snapshot", - "name": "virtualmachineid", + "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", + "name": "cpuwithoverprovisioning", "type": "string" }, { - "description": "the account associated with the disk volume", - "name": "account", + "description": "the amount of the host's memory currently allocated in bytes", + "name": "memoryallocatedbytes", + "type": "long" + }, + { + "description": "comma-separated list of implicit host tags for the host", + "name": "implicithosttags", "type": "string" }, { - "description": "the name of the vm snapshot", - "name": "name", + "description": "comma-separated list of explicit host tags for the host", + "name": "explicithosttags", "type": "string" }, + { + "description": "the host out-of-band management information", + "name": "outofbandmanagement", + "type": "outofbandmanagementresponse" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the domain associated with the disk volume", - "name": "domain", - "type": "string" + "description": "the host HA information information", + "name": "hostha", + "type": "hostharesponse" }, { - "description": "the state of the vm snapshot", - "name": "state", - "type": "state" + "description": "the amount of the host's CPU currently used", + "name": "cpuused", + "type": "string" }, - {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the host", + "name": "name", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the host version", + "name": "version", "type": "string" }, { - "description": "VM Snapshot type", - "name": "type", + "description": "events available for the host", + "name": "events", "type": "string" }, { - "description": "the create date of the vm snapshot", - "name": "created", - "type": "date" + "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", + "name": "memorytotal", + "type": "long" }, { - "description": "the ID of the vm snapshot", - "name": "id", + "description": "the management server ID of the host", + "name": "managementserverid", "type": "string" }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + } + ] + }, + { + "description": "remove an annotation.", + "isasync": false, + "name": "removeAnnotation", + "params": [ + { + "description": "the id of the annotation", + "length": 255, + "name": "id", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ {}, { - "description": "path of the domain to which the disk volume belongs", - "name": "domainpath", + "description": "The (uu)id of the user that entered the annotation", + "name": "userid", "type": "string" }, { - "description": "the parent ID of the vm snapshot", - "name": "parent", + "description": "the (uu)id of the annotation", + "name": "id", "type": "string" }, { - "description": "the vm name of the vm snapshot", - "name": "virtualmachinename", - "type": "string" + "description": "the creation timestamp for this annotation", + "name": "created", + "type": "date" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "True if the annotation is available for admins only", + "name": "adminsonly", "type": "boolean" }, { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the description of the vm snapshot", - "name": "description", + "description": "The username of the user that entered the annotation", + "name": "username", "type": "string" }, { - "description": "indicates if this is current snapshot", - "name": "current", - "type": "boolean" + "description": "the contents of the annotation", + "name": "annotation", + "type": "string" }, { - "description": "the Zone name of the vm snapshot", - "name": "zonename", + "description": "the (uu)id of the entity to which this annotation pertains", + "name": "entityid", "type": "string" }, + {}, { - "description": "the display name of the vm snapshot", - "name": "displayname", + "description": "the type of the annotated entity", + "name": "entitytype", "type": "string" }, { - "description": "the Zone ID of the vm snapshot", - "name": "zoneid", + "description": "the removal timestamp for this annotation", + "name": "removed", + "type": "date" + }, + { + "description": "the name of the entity to which this annotation pertains", + "name": "entityname", "type": "string" }, { - "description": "the type of hypervisor on which snapshot is stored", - "name": "hypervisor", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" } ], - "since": "4.2.0" + "since": "4.11" }, { - "description": "Deletes an internal load balancer", - "isasync": true, - "name": "deleteLoadBalancer", + "description": "Deletes a project role permission in the project", + "isasync": false, + "name": "deleteProjectRolePermission", "params": [ { - "description": "the ID of the Load Balancer", + "description": "ID of the project role permission to be deleted", "length": 255, "name": "id", "related": "", "required": true, "type": "uuid" + }, + { + "description": "ID of the project where the project role permission is to be deleted", + "length": 255, + "name": "projectid", + "related": "", + "required": true, + "type": "uuid" } ], "response": [ - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "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 UUID of the latest async job acting on this object", - "name": "jobid", + "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" - } + }, + {} ], - "since": "4.2.0" + "since": "4.15.0" }, { - "description": "Lists Tungsten-Fabric tags", + "description": "Disables a role", "isasync": false, - "name": "listTungstenFabricTagType", + "name": "disableRole", "params": [ { - "description": "the uuid of Tungsten-Fabric tag type", + "description": "ID of the role", "length": 255, - "name": "tagtypeuuid", - "required": false, + "name": "id", + "related": "", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {} + ], + "since": "4.20.0" + }, + { + "description": "Deletes a role permission", + "isasync": false, + "name": "deleteRolePermission", + "params": [ { - "description": "", + "description": "ID of the role permission", "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "name": "id", + "related": "", + "required": true, + "type": "uuid" } ], - "related": "", "response": [ + {}, { - "description": "Tungsten-Fabric tag type name", - "name": "name", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Tungsten-Fabric tag type uuid", - "name": "uuid", - "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": "Tungsten-Fabric provider zone name", - "name": "zonename", - "type": "string" - }, {}, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, - { - "description": "Tungsten-Fabric provider zone id", - "name": "zoneid", - "type": "long" - }, - {} - ] + } + ], + "since": "4.9.0" }, { - "description": "Returns a download URL for extracting a snapshot. It must be in the Backed Up state.", - "isasync": true, - "name": "extractSnapshot", + "description": "Updates the quarantine end date for the given public IP address.", + "isasync": false, + "name": "updateQuarantinedIp", "params": [ { - "description": "the ID of the zone where the snapshot is located", + "description": "The public IP address in active quarantine. Either the IP address is informed, or the ID of the IP address in quarantine.", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "ipaddress", + "required": false, + "type": "string" + }, + { + "description": "The date when the quarantine will no longer be active.", + "length": 255, + "name": "enddate", "required": true, - "since": "4.20.0", - "type": "uuid" + "type": "date" }, { - "description": "the ID of the snapshot", + "description": "The ID of the public IP address in active quarantine.", "length": 255, "name": "id", - "related": "listSnapshots", - "required": true, - "since": "4.20.0", + "related": "updateQuarantinedIp", + "required": false, "type": "uuid" } ], "related": "", "response": [ { - "description": "the id of extracted object", - "name": "id", - "type": "string" - }, - { - "description": "the mode of extraction - upload or download", - "name": "extractMode", - "type": "string" - }, - { - "description": "", - "name": "resultstring", - "type": "string" - }, - { - "description": "type of the storage", - "name": "storagetype", - "type": "string" + "description": "When the quarantine was removed.", + "name": "removed", + "type": "date" }, { - "description": "the account id to which the extracted object belongs", - "name": "accountid", + "description": "ID of the account that removed the IP from quarantine.", + "name": "removeraccountid", "type": "string" }, { - "description": "the percentage of the entity uploaded to the specified location", - "name": "uploadpercentage", - "type": "integer" - }, - { - "description": "the status of the extraction", - "name": "status", + "description": "Account name of the previous public IP address owner.", + "name": "previousownername", "type": "string" }, { @@ -146852,17 +142204,17 @@ "name": "jobstatus", "type": "integer" }, - {}, { - "description": "zone name the object was extracted from", - "name": "zonename", - "type": "string" + "description": "When the quarantine was created.", + "name": "created", + "type": "date" }, {}, + {}, { - "description": "the state of the extracted object", - "name": "state", - "type": "string" + "description": "End date for the quarantine.", + "name": "enddate", + "type": "date" }, { "description": "the UUID of the latest async job acting on this object", @@ -146870,445 +142222,322 @@ "type": "string" }, { - "description": "the name of the extracted object", - "name": "name", + "description": "The public IP address in quarantine.", + "name": "ipaddress", "type": "string" }, { - "description": "the time and date the object was created", - "name": "created", - "type": "date" - }, - { - "description": "if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded", - "name": "url", + "description": "Account ID of the previous public IP address owner.", + "name": "previousownerid", "type": "string" }, { - "description": "the upload id of extracted object", - "name": "extractId", + "description": "The reason for removing the IP from quarantine prematurely.", + "name": "removalreason", "type": "string" }, { - "description": "zone ID the object was extracted from", - "name": "zoneid", + "description": "ID of the quarantine process.", + "name": "id", "type": "string" } ], - "since": "4.20.0" + "since": "4.19" }, { - "description": "List registered keypairs", + "description": "Update VM Schedule.", "isasync": false, - "name": "listSSHKeyPairs", + "name": "updateVMSchedule", "params": [ { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" - }, - { - "description": "A public key fingerprint to look for", + "description": "Specifies a timezone for this command. For more information on the timezone parameter, see TimeZone Format.", "length": 255, - "name": "fingerprint", + "name": "timezone", "required": false, "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "Schedule for action on VM in cron format. e.g. '0 15 10 * *' for 'at 15:00 on 10th day of every month'", "length": 255, - "name": "account", + "name": "schedule", "required": false, "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - }, - { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "start date from which the schedule becomes activeUse format \"yyyy-MM-dd hh:mm:ss\")", "length": 255, - "name": "projectid", - "related": "", + "name": "startdate", "required": false, - "type": "uuid" + "type": "date" }, { - "description": "the ID of the ssh keypair", + "description": "Enable VM schedule", "length": 255, - "name": "id", - "related": "listSSHKeyPairs", + "name": "enabled", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "A key pair name to look for", + "description": "end date after which the schedule becomes inactiveUse format \"yyyy-MM-dd hh:mm:ss\")", "length": 255, - "name": "name", + "name": "enddate", "required": false, - "type": "string" + "type": "date" }, { - "description": "List by keyword", + "description": "Name of the schedule", "length": 255, - "name": "keyword", + "name": "description", "required": false, "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "ID of VM schedule", "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, + "name": "id", + "related": "updateVMSchedule", + "required": true, "type": "uuid" } ], "related": "", "response": [ - {}, { - "description": "the domain name of the keypair owner", - "name": "domain", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the domain id of the keypair owner", - "name": "domainid", + "description": "Timezone of the schedule", + "name": "timezone", "type": "string" }, + {}, { - "description": "the project id of the keypair owner", - "name": "projectid", - "type": "string" + "description": "Date when the schedule was created", + "name": "created", + "type": "date" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Cron formatted VM schedule", + "name": "schedule", "type": "string" }, { - "description": "Name of the keypair", - "name": "name", + "description": "Description of VM schedule", + "name": "description", "type": "string" }, { - "description": "ID of the ssh keypair", + "description": "the ID of VM schedule", "name": "id", "type": "string" }, { - "description": "the owner of the keypair", - "name": "account", - "type": "string" - }, - {}, - { - "description": "the project name of the keypair owner", - "name": "project", - "type": "string" + "description": "Date from which the schedule is active", + "name": "startdate", + "type": "date" }, { - "description": "Fingerprint of the public key", - "name": "fingerprint", - "type": "string" + "description": "Date after which the schedule becomes inactive", + "name": "enddate", + "type": "date" }, + {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "VM schedule is enabled", + "name": "enabled", "type": "boolean" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] - }, - { - "description": "Cancels maintenance for primary storage", - "isasync": true, - "name": "cancelStorageMaintenance", - "params": [ - { - "description": "the primary storage ID", - "length": 255, - "name": "id", - "related": "cancelStorageMaintenance", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the scope of the storage pool", - "name": "scope", - "type": "string" - }, - { - "description": "the storage pool type", - "name": "type", - "type": "string" - }, - { - "description": "the overprovisionfactor for the storage pool", - "name": "overprovisionfactor", - "type": "string" - }, - { - "description": "the storage pool custom stats", - "name": "storagecustomstats", - "type": "map" - }, - { - "description": "the state of the storage pool", - "name": "state", - "type": "storagepoolstatus" - }, - { - "description": "the ID of the cluster for the storage pool", - "name": "clusterid", - "type": "string" - }, - { - "description": "the nfs mount options for the storage pool", - "name": "nfsmountopts", - "type": "string" }, { - "description": "the Zone ID of the storage pool", - "name": "zoneid", - "type": "string" + "description": "Action", + "name": "action", + "type": "action" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "ID of virtual machine", + "name": "virtualmachineid", "type": "string" - }, + } + ], + "since": "4.19.0" + }, + { + "description": "Updates a template to VNF template or attributes of a VNF template.", + "isasync": false, + "name": "updateVnfTemplate", + "params": [ { - "description": "true if this pool is suitable to migrate a volume, false otherwise", - "name": "suitableformigration", + "description": "true if the template supports the sshkey upload feature; default is false", + "length": 255, + "name": "sshkeyenabled", + "required": false, "type": "boolean" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" - }, - { - "description": "total min IOPS currently in use by volumes", - "name": "allocatediops", - "type": "long" + "description": "the ID of the OS type that best represents the OS of this image.", + "length": 255, + "name": "ostypeid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the date and time the storage pool was created", - "name": "created", - "type": "date" + "description": "sort key of the template, integer", + "length": 255, + "name": "sortkey", + "required": false, + "type": "integer" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if the image supports the password reset feature; default is false", + "length": 255, + "name": "passwordenabled", + "required": false, "type": "boolean" }, { - "description": "the host's currently used disk size", - "name": "disksizeused", - "type": "long" - }, - { - "description": "the hypervisor type of the storage pool", - "name": "hypervisor", - "type": "string" - }, - {}, - { - "description": "the ID of the storage pool", - "name": "id", - "type": "string" - }, - { - "description": "the Zone name of the storage pool", - "name": "zonename", + "description": "the tag for this template.", + "length": 255, + "name": "templatetag", + "required": false, + "since": "4.20.0", "type": "string" }, { - "description": "IOPS CloudStack can provision from this storage pool", - "name": "capacityiops", - "type": "long" - }, - { - "description": "the total disk size of the storage pool", - "name": "disksizetotal", - "type": "long" - }, - { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", + "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "length": 255, + "name": "isdynamicallyscalable", + "required": false, "type": "boolean" }, { - "description": "the Pod ID of the storage pool", - "name": "podid", - "type": "string" - }, - { - "description": "Storage provider for this pool", - "name": "provider", - "type": "string" - }, - { - "description": "whether this pool is managed or not", - "name": "managed", + "description": "optional boolean field, which indicates if VNF nics will be cleaned up or not", + "length": 255, + "name": "cleanupvnfnics", + "required": false, "type": "boolean" }, { - "description": "the name of the storage pool", - "name": "name", - "type": "string" - }, - { - "description": "the storage pool path", - "name": "path", - "type": "string" - }, - {}, - { - "description": "the name of the cluster for the storage pool", - "name": "clustername", - "type": "string" - }, - { - "description": "the Pod name of the storage pool", - "name": "podname", - "type": "string" + "description": "optional boolean field, which indicates if VNF details will be cleaned up or not", + "length": 255, + "name": "cleanupvnfdetails", + "required": false, + "type": "boolean" }, { - "description": "the IP address of the storage pool", - "name": "ipaddress", - "type": "string" + "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the tags for the storage pool", - "name": "tags", + "description": "the CPU arch of the template/ISO. Valid options are: x86_64, aarch64", + "length": 255, + "name": "arch", + "required": false, + "since": "4.20", "type": "string" }, { - "description": "the storage pool capabilities", - "name": "storagecapabilities", - "type": "map" - } - ] - }, - { - "description": "Updates the snapshot policy.", - "isasync": true, - "name": "updateSnapshotPolicy", - "params": [ - { - "description": "the ID of the snapshot policy", + "description": "true if image is bootable, false otherwise; available only for updateIso API", "length": 255, - "name": "id", - "related": "updateSnapshotPolicy", + "name": "bootable", "required": false, - "type": "uuid" + "type": "boolean" }, { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "description": "the name of the image file", "length": 255, - "name": "customid", + "name": "name", "required": false, - "since": "4.4", "type": "string" }, { - "description": "an optional field, whether to the display the snapshot policy to the end user or not.", + "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", "length": 255, - "name": "fordisplay", + "name": "templatetype", "required": false, - "since": "4.4", - "type": "boolean" - } - ], - "related": "", - "response": [ + "type": "string" + }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if the template type is routing i.e., if template is used to deploy router", + "length": 255, + "name": "isrouting", + "required": false, "type": "boolean" }, - {}, { - "description": "maximum number of snapshots retained", - "name": "maxsnaps", - "type": "int" + "description": "true if the template requires HVM, false otherwise; available only for updateTemplate API", + "length": 255, + "name": "requireshvm", + "required": false, + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", + "length": 255, + "name": "cleanupdetails", + "required": false, + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "VNF details in key/value pairs using format vnfdetails[i].keyname=keyvalue. Example: vnfdetails[0].vendor=xxx&&vnfdetails[0].version=2.0", + "length": 255, + "name": "vnfdetails", + "required": false, + "type": "map" }, { - "description": "the time zone of the snapshot policy", - "name": "timezone", + "description": "the display text of the image", + "length": 4096, + "name": "displaytext", + "required": false, "type": "string" }, { - "description": "The list of zones in which snapshot backup is scheduled", - "name": "zone", - "type": "set" - }, - { - "description": "time the snapshot is scheduled to be taken.", - "name": "schedule", + "description": "the format for the image", + "length": 255, + "name": "format", + "required": false, "type": "string" }, { - "description": "is this policy for display to the regular user", - "name": "fordisplay", - "type": "boolean" + "description": "VNF nics in key/value pairs using format vnfnics[i].keyname=keyvalue. Example: vnfnics[0].deviceid=0&&vnfnics[0].name=FirstNIC&&vnfnics[0].required=true&&vnfnics[1].deviceid=1&&vnfnics[1].name=SecondNIC", + "length": 255, + "name": "vnfnics", + "required": false, + "type": "map" }, + { + "description": "the ID of the image file", + "length": 255, + "name": "id", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" + } + ], + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate", + "response": [ { "description": "the list of resource tags associated", "name": "tags", "response": [ { - "description": "id of the resource", - "name": "resourceid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -147317,142 +142546,143 @@ "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "customer associated with the tag", + "name": "customer", "type": "string" } ], "type": "set" }, { - "description": "the ID of the snapshot policy", - "name": "id", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the ID of the disk volume", - "name": "volumeid", + "description": "the template ID", + "name": "id", "type": "string" }, - {}, { - "description": "the interval type of the snapshot policy", - "name": "intervaltype", - "type": "short" - } - ] - }, - { - "description": "Retrieves the current status of asynchronous job.", - "isasync": false, - "name": "queryAsyncJobResult", - "params": [ + "description": "path of the Domain the template belongs to", + "name": "domainpath", + "type": "string" + }, { - "description": "the ID of the asynchronous job", - "length": 255, - "name": "jobid", - "related": "queryAsyncJobResult", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ + "description": "the type of the template", + "name": "templatetype", + "type": "string" + }, { - "description": "the domain id that executed the async command", - "name": "domainid", + "description": "CPU Arch of the template", + "name": "arch", "type": "string" }, { - "description": "the progress information of the PENDING job", - "name": "jobprocstatus", - "type": "integer" + "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", + "name": "isdynamicallyscalable", + "type": "boolean" }, { - "description": "the msid of the management server on which the job is running", - "name": "managementserverid", - "type": "long" + "description": "checksum of the template", + "name": "checksum", + "type": "string" }, { - "description": "the account id that executed the async command", - "name": "accountid", + "description": "if Datadisk template, then id of the root disk template this template belongs to", + "name": "parenttemplateid", "type": "string" }, { - "description": "the result type", - "name": "jobresulttype", + "description": "the ID of the secondary storage host for the template", + "name": "hostid", "type": "string" }, - {}, { - "description": "the domain that executed the async command", - "name": "domainpath", + "description": "the physical size of the template", + "name": "physicalsize", + "type": "long" + }, + { + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" + }, + { + "description": "the name of the secondary storage host for the template", + "name": "hostname", "type": "string" }, { - "description": "the unique ID of the instance/entity object related to the job", - "name": "jobinstanceid", + "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", + "name": "userdataparams", "type": "string" }, { - "description": "the result code for the job", - "name": "jobresultcode", - "type": "integer" + "description": "true if template is sshkey enabled, false otherwise", + "name": "sshkeyenabled", + "type": "boolean" }, { - "description": "the result reason", - "name": "jobresult", - "type": "responseobject" + "description": "true if template requires HVM enabled, false otherwise", + "name": "requireshvm", + "type": "boolean" }, { - "description": " the completed date of the job", - "name": "completed", - "type": "date" + "description": "if root disk template, then ids of the datas disk templates this template owns", + "name": "childtemplates", + "type": "set" }, { - "description": "the current job status-should be 0 for PENDING", - "name": "jobstatus", - "type": "integer" + "description": "true if this template is a featured template, false otherwise", + "name": "isfeatured", + "type": "boolean" }, + {}, { - "description": "the instance/entity object related to the job", - "name": "jobinstancetype", - "type": "string" + "description": "true if the ISO is bootable, false otherwise", + "name": "bootable", + "type": "boolean" + }, + { + "description": "true if the template is extractable, false otherwise", + "name": "isextractable", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -147460,255 +142690,232 @@ "type": "string" }, { - "description": "the user that executed the async command", - "name": "userid", + "description": "the size of the template", + "name": "size", + "type": "long" + }, + { + "description": "the template ID of the parent template if present", + "name": "sourcetemplateid", "type": "string" }, { - "description": "the async command executed", - "name": "cmd", + "description": "the project id of the template", + "name": "projectid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the account id to which the template belongs", + "name": "accountid", + "type": "string" }, { - "description": " the created date of the job", - "name": "created", - "type": "date" + "description": "the tag of this template", + "name": "templatetag", + "type": "string" }, - {}, { - "description": "the account that executed the async command", + "description": "true if the template is ready to be deployed from, false otherwise.", + "name": "isready", + "type": "boolean" + }, + { + "description": "the account name to which the template belongs", "name": "account", "type": "string" - } - ] - }, - { - "description": "Adds a netscaler control center device", - "isasync": true, - "name": "registerNetscalerControlCenter", - "params": [ + }, { - "description": "Credentials to reach netscaler controlcenter device", - "length": 255, - "name": "password", - "required": true, + "description": "the template name", + "name": "name", "type": "string" }, { - "description": "Credentials to reach netscaler controlcenter device", - "length": 255, - "name": "username", - "required": true, + "description": "the ID of the OS type for this template.", + "name": "ostypeid", "type": "string" }, { - "description": "Credentials to reach netscaler controlcenter device", - "length": 255, - "name": "numretries", - "required": true, - "type": "integer" + "description": "the template display text", + "name": "displaytext", + "type": "string" }, { - "description": "URL of the netscaler controlcenter appliance.", - "length": 255, - "name": "ipaddress", - "required": true, + "description": "the ID of the domain to which the template belongs", + "name": "domainid", "type": "string" - } - ], - "related": "addNetscalerLoadBalancer", - "response": [ - { - "description": "true if device is dedicated for an account", - "name": "lbdevicededicated", - "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the format of the template.", + "name": "format", + "type": "imageformat" }, { - "description": "the public interface of the load balancer", - "name": "publicinterface", - "type": "string" + "description": "the processor bit size", + "name": "bits", + "type": "int" }, { - "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", - "name": "isexclusivegslbprovider", - "type": "boolean" + "description": "the ID of the zone for this template", + "name": "zoneid", + "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 load balancer", - "name": "privateinterface", - "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": "device name", - "name": "lbdevicename", - "type": "string" + "description": "additional key/value details tied with template", + "name": "details", + "type": "map" }, { - "description": "public IP of the NetScaler representing GSLB site", - "name": "gslbproviderpublicip", - "type": "string" + "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" }, { - "description": "name of the provider", - "name": "provider", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "device state", - "name": "lbdevicestate", - "type": "string" + "description": "the date this template was created", + "name": "created", + "type": "date" }, { - "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", - "name": "podids", - "type": "list" + "description": "the name of the zone for this template", + "name": "zonename", + "type": "string" }, { - "description": "device id of the netscaler load balancer", - "name": "lbdeviceid", + "description": "the name of userdata linked to this template", + "name": "userdataname", "type": "string" }, { - "description": "the physical network to which this netscaler device belongs to", - "name": "physicalnetworkid", + "description": "the id of userdata linked to this template", + "name": "userdataid", "type": "string" }, { - "description": "private IP of the NetScaler representing GSLB site", - "name": "gslbproviderprivateip", + "description": "true if the template is managed across all Zones, false otherwise", + "name": "crossZones", + "type": "boolean" + }, + { + "description": "the URL which the template/iso is registered from", + "name": "url", "type": "string" }, { - "description": "device capacity", - "name": "lbdevicecapacity", - "type": "long" + "description": "the date this template was removed", + "name": "removed", + "type": "date" }, { - "description": "true if NetScaler device is provisioned to be a GSLB service provider", - "name": "gslbprovider", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the management IP address of the external load balancer", - "name": "ipaddress", + "description": "the name of the domain to which the template belongs", + "name": "domain", "type": "string" - } - ] - }, - { - "description": "Adds metric counter for VM auto scaling", - "isasync": true, - "name": "createCounter", - "params": [ + }, { - "description": "Name of the counter.", - "length": 255, - "name": "name", - "required": true, - "type": "string" + "description": "true if this template is a public template, false otherwise", + "name": "ispublic", + "type": "boolean" }, { - "description": "Source of the counter.", - "length": 255, - "name": "source", - "required": true, - "type": "string" + "description": "true if the reset password feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "Network provider of the counter.", - "length": 255, - "name": "provider", - "required": true, - "since": "4.18.0", + "description": "the status of the template", + "name": "status", "type": "string" }, { - "description": "Value of the counter e.g. oid in case of snmp.", - "length": 255, - "name": "value", - "required": true, + "description": "the project name of the template", + "name": "project", "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" }, { - "description": "Name of the counter.", - "name": "name", + "description": "the name of the OS type for this template.", + "name": "ostypename", "type": "string" }, - {}, { - "description": "Provider of the counter.", - "name": "provider", - "type": "string" + "description": "VMware only: additional key/value details tied with deploy-as-is template", + "name": "deployasisdetails", + "type": "map" }, - {}, { - "description": "Source of the counter.", - "name": "source", - "type": "string" + "description": "Lists the download progress of a template across all secondary storages", + "name": "downloaddetails", + "type": "list" }, + {} + ], + "since": "4.19.0" + }, + { + "description": "Lists all configuration groups (primarily used for UI).", + "isasync": false, + "name": "listConfigurationGroups", + "params": [ { - "description": "Value in case of snmp or other specific counters.", - "name": "value", + "description": "lists configuration group by group name", + "length": 255, + "name": "group", + "required": false, "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "zone id of counter", - "name": "zoneid", - "type": "string" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the id of the Counter", - "name": "id", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" } - ] - }, - { - "description": "List Event Types", - "isasync": false, - "name": "listEventTypes", - "params": [], + ], "related": "", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the description of the configuration group", + "name": "description", "type": "string" }, - {}, - {}, { - "description": "Event Type", + "description": "the precedence of the configuration group", + "name": "precedence", + "type": "long" + }, + { + "description": "the name of the configuration group", "name": "name", "type": "string" }, @@ -147716,267 +142923,433 @@ "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - } - ] + }, + { + "description": "the subgroups of the configuration group", + "name": "subgroup", + "response": [ + { + "description": "the precedence of the configuration subgroup", + "name": "precedence", + "type": "long" + }, + { + "description": "the name of the configuration subgroup", + "name": "name", + "type": "string" + } + ], + "type": "list" + }, + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {} + ], + "since": "4.18.0" }, { - "description": "Prepares CloudStack for a safe manual shutdown by preventing new jobs from being accepted", + "description": "Releases a Pod IP back to the Pod", "isasync": false, - "name": "prepareForShutdown", + "name": "releasePodIpAddress", "params": [ { - "description": "the uuid of the management server", + "description": "UUID of the Pod IP", "length": 255, - "name": "managementserverid", - "related": "", + "name": "id", "required": true, - "type": "uuid" + "type": "long" } ], - "related": "", "response": [ - { - "description": "The id of the management server", - "name": "managementserverid", - "type": "long" - }, - {}, - {}, - { - "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": "Indicates whether a shutdown has been triggered", - "name": "shutdowntriggered", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" }, { - "description": "Indicates whether CloudStack is ready to shutdown", - "name": "readyforshutdown", - "type": "boolean" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, { - "description": "The number of jobs in progress", - "name": "pendingjobscount", - "type": "long" - } - ], - "since": "4.19.0" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + {} + ] }, { - "description": "Adds a new cluster", - "isasync": false, - "name": "addCluster", + "description": "Updates VPC offering", + "isasync": true, + "name": "updateVPCOffering", "params": [ { - "description": "the Zone ID for the cluster", + "description": "update state for the VPC offering; supported states - Enabled/Disabled", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "state", + "required": false, + "type": "string" + }, + { + "description": "the id of the VPC offering", + "length": 255, + "name": "id", + "related": "updateVPCOffering", "required": true, "type": "uuid" }, { - "description": "Ovm3 vip to use for pool (and cluster)", + "description": "the name of the VPC offering", "length": 255, - "name": "ovm3vip", + "name": "name", "required": false, "type": "string" }, { - "description": "the CPU arch of the cluster. Valid options are: x86_64, aarch64", + "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", "length": 255, - "name": "arch", + "name": "zoneid", "required": false, - "since": "4.20", + "since": "4.13", "type": "string" }, { - "description": "Name of virtual switch used for guest traffic in the cluster. This would override zone wide traffic label setting.", - "length": 255, - "name": "guestvswitchname", + "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", + "length": 4096, + "name": "domainid", "required": false, "type": "string" }, { - "description": "the ipaddress of the VSM associated with this cluster", + "description": "sort key of the VPC offering, integer", "length": 255, - "name": "vsmipaddress", + "name": "sortkey", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the cluster name", + "description": "the display text of the VPC offering", "length": 255, - "name": "clustername", - "required": true, + "name": "displaytext", + "required": false, "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "true if vpc offering can be used by NSX networks only", + "name": "fornsx", + "type": "boolean" }, { - "description": "the password for the host", - "length": 255, - "name": "password", - "required": false, + "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "zone", "type": "string" }, { - "description": "Ovm3 native pooling enabled for cluster", - "length": 255, - "name": "ovm3pool", - "required": false, + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "Ovm3 native OCFS2 clustering enabled for cluster", - "length": 255, - "name": "ovm3cluster", - "required": false, + "description": "the id of the vpc offering", + "name": "id", "type": "string" }, { - "description": "the URL", - "length": 255, - "name": "url", - "required": false, + "description": "an alternate display text of the vpc offering.", + "name": "displaytext", "type": "string" }, { - "description": "hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator,Ovm3", - "length": 255, - "name": "hypervisor", - "required": true, + "description": "true if network offering supports choosing AS numbers", + "name": "specifyasnumber", + "type": "boolean" + }, + { + "description": "the date this vpc offering was created", + "name": "created", + "type": "date" + }, + { + "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 password for the VSM associated with this cluster", - "length": 255, - "name": "vsmpassword", - "required": false, + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "type of the cluster: CloudManaged, ExternalManaged", - "length": 255, - "name": "clustertype", - "required": true, + "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", + "name": "networkmode", "type": "string" }, { - "description": "the username for the cluster", - "length": 255, - "name": "username", - "required": false, + "description": "the internet protocol of the vpc offering", + "name": "internetprotocol", "type": "string" }, { - "description": "the Pod ID for the host", - "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", - "required": true, - "type": "uuid" + "description": "the list of supported services", + "name": "service", + "response": [ + { + "description": "the list of capabilities", + "name": "capability", + "response": [ + { + "description": "can this service capability value can be choosable while creatine network offerings", + "name": "canchooseservicecapability", + "type": "boolean" + }, + { + "description": "the capability name", + "name": "name", + "type": "string" + }, + { + "description": "the capability value", + "name": "value", + "type": "string" + } + ], + "type": "list" + }, + { + "description": "the service provider name", + "name": "provider", + "response": [ + { + "description": "the destination physical network", + "name": "destinationphysicalnetworkid", + "type": "string" + }, + { + "description": "the physical network this belongs to", + "name": "physicalnetworkid", + "type": "string" + }, + { + "description": "state of the network provider", + "name": "state", + "type": "string" + }, + { + "description": "the provider name", + "name": "name", + "type": "string" + }, + { + "description": "uuid of the network provider", + "name": "id", + "type": "string" + }, + { + "description": "services for this provider", + "name": "servicelist", + "type": "list" + }, + { + "description": "true if individual services can be enabled/disabled", + "name": "canenableindividualservice", + "type": "boolean" + } + ], + "type": "list" + }, + { + "description": "the service name", + "name": "name", + "type": "string" + } + ], + "type": "list" }, + {}, { - "description": "Allocation state of this cluster for allocation of new resources", - "length": 255, - "name": "allocationstate", - "required": false, + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the username for the VSM associated with this cluster", - "length": 255, - "name": "vsmusername", - "required": false, + "description": "true if vpc offering is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the routing mode for the network offering, supported types are Static or Dynamic.", + "name": "routingmode", "type": "string" }, { - "description": "Type of virtual switch used for public traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)", - "length": 255, - "name": "publicvswitchtype", - "required": false, + "description": "the name of the vpc offering", + "name": "name", "type": "string" }, { - "description": "Type of virtual switch used for guest traffic in the cluster. Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)", + "description": " indicates if the vpc offering supports distributed router for one-hop forwarding", + "name": "distributedvpcrouter", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "state of the vpc offering. Can be Disabled/Enabled", + "name": "state", + "type": "string" + }, + { + "description": "indicated if the offering can support region level vpc", + "name": "supportsregionLevelvpc", + "type": "boolean" + } + ] + }, + { + "description": "Updates remote access vpn", + "isasync": true, + "name": "updateRemoteAccessVpn", + "params": [ + { + "description": "id of the remote access vpn", "length": 255, - "name": "guestvswitchtype", + "name": "id", + "related": "updateRemoteAccessVpn", + "required": true, + "type": "uuid" + }, + { + "description": "an optional field, whether to the display the vpn to the end user or not", + "length": 255, + "name": "fordisplay", "required": false, - "type": "string" + "since": "4.4", + "type": "boolean" }, { - "description": "Name of virtual switch used for public traffic in the cluster. This would override zone wide traffic label setting.", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", "length": 255, - "name": "publicvswitchname", + "name": "customid", "required": false, + "since": "4.4", "type": "string" } ], "related": "", "response": [ { - "description": "The cpu overcommit ratio of the cluster", - "name": "cpuovercommitratio", + "description": "is vpn for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the ipsec preshared key", + "name": "presharedkey", "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 Zone ID of the cluster", - "name": "zoneid", + "description": "the account of the remote access vpn", + "name": "account", "type": "string" }, { - "description": "The memory overcommit ratio of the cluster", - "name": "memoryovercommitratio", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "Ovm3 VIP to use for pooling and/or clustering", - "name": "ovm3vip", + "description": "the id of the remote access vpn", + "name": "id", "type": "string" }, {}, { - "description": "CPU Arch of the hosts in the cluster", - "name": "arch", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project name of the vpn", + "name": "project", "type": "string" }, { - "description": "whether this cluster is managed by cloudstack", - "name": "managedstate", + "description": "the domain id of the account of the remote access vpn", + "name": "domainid", "type": "string" }, { - "description": "the cluster ID", - "name": "id", + "description": "the public ip address of the vpn server", + "name": "publicipid", "type": "string" }, { - "description": "the allocation state of the cluster", - "name": "allocationstate", + "description": "the domain name of the account of the remote access vpn", + "name": "domain", "type": "string" }, { - "description": "Meta data associated with the zone (key/value pairs)", - "name": "resourcedetails", - "type": "map" + "description": "the range of ips to allocate to the clients", + "name": "iprange", + "type": "string" + }, + { + "description": "the public ip address of the vpn server", + "name": "publicip", + "type": "string" + }, + {}, + { + "description": "the project id of the vpn", + "name": "projectid", + "type": "string" }, + { + "description": "path of the domain to which the remote access vpn belongs", + "name": "domainpath", + "type": "string" + } + ], + "since": "4.4" + }, + { + "description": "Lists user two factor authenticator providers", + "isasync": false, + "name": "listUserTwoFactorAuthenticatorProviders", + "params": [ + { + "description": "List user two factor authenticator provider by name", + "length": 255, + "name": "name", + "required": false, + "type": "string" + } + ], + "related": "", + "response": [ { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", @@ -147984,124 +143357,91 @@ }, {}, { - "description": "the hypervisor type of the cluster", - "name": "hypervisortype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Zone name of the cluster", - "name": "zonename", + "description": "the user two factor authenticator provider name", + "name": "name", "type": "string" }, { - "description": "the type of the cluster", - "name": "clustertype", + "description": "the description of the user two factor authenticator provider", + "name": "description", "type": "string" }, - { - "description": "the capacity of the Cluster", - "name": "capacity", - "response": [ - { - "description": "the capacity name", - "name": "name", - "type": "string" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - } - ], - "type": "list" + {} + ], + "since": "4.18.0" + }, + { + "description": "Scales the virtual machine to a new service offering. This command also considers the volume size in the service offering or disk offering linked to the new service offering and apply all characteristics to the root volume.", + "isasync": true, + "name": "scaleVirtualMachine", + "params": [ + { + "description": "Verify OK to Shrink", + "length": 255, + "name": "shrinkok", + "required": false, + "since": "4.17", + "type": "boolean" }, { - "description": "the Pod ID of the cluster", - "name": "podid", - "type": "string" + "description": "the ID of the service offering for the virtual machine", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" }, { - "description": "the cluster name", - "name": "name", - "type": "string" + "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", + "length": 255, + "name": "details", + "required": false, + "type": "map" }, { - "description": "the Pod name of the cluster", - "name": "podname", - "type": "string" - } - ] - }, - { - "description": "Deletes an traffic monitor host.", - "isasync": false, - "name": "deleteTrafficMonitor", - "params": [ + "description": "New minimum number of IOPS for the custom disk offering", + "length": 255, + "name": "miniops", + "required": false, + "since": "4.17", + "type": "long" + }, { - "description": "Id of the Traffic Monitor Host.", + "description": "The ID of the virtual machine", "length": 255, "name": "id", - "related": "reconnectHost", + "related": "destroyVirtualMachine,scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "required": true, "type": "uuid" + }, + { + "description": "New maximum number of IOPS for the custom disk offering", + "length": 255, + "name": "maxiops", + "required": false, + "since": "4.17", + "type": "long" + }, + { + "description": "Flag for automatic migration of the root volume with new compute offering whenever migration is required to apply the offering", + "length": 255, + "name": "automigrate", + "required": false, + "since": "4.17", + "type": "boolean" } ], "response": [ + { + "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", @@ -148114,11 +143454,6 @@ "name": "displaytext", "type": "string" }, - { - "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", @@ -148127,72 +143462,56 @@ ] }, { - "description": "Removes VM from specified network by deleting a NIC", + "description": "Destroys a virtual machine. Once destroyed, only the administrator can recover it.", "isasync": true, - "name": "removeNicFromVirtualMachine", + "name": "destroyVirtualMachine", "params": [ { - "description": "Virtual Machine ID", + "description": "If true is passed, the vm is expunged immediately. False by default.", "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,removeNicFromVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "required": true, - "type": "uuid" + "name": "expunge", + "required": false, + "since": "4.2.1", + "type": "boolean" }, { - "description": "NIC ID", + "description": "Comma separated list of UUIDs for volumes that will be deleted", "length": 255, - "name": "nicid", - "related": "", + "name": "volumeids", + "related": "attachVolume,createVolume,detachVolume,migrateVolume,resizeVolume,updateVolume,uploadVolume,listVolumes,destroyVolume,recoverVolume", + "required": false, + "since": "4.12.0", + "type": "list" + }, + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "destroyVirtualMachine,scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "required": true, "type": "uuid" } ], - "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "related": "scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", "response": [ { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "User VM type", - "name": "vmtype", - "type": "string" - }, - { - "description": "OS name of the vm", - "name": "osdisplayname", - "type": "string" - }, - { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the type of the template for the virtual machine", + "name": "templatetype", "type": "string" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", - "type": "long" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { @@ -148201,594 +143520,387 @@ "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", - "type": "string" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" - }, - { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, - {}, - { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", + "description": "the list of nics associated with vm", + "name": "nic", "response": [ { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - } - ], - "type": "set" + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" }, { - "description": "the description of the security group", - "name": "description", + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the ID of the security group", - "name": "id", + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "the domain ID of the security group", - "name": "domainid", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - } - ], - "type": "set" + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" }, { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - } - ], - "type": "set" + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" }, { - "description": "the name of the security group", - "name": "name", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the project id of the group", - "name": "projectid", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" + "description": "the type of the nic", + "name": "type", + "type": "string" }, { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", "type": "integer" }, { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" }, { - "description": "the account owning the security group", - "name": "account", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "the project name of the group", - "name": "project", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { - "description": "the domain name of the security group", - "name": "domain", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" } ], "type": "set" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" + }, + { + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, - {}, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", - "type": "string" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "VNF details", + "name": "vnfdetails", + "type": "map" + }, + { + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", - "type": "long" + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the name of the affinity group", + "name": "name", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the description of the affinity group", + "name": "description", "type": "string" } ], "type": "set" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", - "type": "string" - }, - { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", - "type": "string" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { @@ -148797,23 +143909,13 @@ "type": "string" }, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", - "type": "string" - }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { @@ -148822,745 +143924,586 @@ "type": "string" }, { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", "type": "long" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" - }, - { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" - }, - { - "description": "the memory allocated for the virtual machine", - "name": "memory", - "type": "integer" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" - }, - { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" - }, - { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", - "type": "string" - }, - { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" - }, - { - "description": "the VM's primary IP address", - "name": "ipaddress", - "type": "string" - }, - { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" - }, - { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" - }, - { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", + "description": "path of the Domain associated with the tag", + "name": "domainpath", "type": "string" }, { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the project name where tag belongs to", + "name": "project", "type": "string" }, { - "description": "the netmask of the nic", - "name": "netmask", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the ip address of the nic", - "name": "ipaddress", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "the traffic type of the nic", - "name": "traffictype", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "tag key name", + "name": "key", "type": "string" }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" + { + "description": "resource type", + "name": "resourcetype", + "type": "string" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", + "description": "id of the resource", + "name": "resourceid", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" } ], "type": "set" }, - { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" - }, - { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" - }, - { - "description": "the group name of the virtual machine", - "name": "group", - "type": "string" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" - }, { "description": "the number of vCPUs this virtual machine is using", "name": "cpunumber", "type": "integer" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", - "type": "string" - }, - { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" - }, - { - "description": "the group ID of the virtual machine", - "name": "groupid", - "type": "string" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "the project name of the group", + "name": "project", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + } + ], + "type": "set" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "the domain name of the security group", + "name": "domain", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + } + ], + "type": "set" }, { - "description": "the name of the affinity group", - "name": "name", - "type": "string" + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" }, { - "description": "the description of the affinity group", - "name": "description", - "type": "string" + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "the account owning the affinity group", + "description": "the account owning the security group", "name": "account", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the ID of the security group", + "name": "id", + "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" } ], "type": "set" }, - { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" - }, { "description": "the write (IO) of disk on the VM", "name": "diskiowrite", "type": "long" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", - "type": "string" - }, - { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, {}, { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, + {}, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" - } - ] - }, - { - "description": "Lists dedicated hosts.", - "isasync": false, - "name": "listDedicatedHosts", - "params": [ - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the name of the account associated with the host. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the ID of the domain associated with the host", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "list dedicated hosts by affinity group", - "length": 255, - "name": "affinitygroupid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the host", - "length": 255, + "description": "the ID of the host for the virtual machine", "name": "hostid", - "related": "reconnectHost", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the domain ID of the host", - "name": "domainid", "type": "string" }, { - "description": "the ID of the dedicated resource", - "name": "id", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, - {}, { - "description": "the name of the host", - "name": "hostname", - "type": "string" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the Dedication Affinity Group ID of the host", - "name": "affinitygroupid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, { - "description": "the ID of the host", - "name": "hostid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" }, { - "description": "the Account ID of the host", - "name": "accountid", - "type": "string" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, - {} - ] - }, - { - "description": "upload an existing ISO into the CloudStack cloud.", - "isasync": false, - "name": "getUploadParamsForIso", - "params": [ { - "description": "an optional accountName. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, + {}, { - "description": "an optional domainId. If the account parameter is used, domainId must also be used.", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" - }, - { - "description": "Upload volume/template/iso for the project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the format for the volume/template/iso. Possible values include QCOW2, OVA, and VHD.", - "length": 255, - "name": "format", - "required": true, + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "true if the ISO or its derivatives are extractable; default is false", - "length": 255, - "name": "isextractable", - "required": false, - "type": "boolean" - }, - { - "description": "true if you want to register the ISO to be publicly available to all users, false otherwise.", - "length": 255, - "name": "ispublic", - "required": false, + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the display text of the ISO. This is usually used for display purposes.", - "length": 4096, - "name": "displaytext", - "required": false, - "type": "string" - }, - { - "description": "the ID of the OS type that best represents the OS of this ISO. If the ISO is bootable this parameter needs to be passed", - "length": 255, - "name": "ostypeid", - "related": "", - "required": false, - "type": "uuid" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "true if you want this ISO to be featured", - "length": 255, - "name": "isfeatured", - "required": false, - "type": "boolean" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the name of the volume/template/iso", - "length": 255, - "name": "name", - "required": true, + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "true if this ISO is bootable. If not passed explicitly its assumed to be true", - "length": 255, - "name": "bootable", - "required": false, + "description": "true if vm has delete protection.", + "name": "deleteprotection", "type": "boolean" }, { - "description": "the checksum value of this volume/template/iso The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", - "length": 255, - "name": "checksum", - "required": false, - "type": "string" - }, - { - "description": "the ID of the zone the volume/template/iso is to be hosted on", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the template/volume ID", - "name": "id", - "type": "uuid" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the timestamp after which the signature expires", - "name": "expires", - "type": "string" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "encrypted data to be sent in the POST request.", - "name": "metadata", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, - {}, - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "POST url to upload the file to", - "name": "postURL", - "type": "url" - }, { - "description": "signature to be sent in the POST request.", - "name": "signature", + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" - } - ], - "since": "4.13" - }, - { - "description": "Get diagnostics and files from system VMs", - "isasync": true, - "name": "getDiagnosticsData", - "params": [ - { - "description": "The ID of the system VM instance to retrieve diagnostics data files from", - "length": 255, - "name": "targetid", - "related": "", - "required": true, - "type": "uuid" }, { - "description": "A comma separated list of diagnostics data files to be retrieved. Defaults are taken from global settings if none has been provided.", - "length": 255, - "name": "files", - "required": false, + "description": "NICs of the VNF appliance", + "name": "vnfnics", "type": "list" - } - ], - "related": "", - "response": [ - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - {}, - {}, - { - "description": "Storage URL to download retrieve diagnostics data files", - "name": "url", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - } - ], - "since": "4.14.0.0" - }, - { - "description": "Deletes a autoscale vm group.", - "isasync": true, - "name": "deleteAutoScaleVmGroup", - "params": [ - { - "description": "the ID of the autoscale group", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" - }, - { - "description": "true if all VMs have to be cleaned up, false otherwise", - "length": 255, - "name": "cleanup", - "required": false, - "since": "4.18.0", - "type": "boolean" - } - ], - "response": [ - {}, - { - "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", @@ -149568,331 +144511,167 @@ "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" - }, - {} - ] - }, - { - "description": "lists Palo Alto firewall devices in a physical network", - "isasync": false, - "name": "listPaloAltoFirewalls", - "params": [ - { - "description": "Palo Alto firewall device ID", - "length": 255, - "name": "fwdeviceid", - "related": "listPaloAltoFirewalls", - "required": false, - "type": "uuid" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": false, - "type": "uuid" - }, - { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "the public interface of the external firewall", - "name": "publicinterface", - "type": "string" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "the number of times to retry requests to the external firewall", - "name": "numretries", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the username that's used to log in to the external firewall", - "name": "username", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "name of the provider", - "name": "provider", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the physical network to which this Palo Alto firewall belongs to", - "name": "physicalnetworkid", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the private security zone of the external firewall", - "name": "privatezone", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "device state", - "name": "fwdevicestate", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "the timeout (in seconds) for requests to the external firewall", - "name": "timeout", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the zone ID of the external firewall", - "name": "zoneid", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, - {}, { - "description": "device name", - "name": "fwdevicename", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "the usage interface of the external firewall", - "name": "usageinterface", - "type": "string" - }, - {}, - { - "description": "device capacity", - "name": "fwdevicecapacity", - "type": "long" - }, - { - "description": "the private interface of the external firewall", - "name": "privateinterface", - "type": "string" - }, - { - "description": "the public security zone of the external firewall", - "name": "publiczone", - "type": "string" - }, - { - "description": "device id of the Palo Alto firewall", - "name": "fwdeviceid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the management IP address of the external firewall", - "name": "ipaddress", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" } ] }, { - "description": "Updates load balancer", + "description": "Updates egress firewall rule ", "isasync": true, - "name": "updateLoadBalancerRule", + "name": "updateEgressFirewallRule", "params": [ { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", - "type": "string" - }, - { - "description": "the description of the load balancer rule", - "length": 4096, - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "an optional field, whether to the display the rule to the end user or not", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "the ID of the load balancer rule to update", + "description": "the ID of the egress firewall rule", "length": 255, "name": "id", "related": "", "required": true, - "type": "uuid" - }, - { - "description": "load balancer algorithm (source, roundrobin, leastconn)", - "length": 255, - "name": "algorithm", - "required": false, - "type": "string" - }, - { - "description": "the name of the load balancer rule", - "length": 255, - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "The protocol for the LB", - "length": 255, - "name": "protocol", - "required": false, - "type": "string" - } - ], - "related": "listLoadBalancerRules", - "response": [ - { - "description": "the description of the load balancer", - "name": "description", - "type": "string" - }, - { - "description": "the state of the rule", - "name": "state", - "type": "string" - }, - { - "description": "the private port", - "name": "privateport", - "type": "string" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", - "type": "string" - }, - {}, - { - "description": "the domain ID of the load balancer rule", - "name": "domainid", - "type": "string" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the domain of the load balancer rule", - "name": "domain", - "type": "string" - }, - { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", - "type": "string" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "type": "uuid" }, { - "description": "the account of the load balancer rule", - "name": "account", + "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", + "length": 255, + "name": "customid", + "required": false, + "since": "4.4", "type": "string" }, { - "description": "the load balancer rule ID", - "name": "id", - "type": "string" - }, + "description": "an optional field, whether to the display the rule to the end user or not", + "length": 255, + "name": "fordisplay", + "required": false, + "since": "4.4", + "type": "boolean" + } + ], + "related": "", + "response": [ { - "description": "the name of the load balancer", - "name": "name", + "description": "the ID of the firewall rule", + "name": "id", "type": "string" }, { - "description": "the name of the zone the load balancer rule belongs to", - "name": "zonename", + "description": "the public ip address for the firewall rule", + "name": "ipaddress", "type": "string" }, { - "description": "the public port", - "name": "publicport", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the project name of the load balancer", - "name": "project", + "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", + "name": "destcidrlist", "type": "string" }, { - "description": "the public ip address", - "name": "publicip", - "type": "string" + "description": "type of the icmp message being sent", + "name": "icmptype", + "type": "integer" }, + {}, { - "description": "the list of resource tags associated with load balancer", + "description": "the list of resource tags associated with the rule", "name": "tags", "response": [ { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the account associated with the tag", + "name": "account", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "tag key name", + "name": "key", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "tag value", + "name": "value", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the domain associated with the tag", + "name": "domain", "type": "string" }, { @@ -149906,1254 +144685,1962 @@ "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the project id the tag belongs to", + "name": "projectid", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the ID of the domain associated with the tag", + "name": "domainid", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "customer associated with the tag", + "name": "customer", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "id of the resource", + "name": "resourceid", "type": "string" } ], "type": "list" }, + {}, { - "description": "the id of the guest network the lb rule belongs to", + "description": "the network id of the firewall rule", "name": "networkid", "type": "string" }, { - "description": "the public ip address id", - "name": "publicipid", + "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", + "name": "cidrlist", "type": "string" }, { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", - "name": "cidrlist", + "description": "error code for this icmp message", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the traffic type for the firewall rule", + "name": "traffictype", "type": "string" }, { - "description": "the id of the zone the rule belongs to", - "name": "zoneid", + "description": "the state of the rule", + "name": "state", "type": "string" }, { - "description": "the project id of the load balancer", - "name": "projectid", + "description": "the ending port of firewall rule's port range", + "name": "endport", + "type": "integer" + }, + { + "description": "the public ip address id for the firewall rule", + "name": "ipaddressid", "type": "string" }, { - "description": "the protocol of the loadbalanacer rule", + "description": "is rule for display to the regular user", + "name": "fordisplay", + "type": "boolean" + }, + { + "description": "the protocol of the firewall rule", "name": "protocol", "type": "string" + }, + { + "description": "the starting port of firewall rule's port range", + "name": "startport", + "type": "integer" } - ] + ], + "since": "4.4" }, { - "description": "Enables an account", + "description": "Lists all supported OS categories for this cloud.", "isasync": false, - "name": "enableAccount", + "name": "listOsCategories", "params": [ { - "description": "Enables specified account in this domain.", + "description": "list Os category by id", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "id", + "related": "listOsCategories", "required": false, "type": "uuid" }, { - "description": "Account id", + "description": "", "length": 255, - "name": "id", - "related": "enableAccount,listAccounts", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "Enables specified account.", + "description": "list os category by name", "length": 255, - "name": "account", + "name": "name", + "required": false, + "since": "3.0.1", + "type": "string" + }, + { + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" + }, + { + "description": "List by keyword", + "length": 255, + "name": "keyword", "required": false, "type": "string" } ], - "related": "listAccounts", + "related": "", "response": [ + {}, { - "description": "the total memory (in MB) owned by account", - "name": "memorytotal", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the list of acl groups that account belongs to", - "name": "groups", - "type": "list" + "description": "the ID of the OS category", + "name": "id", + "type": "string" }, { - "description": "the total volume which can be used by this account", - "name": "volumelimit", + "description": "the name of the OS category", + "name": "name", "type": "string" }, + {} + ] + }, + { + "description": "Lists all available service offerings.", + "isasync": false, + "name": "listServiceOfferings", + "params": [ { - "description": "the total number of snapshots stored by this account", - "name": "snapshottotal", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the id of the account", - "name": "id", - "type": "string" + "description": "list only resources belonging to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "the total number of virtual machines available for this account to acquire", - "name": "vmavailable", - "type": "string" + "description": "the CPU number that listed offerings must support", + "length": 255, + "name": "cpunumber", + "required": false, + "since": "4.15", + "type": "integer" }, { - "description": "the total number of templates available to be created by this account", - "name": "templateavailable", - "type": "string" + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "length": 255, + "name": "isrecursive", + "required": false, + "type": "boolean" }, { - "description": "the date when this account was created", - "name": "created", - "type": "date" + "description": "The ID of the template that listed offerings must support", + "length": 255, + "name": "templateid", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate", + "required": false, + "since": "4.20.0", + "type": "uuid" }, { - "description": "the total number of vpcs owned by account", - "name": "vpctotal", - "type": "long" + "description": "list resources by account. Must be used with the domainId parameter.", + "length": 255, + "name": "account", + "required": false, + "type": "string" }, { - "description": "the total number of snapshots available for this account", - "name": "snapshotavailable", - "type": "string" + "description": "id of zone disk offering is associated with", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": false, + "since": "4.13", + "type": "uuid" }, { - "description": "the total number of projects the account can own", - "name": "projectlimit", + "description": "name of the service offering", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the total primary storage space (in GiB) available to be used for this account", - "name": "primarystorageavailable", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the total number of cpu cores available to be created for this account", - "name": "cpuavailable", - "type": "string" + "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "length": 255, + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the total number of cpu cores owned by account", - "name": "cputotal", - "type": "long" + "description": "ID of the service offering", + "length": 255, + "name": "id", + "related": "updateServiceOffering,listServiceOfferings", + "required": false, + "type": "uuid" }, { - "description": "the total number of projects being administrated by this account", - "name": "projecttotal", - "type": "long" + "description": "the RAM memory that listed offering must support", + "length": 255, + "name": "memory", + "required": false, + "since": "4.15", + "type": "integer" }, { - "description": "the total number of public ip addresses this account can acquire", - "name": "iplimit", - "type": "string" + "description": "the CPU speed that listed offerings must support", + "length": 255, + "name": "cpuspeed", + "required": false, + "since": "4.15", + "type": "integer" }, { - "description": "the total secondary storage space (in GiB) available to be used for this account", - "name": "secondarystorageavailable", + "description": "the storage type of the service offering. Values are local and shared.", + "length": 255, + "name": "storagetype", + "required": false, + "since": "4.19", "type": "string" }, - {}, { - "description": "the name of the role", - "name": "rolename", - "type": "string" + "description": "listed offerings support root disk encryption", + "length": 255, + "name": "encryptroot", + "required": false, + "since": "4.18", + "type": "boolean" }, { - "description": "the total number of projects available for administration by this account", - "name": "projectavailable", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "the total secondary storage space (in GiB) the account can own", - "name": "secondarystoragelimit", - "type": "string" + "description": "is this a system vm offering", + "length": 255, + "name": "issystem", + "required": false, + "type": "boolean" }, { - "description": "the type of the role (Admin, ResourceAdmin, DomainAdmin, User)", - "name": "roletype", + "description": "Filter by state of the service offering. Defaults to 'Active'. If set to 'all' shows both Active & Inactive offerings.", + "length": 255, + "name": "state", + "required": false, + "since": "4.19", "type": "string" }, { - "description": "the total number of public ip addresses available for this account to acquire", - "name": "ipavailable", - "type": "string" + "description": "list objects by project; if projectid=-1 lists All VMs", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "id of the Domain the account belongs to", - "name": "domainid", - "type": "string" + "description": "the ID of the virtual machine. Pass this in if you want to see the available service offering that a virtual machine can be changed to.", + "length": 255, + "name": "virtualmachineid", + "related": "scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "required": false, + "type": "uuid" }, { - "description": "the list of users associated with account", - "name": "user", - "response": [ - { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" - }, - { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" - }, - { - "description": "the name of the role", - "name": "rolename", - "type": "string" - }, - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" - }, - { - "description": "the user email address", - "name": "email", - "type": "string" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, - { - "description": "the ID of the role", - "name": "roleid", - "type": "string" - }, - { - "description": "the account name of the user", - "name": "account", - "type": "string" - }, - { - "description": "the user firstname", - "name": "firstname", - "type": "string" - }, - { - "description": "the user name", - "name": "username", - "type": "string" - }, - { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" - }, - { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", - "type": "boolean" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" - }, - { - "description": "the user ID", - "name": "id", - "type": "string" - }, - { - "description": "the account type of the user", - "name": "accounttype", - "type": "integer" - }, - { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "the api key of the user", - "name": "apikey", - "type": "string" - }, - { - "description": "the user lastname", - "name": "lastname", - "type": "string" - }, - { - "description": "the domain name of the user", - "name": "domain", - "type": "string" - }, - { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the timezone user was created in", - "name": "timezone", - "type": "string" - }, - { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", - "type": "string" - }, - { - "description": "the domain ID of the user", - "name": "domainid", - "type": "string" - }, - { - "description": "the type of the role", - "name": "roletype", - "type": "string" - } - ], - "type": "list" + "description": "the system VM type. Possible types are \"consoleproxy\", \"secondarystoragevm\" or \"domainrouter\".", + "length": 255, + "name": "systemvmtype", + "required": false, + "type": "string" + } + ], + "related": "updateServiceOffering", + "response": [ + { + "description": "state of the service offering", + "name": "state", + "type": "string" }, { - "description": "the network domain", - "name": "networkdomain", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "details for the account", - "name": "accountdetails", - "type": "map" + "description": "bytes read rate of the service offering", + "name": "diskBytesReadRate", + "type": "long" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "name": "cacheMode", + "type": "string" }, + {}, { - "description": "the total memory (in MB) the account can own", - "name": "memorylimit", + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "name": "provisioningtype", "type": "string" }, { - "description": "the total number of templates which can be created by this account", - "name": "templatelimit", + "description": "burst bytes write rate of the disk offering", + "name": "diskBytesWriteRateMax", + "type": "long" + }, + { + "description": "is this a the systemvm type for system vm offering", + "name": "systemvmtype", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the max iops of the disk offering", + "name": "maxiops", + "type": "long" }, { - "description": "the total volume being used by this account", - "name": "volumetotal", + "description": "burst io requests read rate of the disk offering", + "name": "diskIopsReadRateMax", "type": "long" }, { - "description": "the total number of networks available to be created for this account", - "name": "networkavailable", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", + "description": "the min iops of the disk offering", + "name": "miniops", "type": "long" }, { - "description": "the total primary storage space (in GiB) the account can own", - "name": "primarystoragelimit", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the state of the account", - "name": "state", - "type": "string" + "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", + "name": "diskofferingstrictness", + "type": "boolean" }, { - "description": "the total memory (in MB) available to be created for this account", - "name": "memoryavailable", + "description": "the name of the service offering", + "name": "name", "type": "string" }, { - "description": "the total volume available for this account", - "name": "volumeavailable", - "type": "string" + "description": "true if virtual machine root disk will be encrypted on storage", + "name": "encryptroot", + "type": "boolean" }, { - "description": "true if account is default, false otherwise", - "name": "isdefault", + "description": "is true if the offering is customized", + "name": "iscustomized", "type": "boolean" }, { - "description": "the total primary storage space (in GiB) owned by account", - "name": "primarystoragetotal", + "description": "the number of CPU", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "Whether to cleanup VM and its associated resource upon expunge", + "name": "purgeresources", + "type": "boolean" + }, + { + "description": "is this a system vm offering", + "name": "issystem", + "type": "boolean" + }, + { + "description": "Root disk size in GB", + "name": "rootdisksize", "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "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 default zone of the account", - "name": "defaultzoneid", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk", + "name": "isvolatile", + "type": "boolean" + }, + { + "description": "is this a default system vm offering", + "name": "defaultuse", + "type": "boolean" + }, + { + "description": "the id of the service offering", + "name": "id", "type": "string" }, { - "description": "the total number of vpcs the account can own", - "name": "vpclimit", + "description": "deployment strategy used to deploy VM.", + "name": "deploymentplanner", "type": "string" }, { - "description": "true if the account requires cleanup", - "name": "iscleanuprequired", + "description": "length (in seconds) of the burst", + "name": "diskBytesWriteRateMaxLength", + "type": "long" + }, + { + "description": "true if disk offering uses custom iops, false otherwise", + "name": "iscustomizediops", "type": "boolean" }, { - "description": "the name of the account", - "name": "name", + "description": "an alternate display text of the service offering.", + "name": "displaytext", "type": "string" }, { - "description": "the total number of snapshots which can be stored by this account", - "name": "snapshotlimit", + "description": "name of the disk offering", + "name": "diskofferingname", "type": "string" }, { - "description": "the total number of virtual machines deployed by this account", - "name": "vmtotal", + "description": "io requests read rate of the service offering", + "name": "diskIopsReadRate", "type": "long" }, - {}, { - "description": "the total number of templates which have been created by this account", - "name": "templatetotal", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "length (in seconds) of the burst", + "name": "diskBytesReadRateMaxLength", "type": "long" }, { - "description": "the total number of cpu cores the account can own", - "name": "cpulimit", + "description": "the ID of the disk offering to which service offering is linked", + "name": "diskofferingid", "type": "string" }, + {}, { - "description": "the total number of virtual machines that can be deployed by this account", - "name": "vmlimit", - "type": "string" + "description": "length (in second) of the burst", + "name": "diskIopsReadRateMaxLength", + "type": "long" }, { - "description": "the total number of networks owned by account", - "name": "networktotal", + "description": "bytes write rate of the service offering", + "name": "diskBytesWriteRate", "type": "long" }, { - "description": "the total number of virtual machines stopped for this account", - "name": "vmstopped", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "The tagged resource limit and count for the account", - "name": "taggedresources", - "type": "list" + "description": "restrict the CPU usage to committed service offering", + "name": "limitcpuuse", + "type": "boolean" }, { - "description": "the total secondary storage space (in GiB) owned by account", - "name": "secondarystoragetotal", - "type": "float" + "description": "io requests write rate of the service offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "path of the Domain the account belongs to", - "name": "domainpath", + "description": "the vsphere storage policy tagged to the service offering in case of VMware", + "name": "vspherestoragepolicy", "type": "string" }, { - "description": "name of the Domain the account belongs to", - "name": "domain", - "type": "string" + "description": "length (in seconds) of the burst", + "name": "diskIopsWriteRateMaxLength", + "type": "long" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "burst io requests write rate of the disk offering", + "name": "diskIopsWriteRateMax", + "type": "long" + }, + { + "description": "the tags for the service offering", + "name": "storagetags", "type": "string" }, { - "description": "the total number of virtual machines running for this account", - "name": "vmrunning", + "description": "additional key/value details tied with this service offering", + "name": "serviceofferingdetails", + "type": "map" + }, + { + "description": "the clock rate CPU speed in Mhz", + "name": "cpuspeed", "type": "integer" }, { - "description": "account type (admin, domain-admin, user)", - "name": "accounttype", + "description": "the ha support in the service offering", + "name": "offerha", + "type": "boolean" + }, + { + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "name": "hypervisorsnapshotreserve", "type": "integer" }, { - "description": "the total number of public ip addresses allocated for this account", - "name": "iptotal", + "description": "the memory in MB", + "name": "memory", + "type": "integer" + }, + { + "description": "burst bytes read rate of the disk offering", + "name": "diskBytesReadRateMax", "type": "long" }, { - "description": "the total number of vpcs available to be created for this account", - "name": "vpcavailable", + "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 total number of networks the account can own", - "name": "networklimit", + "description": "the storage type for this service offering", + "name": "storagetype", + "type": "string" + }, + { + "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", + "name": "dynamicscalingenabled", + "type": "boolean" + }, + { + "description": "the date this service offering was created", + "name": "created", + "type": "date" + }, + { + "description": "data transfer rate in megabits per second allowed.", + "name": "networkrate", + "type": "integer" + }, + { + "description": "the host tag for the service offering", + "name": "hosttags", "type": "string" } ] }, { - "description": "Changes the scope of a storage pool when the pool is in Disabled state.This feature is officially tested and supported for Hypervisors: KVM and VMware, Protocols: NFS and Ceph, and Storage Provider: DefaultPrimary. There might be extra steps involved to make this work for other hypervisors and storage options.", + "description": "Import virtual machine from a unmanaged host into CloudStack", "isasync": true, - "name": "changeStoragePoolScope", + "name": "importVm", "params": [ { - "description": "the Id of the cluster to use if scope is being set to Cluster", + "description": "the name of the instance as it is known to the hypervisor", "length": 255, - "name": "clusterid", + "name": "name", + "required": true, + "type": "string" + }, + { + "description": "(only for importing VMs from VMware to KVM) The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", + "length": 255, + "name": "vcenter", + "required": false, + "type": "string" + }, + { + "description": "(only for importing VMs from VMware to KVM) UUID of a linked existing vCenter", + "length": 255, + "name": "existingvcenterid", + "required": false, + "type": "uuid" + }, + { + "description": "Host where local disk is located", + "length": 255, + "name": "hostid", "related": "", "required": false, "type": "uuid" }, { - "description": "the scope of the storage: cluster or zone", + "description": "(only for importing VMs from VMware to KVM) Name of VMware cluster.", "length": 255, - "name": "scope", + "name": "clustername", + "required": false, + "type": "string" + }, + { + "description": "used to specify the custom parameters.", + "length": 255, + "name": "details", + "required": false, + "type": "map" + }, + { + "description": "vm and its volumes are allowed to migrate to different host/pool when offerings passed are incompatible with current host/pool", + "length": 255, + "name": "migrateallowed", + "required": false, + "type": "boolean" + }, + { + "description": "hypervisor type of the host", + "length": 255, + "name": "hypervisor", "required": true, "type": "string" }, { - "description": "the Id of the storage pool", + "description": "the service offering for the virtual machine", "length": 255, - "name": "id", - "related": "", + "name": "serviceofferingid", + "related": "updateServiceOffering", "required": true, "type": "uuid" - } - ], - "response": [ - {}, - {}, + }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "datadisk template to disk-offering mapping using keys disk and diskOffering", + "length": 255, + "name": "datadiskofferinglist", + "required": false, + "type": "map" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" + "description": "(only for importing VMs from VMware to KVM) optional - the host to perform the virt-v2v migration from VMware to KVM.", + "length": 255, + "name": "convertinstancehostid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "(only for importing VMs from VMware to KVM) optional - if true, forces MS to import VM file(s) to temporary storage, else uses KVM Host if ovftool is available, falls back to MS if not.", + "length": 255, + "name": "forcemstoimportvmfiles", + "required": false, + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - } - ], - "since": "4.19.1" - }, - { - "description": "Deletes a network", - "isasync": true, - "name": "deleteNetwork", - "params": [ + "description": "import instance to the domain specified", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" + }, { - "description": "the ID of the network", + "description": "the network ID", "length": 255, - "name": "id", + "name": "networkid", "related": "createNetwork,updateNetwork,listNetworks", + "required": false, + "type": "uuid" + }, + { + "description": "import instance for the project", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the cluster ID", + "length": 255, + "name": "clusterid", + "related": "", "required": true, "type": "uuid" }, { - "description": "Force delete a network. Network will be marked as 'Destroy' even when commands to shutdown and cleanup to the backend fails.", + "description": "VM nic to network id mapping using keys nic and network", "length": 255, - "name": "forced", + "name": "nicnetworklist", "required": false, - "type": "boolean" - } - ], - "response": [ + "type": "map" + }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Temp Path on external host for disk image copy", + "length": 255, + "name": "temppath", + "required": false, + "type": "string" }, - {}, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "(only for importing VMs from VMware to KVM) optional - the temporary storage pool to perform the virt-v2v migration from VMware to KVM.", + "length": 255, + "name": "convertinstancepoolid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "an optional account for the virtual machine. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "the host name or IP address", + "length": 255, + "name": "host", + "required": false, + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "(only for importing VMs from VMware to KVM) VMware ESXi host IP/Name.", + "length": 255, + "name": "hostip", + "required": false, "type": "string" - } - ] - }, - { - "description": "Reconnects a host.", - "isasync": true, - "name": "reconnectHost", - "params": [ + }, { - "description": "the host ID", + "description": "the ID of the template for the virtual machine", "length": 255, - "name": "id", - "related": "reconnectHost", - "required": true, + "name": "templateid", + "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate", + "required": false, "type": "uuid" - } - ], - "related": "", - "response": [ + }, { - "description": "Whether the informed tag is a JS interpretable rule or not.", - "name": "istagarule", + "description": "the password for the host", + "length": 255, + "name": "password", + "required": false, + "type": "string" + }, + { + "description": "the display name of the instance", + "length": 255, + "name": "displayname", + "required": false, + "type": "string" + }, + { + "description": "Shared storage pool where disk is located", + "length": 255, + "name": "storageid", + "related": "", + "required": false, + "type": "uuid" + }, + { + "description": "the host name of the instance", + "length": 255, + "name": "hostname", + "required": false, + "type": "string" + }, + { + "description": "VM is imported despite some of its NIC's MAC addresses are already present, in case the MAC address exists then a new MAC address is generated", + "length": 255, + "name": "forced", + "required": false, "type": "boolean" }, { - "description": "the amount of the host's memory currently allocated", - "name": "memoryallocated", - "type": "long" + "description": "path of the disk image", + "length": 255, + "name": "diskpath", + "required": false, + "type": "string" }, { - "description": "the hypervisor version", - "name": "hypervisorversion", + "description": "the username for the host", + "length": 255, + "name": "username", + "required": false, "type": "string" }, { - "description": "the management server ID of the host", - "name": "managementserverid", + "description": "Source location for Import", + "length": 255, + "name": "importsource", + "required": true, "type": "string" }, { - "description": "the amount of the host's memory currently used", - "name": "memoryused", - "type": "long" + "description": "(only for importing VMs from VMware to KVM) Name of VMware datacenter.", + "length": 255, + "name": "datacentername", + "required": false, + "type": "string" }, { - "description": "Host details in key/value pairs.", - "name": "details", + "description": "VM nic to ip address mapping using keys nic, ip4Address", + "length": 255, + "name": "nicipaddresslist", + "required": false, "type": "map" }, { - "description": "the date and time the host was created", - "name": "created", - "type": "date" - }, + "description": "the zone ID", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" + } + ], + "related": "scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", + "response": [ { - "description": "the outgoing network traffic on the host", - "name": "networkkbswrite", - "type": "long" + "description": "Guest vm Boot Mode", + "name": "bootmode", + "type": "string" }, { - "description": "the last annotation set on this host by an admin", - "name": "annotation", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the host's currently allocated disk size", - "name": "disksizeallocated", - "type": "long" + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" }, { - "description": "the host HA information information", - "name": "hostha", - "type": "hostharesponse" + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", + "type": "string" }, { - "description": "true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise", - "name": "suitableformigration", - "type": "boolean" + "description": "User VM type", + "name": "vmtype", + "type": "string" }, { - "description": "the name of the host", - "name": "name", + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "GPU cards present in the host", - "name": "gpugroup", + "description": "the list of resource tags associated", + "name": "tags", "response": [ { - "description": "GPU cards present in the host", - "name": "gpugroupname", + "description": "resource type", + "name": "resourcetype", "type": "string" }, { - "description": "the list of enabled vGPUs", - "name": "vgpu", - "response": [ - { - "description": "Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type", - "name": "remainingcapacity", - "type": "long" - }, - { - "description": "Maximum vgpu can be created with this vgpu type on the given gpu group", - "name": "maxcapacity", - "type": "long" - }, - { - "description": "Maximum displays per user", - "name": "maxheads", - "type": "long" - }, - { - "description": "Maximum Y resolution per display", - "name": "maxresolutiony", - "type": "long" - }, - { - "description": "Maximum no. of vgpu per gpu card (pgpu)", - "name": "maxvgpuperpgpu", - "type": "long" - }, - { - "description": "Maximum X resolution per display", - "name": "maxresolutionx", - "type": "long" - }, - { - "description": "Model Name of vGPU", - "name": "vgputype", - "type": "string" - }, - { - "description": "Video RAM for this vGPU type", - "name": "videoram", - "type": "long" - } - ], - "type": "list" + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" } ], - "type": "list" - }, - { - "description": "the host out-of-band management information", - "name": "outofbandmanagement", - "type": "outofbandmanagementresponse" + "type": "set" }, { - "description": "capabilities of the host", - "name": "capabilities", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated in MHz", - "name": "cpuallocatedvalue", - "type": "long" - }, - { - "description": "the cluster ID of the host", - "name": "clusterid", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the ID of the host", - "name": "id", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the OS category ID of the host", - "name": "oscategoryid", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the date and time the host was last pinged", - "name": "lastpinged", - "type": "date" - }, - { - "description": "the date and time the host was removed", - "name": "removed", - "type": "date" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "comma-separated list of explicit host tags for the host", - "name": "explicithosttags", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "the amount of the host's CPU currently used", - "name": "cpuused", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, + {}, { - "description": "the resource state of the host", - "name": "resourcestate", - "type": "string" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "true if the host supports encryption", - "name": "encryptionsupported", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", "type": "boolean" }, { - "description": "the host hypervisor", - "name": "hypervisor", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the OS category name of the host", - "name": "oscategoryname", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "the IP address of the host", + "description": "the VM's primary IP address", "name": "ipaddress", "type": "string" }, { - "description": "the amount of the host's CPU after applying the cpu.overprovisioning.factor", - "name": "cpuwithoverprovisioning", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the last time this host was annotated", - "name": "lastannotated", + "description": "the date when this virtual machine was created", + "name": "created", "type": "date" }, { - "description": "the CPU speed of the host", - "name": "cpuspeed", - "type": "long" + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", + "type": "string" }, { - "description": "true if local storage is active, false otherwise", - "name": "islocalstorageactive", - "type": "boolean" + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" }, { - "description": "true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise", - "name": "hasenoughcapacity", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, { - "description": "the cluster type of the cluster that host belongs to", - "name": "clustertype", + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, { - "description": "the amount of the host's CPU currently allocated", - "name": "cpuallocated", + "description": "ssh key-pairs", + "name": "keypairs", "type": "string" }, - {}, { - "description": "the cluster name of the host", - "name": "clustername", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the Zone ID of the host", - "name": "zoneid", - "type": "string" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + } + ], + "type": "set" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the amount of the host's memory currently allocated in bytes", - "name": "memoryallocatedbytes", - "type": "long" + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "true if the host has capability to support UEFI boot", - "name": "ueficapability", - "type": "boolean" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, { - "description": "true if the host is disconnected. False otherwise.", - "name": "disconnected", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", "type": "date" }, { - "description": "the amount of the host's CPU currently allocated in percentage", - "name": "cpuallocatedpercentage", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the CPU number of the host", - "name": "cpunumber", - "type": "integer" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "events available for the host", - "name": "events", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning", - "name": "memorytotal", + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", "type": "long" }, { - "description": "true if the host is Ha host (dedicated to vms started by HA process; false otherwise", - "name": "hahost", - "type": "boolean" + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", + "type": "string" }, { - "description": "comma-separated list of implicit host tags for the host", - "name": "implicithosttags", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the cpu average load on the host", - "name": "cpuloadaverage", - "type": "double" + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", + "type": "boolean" }, { - "description": "the amount of the host's memory currently allocated in percentage", - "name": "memoryallocatedpercentage", - "type": "string" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" + } + ], + "type": "set" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + } + ], + "type": "set" }, { - "description": "the admin that annotated this host", - "name": "username", + "description": "the speed of each vCPU", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the amount of the host's memory after applying the mem.overprovisioning.factor", - "name": "memorywithoverprovisioning", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the incoming network traffic on the host", - "name": "networkkbsread", - "type": "long" + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", + "type": "string" }, { - "description": "the state of the host", - "name": "state", - "type": "status" + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" }, { - "description": "the amount of the host's CPU currently allocated after applying the cpu.overprovisioning.factor", - "name": "cpuallocatedwithoverprovisioning", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", "type": "string" }, { - "description": "the Pod name of the host", - "name": "podname", + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", "type": "string" }, - {}, { - "description": "CPU Arch of the host", - "name": "arch", + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" + }, + { + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the Zone name of the host", - "name": "zonename", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "the total disk size of the host", - "name": "disksizetotal", + "description": "the VM's disk read in KiB", + "name": "diskkbsread", "type": "long" }, { - "description": "the Pod ID of the host", - "name": "podid", + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, + {}, { - "description": "true if the host supports instance conversion (using virt-v2v)", - "name": "instanceconversionsupported", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the host type", - "name": "type", - "type": "type" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the host version", - "name": "version", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the number of CPU sockets on the host", - "name": "cpusockets", - "type": "integer" - }, - { - "description": "comma-separated list of tags for the host", - "name": "hosttags", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" - } - ] - }, - { - "description": "Starts a stopped CloudManaged Kubernetes cluster", - "isasync": true, - "name": "startKubernetesCluster", - "params": [ + }, { - "description": "the ID of the Kubernetes cluster", - "length": 255, - "name": "id", - "related": "startKubernetesCluster", - "required": true, - "type": "uuid" - } - ], - "related": "", - "response": [ + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, { - "description": "URL end point for the Kubernetes cluster dashboard UI", - "name": "consoleendpoint", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "the size (worker nodes count) of the Kubernetes cluster", - "name": "size", + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", "type": "long" }, { - "description": "the ID of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionid", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the project id of the Kubernetes cluster", - "name": "projectid", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "Minimum size of the cluster", - "name": "minsize", - "type": "long" + "description": "the name of the template for the virtual machine", + "name": "templatename", + "type": "string" }, - {}, { - "description": "the ID of the network of the Kubernetes cluster", - "name": "networkid", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the cpu cores of the Kubernetes cluster", - "name": "cpunumber", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", + "type": "string" + }, + { + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, { - "description": "Public IP Address ID of the cluster", - "name": "ipaddressid", + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + } + ], + "type": "set" + }, + { + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", "type": "string" }, { - "description": "the list of virtualmachine associated with this Kubernetes cluster", - "name": "virtualmachines", - "type": "list" - }, - {}, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the name of the Kubernetes cluster", - "name": "name", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "the id of the Kubernetes cluster", - "name": "id", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, { - "description": "the name of the domain in which the Kubernetes cluster exists", - "name": "domain", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the name of the service offering of the Kubernetes cluster", - "name": "serviceofferingname", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "Public IP Address of the cluster", - "name": "ipaddress", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the date when this Kubernetes cluster 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 master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", - "name": "masternodes", - "type": "long" - }, - { - "description": "path of the domain to which the Kubernetes cluster belongs", - "name": "domainpath", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "the description of the Kubernetes cluster", - "name": "description", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the ID of the template of the Kubernetes cluster", - "name": "templateid", - "type": "string" + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", + "type": "boolean" }, { - "description": "keypair details", - "name": "keypair", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, + {}, { - "description": "the name of the zone of the Kubernetes cluster", - "name": "zonename", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "URL end point for the Kubernetes cluster", - "name": "endpoint", + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", "type": "string" }, { - "description": "the ID of the service offering of the Kubernetes cluster", - "name": "serviceofferingid", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the project name of the Kubernetes cluster", - "name": "project", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "Maximum size of the cluster", - "name": "maxsize", - "type": "long" - }, - { - "description": "Whether autoscaling is enabled for the cluster", - "name": "autoscalingenabled", - "type": "boolean" - }, - { - "description": "the ID of the domain in which the Kubernetes cluster exists", - "name": "domainid", + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "the name of the network of the Kubernetes cluster", - "name": "associatednetworkname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" - }, - { - "description": "the name of the zone of the Kubernetes cluster", + "description": "the ID of the availability zone for the virtual machine", "name": "zoneid", "type": "string" }, { - "description": "the account associated with the Kubernetes cluster", - "name": "account", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the name of the Kubernetes version for the Kubernetes cluster", - "name": "kubernetesversionname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the memory the Kubernetes cluster", - "name": "memory", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the state of the Kubernetes cluster", - "name": "state", + "description": "the user's name who deployed the virtual machine", + "name": "username", "type": "string" }, { - "description": "the control nodes count for the Kubernetes cluster", - "name": "controlnodes", + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" - }, - { - "description": "the type of the cluster", - "name": "clustertype", - "type": "clustertype" } - ] + ], + "since": "4.19.0" }, { - "description": "Deletes a project", + "description": "Removes a load balancer rule association with global load balancer rule", "isasync": true, - "name": "deleteProject", + "name": "removeFromGlobalLoadBalancerRule", "params": [ { - "description": "id of the project to be deleted", + "description": "The ID of the load balancer rule", "length": 255, "name": "id", "related": "", @@ -151161,15 +146648,25 @@ "type": "uuid" }, { - "description": "true if all project resources have to be cleaned up, false otherwise", + "description": "the list load balancer rules that will be assigned to global load balancer rule", "length": 255, - "name": "cleanup", - "required": false, - "since": "4.16.0", - "type": "boolean" + "name": "loadbalancerrulelist", + "related": "", + "required": true, + "type": "list" } ], "response": [ + { + "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 UUID of the latest async job acting on this object", "name": "jobid", @@ -151181,24 +146678,13 @@ "name": "success", "type": "boolean" }, - { - "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" - } - ], - "since": "3.0.0" + {} + ] }, { - "description": "Lists all available shared filesystem providers.", + "description": "Lists affinity group types available", "isasync": false, - "name": "listSharedFileSystemProviders", + "name": "listAffinityGroupTypes", "params": [ { "description": "List by keyword", @@ -151210,196 +146696,148 @@ { "description": "", "length": 255, - "name": "page", + "name": "pagesize", "required": false, "type": "integer" }, { "description": "", "length": 255, - "name": "pagesize", + "name": "page", "required": false, "type": "integer" } ], "related": "", "response": [ - {}, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the name of the shared filesystem provider", - "name": "name", - "type": "string" - }, - {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" - } - ], - "since": "4.20.0" - }, - { - "description": "List iso visibility and all accounts that have permissions to view this iso.", - "isasync": false, - "name": "listIsoPermissions", - "params": [ - { - "description": "the template ID", - "length": 255, - "name": "id", - "related": "listIsoPermissions,listTemplatePermissions,listIsoPermissions", - "required": true, - "type": "uuid" - } - ], - "related": "listTemplatePermissions,listIsoPermissions", - "response": [ - {}, - { - "description": "the list of projects the template is available for", - "name": "projectids", - "type": "list" - }, - { - "description": "the template ID", - "name": "id", - "type": "string" }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, + {}, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" - }, - { - "description": "the list of accounts the template is available for", - "name": "account", - "type": "list" - }, - { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, {} ] }, { - "description": "Adds a netscaler load balancer device", - "isasync": true, - "name": "addNetscalerLoadBalancer", + "description": "Lists all the system wide capacities.", + "isasync": false, + "name": "listCapacity", "params": [ { - "description": "public IP of the site", + "description": "Sort the results. Available values: Usage", "length": 255, - "name": "gslbproviderpublicip", + "name": "sortby", "required": false, + "since": "3.0.0", "type": "string" }, { - "description": "URL of the netscaler load balancer appliance.", + "description": "lists capacity by the Pod ID", "length": 255, - "name": "url", - "required": true, - "type": "string" + "name": "podid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "true if NetScaler device being added is for providing GSLB service", + "description": "", "length": 255, - "name": "gslbprovider", + "name": "pagesize", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "private IP of the site", + "description": "lists capacity by the Zone ID", "length": 255, - "name": "gslbproviderprivateip", + "name": "zoneid", + "related": "listZones", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "the Physical Network ID", + "description": "Tag for the resource type", "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" + "name": "tag", + "required": false, + "since": "4.20.0", + "type": "string" }, { - "description": "true if NetScaler device being added is for providing GSLB service exclusively and can not be used for LB", + "description": "lists capacity by type* CAPACITY_TYPE_MEMORY = 0* CAPACITY_TYPE_CPU = 1* CAPACITY_TYPE_STORAGE = 2* CAPACITY_TYPE_STORAGE_ALLOCATED = 3* CAPACITY_TYPE_VIRTUAL_NETWORK_PUBLIC_IP = 4* CAPACITY_TYPE_PRIVATE_IP = 5* CAPACITY_TYPE_SECONDARY_STORAGE = 6* CAPACITY_TYPE_VLAN = 7* CAPACITY_TYPE_DIRECT_ATTACHED_PUBLIC_IP = 8* CAPACITY_TYPE_LOCAL_STORAGE = 9* CAPACITY_TYPE_GPU = 19* CAPACITY_TYPE_CPU_CORE = 90.", "length": 255, - "name": "isexclusivegslbprovider", + "name": "type", "required": false, - "type": "boolean" + "type": "integer" }, { - "description": "Credentials to reach netscaler load balancer device", + "description": "List by keyword", "length": 255, - "name": "password", - "required": true, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "Credentials to reach netscaler load balancer device", + "description": "", "length": 255, - "name": "username", - "required": true, - "type": "string" + "name": "page", + "required": false, + "type": "integer" }, { - "description": "Netscaler device type supports NetscalerMPXLoadBalancer, NetscalerVPXLoadBalancer, NetscalerSDXLoadBalancer", + "description": "lists capacity by the Cluster ID", "length": 255, - "name": "networkdevicetype", - "required": true, - "type": "string" + "name": "clusterid", + "related": "", + "required": false, + "since": "3.0.0", + "type": "uuid" + }, + { + "description": "recalculate capacities and fetch the latest", + "length": 255, + "name": "fetchlatest", + "required": false, + "since": "3.0.0", + "type": "boolean" } ], "related": "", "response": [ { - "description": "true if NetScaler device is provisioned exclusively to be a GSLB service provider", - "name": "isexclusivegslbprovider", - "type": "boolean" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the Cluster ID", + "name": "clusterid", "type": "string" }, { - "description": "device state", - "name": "lbdevicestate", + "description": "the Pod name", + "name": "podname", "type": "string" }, { - "description": "the physical network to which this netscaler device belongs to", - "name": "physicalnetworkid", - "type": "string" + "description": "the capacity currently in use", + "name": "capacityused", + "type": "long" }, { - "description": "name of the provider", - "name": "provider", - "type": "string" + "description": "the capacity type", + "name": "type", + "type": "short" }, { - "description": "device capacity", - "name": "lbdevicecapacity", - "type": "long" + "description": "The tag for the capacity type", + "name": "tag", + "type": "string" }, { "description": "the current status of the latest async job acting on this object", @@ -151407,538 +146845,791 @@ "type": "integer" }, { - "description": "device name", - "name": "lbdevicename", + "description": "the Cluster name", + "name": "clustername", "type": "string" }, { - "description": "public IP of the NetScaler representing GSLB site", - "name": "gslbproviderpublicip", + "description": "the Zone name", + "name": "zonename", "type": "string" }, + {}, { - "description": "Used when NetScaler device is provider of EIP service. This parameter represents the list of pod's, for which there exists a policy based route on datacenter L3 router to route pod's subnet IP to a NetScaler device.", - "name": "podids", - "type": "list" - }, - { - "description": "the private interface of the load balancer", - "name": "privateinterface", + "description": "the Zone ID", + "name": "zoneid", "type": "string" }, { - "description": "private IP of the NetScaler representing GSLB site", - "name": "gslbproviderprivateip", - "type": "string" + "description": "the total capacity available", + "name": "capacitytotal", + "type": "long" }, { - "description": "true if device is dedicated for an account", - "name": "lbdevicededicated", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the public interface of the load balancer", - "name": "publicinterface", + "description": "the Pod ID", + "name": "podid", "type": "string" }, { - "description": "device id of the netscaler load balancer", - "name": "lbdeviceid", + "description": "the percentage of capacity currently in use", + "name": "percentused", "type": "string" }, {}, { - "description": "true if NetScaler device is provisioned to be a GSLB service provider", - "name": "gslbprovider", - "type": "boolean" + "description": "the capacity name", + "name": "name", + "type": "string" }, - {}, { - "description": "the management IP address of the external load balancer", - "name": "ipaddress", - "type": "string" + "description": "the capacity currently in allocated", + "name": "capacityallocated", + "type": "long" } ] }, { - "description": "Removes network permissions.", - "isasync": false, - "name": "removeNetworkPermissions", + "description": "Starts a virtual machine.", + "isasync": true, + "name": "startVirtualMachine", "params": [ { - "description": "a comma delimited list of accounts within owner's domain. If specified, \"op\" parameter has to be passed in.", + "description": "destination Host ID to deploy the VM to - parameter available for root admin only", "length": 255, - "name": "accounts", + "name": "hostid", + "related": "", "required": false, - "type": "list" + "since": "3.0.1", + "type": "uuid" }, { - "description": "the network ID", + "description": "True by default, CloudStack will firstly try to start the VM on the last host where it run on before stopping, if destination host is not specified. If false, CloudStack will not consider the last host and start the VM by normal process.", "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks", - "required": true, - "type": "uuid" + "name": "considerlasthost", + "required": false, + "since": "4.18.0", + "type": "boolean" }, { - "description": "a comma delimited list of account IDs within owner's domain. If specified, \"op\" parameter has to be passed in.", + "description": "Deployment planner to use for vm allocation. Available to ROOT admin only", "length": 255, - "name": "accountids", - "related": "listAccounts", + "name": "deploymentplanner", "required": false, - "type": "list" + "since": "4.4", + "type": "string" }, { - "description": "a comma delimited list of projects within owner's domain. If specified, \"op\" parameter has to be passed in.", + "description": "Boot into hardware setup menu or not", "length": 255, - "name": "projectids", + "name": "bootintosetup", + "required": false, + "since": "4.15.0.0", + "type": "boolean" + }, + { + "description": "destination Cluster ID to deploy the VM to - parameter available for root admin only", + "length": 255, + "name": "clusterid", "related": "", "required": false, - "type": "list" + "type": "uuid" + }, + { + "description": "The ID of the virtual machine", + "length": 255, + "name": "id", + "related": "scaleVirtualMachine,startVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", + "required": true, + "type": "uuid" + }, + { + "description": "destination Pod ID to deploy the VM to - parameter available for root admin only", + "length": 255, + "name": "podid", + "related": "", + "required": false, + "type": "uuid" } ], + "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", "response": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, - {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the account associated with the virtual machine", + "name": "account", + "type": "string" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, - {} - ], - "since": "4.17.0" - }, - { - "description": "config Tungsten-Fabric service", - "isasync": false, - "name": "configTungstenFabricService", - "params": [ + {}, { - "description": "the ID of physical network", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "the ID of zone", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, - "type": "uuid" - } - ], - "response": [ - { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", + "type": "string" }, - {}, { - "description": "true if operation is executed successfully", - "name": "success", + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" }, - {} - ] - }, - { - "description": "list baremetal pxe server", - "isasync": false, - "name": "listBaremetalPxeServers", - "params": [ { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the state of the virtual machine", + "name": "state", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the name of the host for the virtual machine", + "name": "hostname", + "type": "string" }, { - "description": "Pxe server device ID", - "length": 255, - "name": "id", - "required": false, + "description": "Os type ID of the virtual machine", + "name": "guestosid", + "type": "string" + }, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "the user's ID who deployed the virtual machine", + "name": "userid", + "type": "string" + }, + { + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", "type": "long" }, { - "description": "the Physical Network ID", - "length": 255, - "name": "physicalnetworkid", - "related": "", - "required": true, - "type": "uuid" + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + } + ], + "type": "set" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", + "type": "boolean" + }, { - "description": "device id of ", - "name": "id", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", + "type": "date" + }, + { + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", "type": "string" }, { - "description": "the physical network to which this external dhcp device belongs to", - "name": "physicalnetworkid", + "description": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" + }, + { + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Base64 string containing the user data", + "name": "userdata", + "type": "string" }, { - "description": "url", - "name": "url", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "name of the provider", - "name": "provider", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, - {}, - {} - ] - }, - { - "description": "Find user account by API key", - "isasync": false, - "name": "getUser", - "params": [ { - "description": "API key of the user", - "length": 255, - "name": "userapikey", - "required": true, + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", + "response": [ + { + "description": "the ID of the affinity group", + "name": "id", + "type": "string" + }, + { + "description": "the account owning the affinity group", + "name": "account", + "type": "string" + }, + { + "description": "the domain name of the affinity group", + "name": "domain", + "type": "string" + }, + { + "description": "the domain ID of the affinity group", + "name": "domainid", + "type": "string" + }, + { + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the type of the affinity group", + "name": "type", + "type": "string" + }, + { + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" + }, + { + "description": "the name of the affinity group", + "name": "name", + "type": "string" + }, + { + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project ID of the affinity group", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name of the affinity group", + "name": "project", + "type": "string" + }, + { + "description": "the description of the affinity group", + "name": "description", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "true if user has two factor authentication is mandated", - "name": "is2famandated", - "type": "boolean" + "description": "the hypervisor on which the template runs", + "name": "hypervisor", + "type": "string" }, { - "description": "the source type of the user in lowercase, such as native, ldap, saml2", - "name": "usersource", + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" + }, + { + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" + }, + { + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" + }, + { + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "the name of the role", - "name": "rolename", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" + }, + { + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" + }, + { + "description": "the id of userdata used for the VM", + "name": "userdataid", + "type": "string" + }, + { + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" + }, + { + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" + }, + { + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" + }, + { + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the api key of the user", - "name": "apikey", + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", "type": "string" }, { - "description": "the boolean value representing if the updating target is in caller's child domain", - "name": "iscallerchilddomain", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, - {}, - { - "description": "the account ID of the user", - "name": "accountid", - "type": "string" - }, - { - "description": "the user state", - "name": "state", - "type": "string" - }, { - "description": "the type of the role", - "name": "roletype", - "type": "string" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "the user name", - "name": "username", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the user ID", - "name": "id", + "description": "OS type id of the vm", + "name": "ostypeid", "type": "string" }, { - "description": "the secret key of the user", - "name": "secretkey", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the account name of the user", - "name": "account", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the timezone user was created in", - "name": "timezone", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, { - "description": "true if user has two factor authentication enabled", - "name": "is2faenabled", - "type": "boolean" + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" }, { - "description": "the domain ID of the user", + "description": "the ID of the domain in which the virtual machine exists", "name": "domainid", "type": "string" }, { - "description": "the ID of the role", - "name": "roleid", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the user email address", - "name": "email", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the domain name of the user", - "name": "domain", - "type": "string" + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" }, - {}, { - "description": "true if user is default, false otherwise", - "name": "isdefault", - "type": "boolean" + "description": "device type of the root volume", + "name": "rootdevicetype", + "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the account type of the user", - "name": "accounttype", + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", "type": "integer" }, { - "description": "the user lastname", - "name": "lastname", + "description": "OS name of the vm", + "name": "osdisplayname", "type": "string" }, { - "description": "the date and time the user account was created", - "name": "created", - "type": "date" - }, - { - "description": "the user firstname", - "name": "firstname", - "type": "string" - } - ] - }, - { - "description": "Lists load balancer rules.", - "isasync": false, - "name": "listLoadBalancerRules", - "params": [ - { - "description": "list resources by account. Must be used with the domainId parameter.", - "length": 255, - "name": "account", - "required": false, + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "list by network ID the rule belongs to", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks", - "required": false, - "type": "uuid" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the availability zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "the project id of the vm", + "name": "projectid", + "type": "string" }, { - "description": "list only resources belonging to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "the ID of the host for the virtual machine", + "name": "hostid", + "type": "string" }, { - "description": "the ID of the virtual machine of the load balancer rule", - "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", - "required": false, - "type": "uuid" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, + {}, { - "description": "the public IP address ID of the load balancer rule", - "length": 255, - "name": "publicipid", - "related": "associateIpAddress,listPublicIpAddresses", - "required": false, - "type": "uuid" + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", + "type": "string" }, { - "description": "the ID of the load balancer rule", - "length": 255, - "name": "id", - "related": "", - "required": false, - "type": "uuid" + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" }, { - "description": "the name of the load balancer rule", - "length": 255, - "name": "name", - "required": false, + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, + {}, { - "description": "List resources by tags (key/value pairs)", - "length": 255, - "name": "tags", - "required": false, - "type": "map" + "description": "the user's name who deployed the virtual machine", + "name": "username", + "type": "string" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", - "length": 255, - "name": "isrecursive", - "required": false, - "type": "boolean" + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "list resources by display flag; only ROOT admin is eligible to pass this parameter", - "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", - "length": 255, - "name": "projectid", - "related": "", - "required": false, - "type": "uuid" + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", + "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "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. Resources dedicated to a project are listed only if using the projectid parameter.", - "length": 255, - "name": "listall", - "required": false, - "type": "boolean" - } - ], - "related": "", - "response": [ - { - "description": "the project id of the load balancer", - "name": "projectid", + "description": "the group name of the virtual machine", + "name": "group", "type": "string" }, - {}, { - "description": "the id of the guest network the lb rule belongs to", - "name": "networkid", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the description of the load balancer", - "name": "description", + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { @@ -151947,727 +147638,986 @@ "type": "string" }, { - "description": "the domain of the load balancer rule", - "name": "domain", - "type": "string" - }, - { - "description": "the CIDR list to allow traffic, all other CIDRs will be blocked. Multiple entries must be separated by a single comma character (,).", - "name": "cidrlist", + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the public ip address", - "name": "publicip", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "the domain ID of the load balancer rule", - "name": "domainid", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the state of the rule", - "name": "state", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the project name of the load balancer", - "name": "project", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { - "description": "the account of the load balancer rule", - "name": "account", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the name of the load balancer", - "name": "name", - "type": "string" + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "the load balancer algorithm (source, roundrobin, leastconn)", - "name": "algorithm", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the name of the zone the load balancer rule belongs to", - "name": "zonename", - "type": "string" + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" }, { - "description": "path of the domain to which the load balancer rule belongs", - "name": "domainpath", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "the id of the zone the rule belongs to", - "name": "zoneid", + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", "type": "string" }, { - "description": "the list of resource tags associated with load balancer", - "name": "tags", + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", "response": [ { - "description": "tag key name", - "name": "key", + "description": "path of the Domain the security group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "the name of the security group", + "name": "name", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the project id of the group", + "name": "projectid", "type": "string" }, { - "description": "the domain associated with the tag", + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the domain name of the security group", "name": "domain", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", - "type": "string" + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + } + ], + "type": "set" }, { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + } + ], + "type": "set" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project name of the group", + "name": "project", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the description of the security group", + "name": "description", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the security group", + "name": "id", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "the account owning the security group", + "name": "account", "type": "string" } ], - "type": "list" - }, - { - "description": "the protocol of the loadbalanacer rule", - "name": "protocol", - "type": "string" - }, - { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - { - "description": "the public port", - "name": "publicport", - "type": "string" - }, - { - "description": "the load balancer rule ID", - "name": "id", - "type": "string" - }, - { - "description": "the private port", - "name": "privateport", - "type": "string" + "type": "set" }, - {}, { - "description": "the public ip address id", - "name": "publicipid", + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" } ] }, { - "description": "Creates a Management network IP range.", - "isasync": true, - "name": "createManagementNetworkIpRange", + "description": "Updates a service offering.", + "isasync": false, + "name": "updateServiceOffering", "params": [ { - "description": "The netmask for the management network.", + "description": "the name of the service offering to be updated", "length": 255, - "name": "netmask", - "required": true, + "name": "name", + "required": false, "type": "string" }, { - "description": "The ending IP address.", + "description": "sort key of the service offering, integer", "length": 255, - "name": "endip", + "name": "sortkey", "required": false, - "type": "string" + "type": "integer" }, { - "description": "UUID of POD, where the IP range belongs to.", + "description": "the ID of the service offering to be updated", "length": 255, - "name": "podid", - "related": "createManagementNetworkIpRange", + "name": "id", + "related": "updateServiceOffering", "required": true, "type": "uuid" }, { - "description": "Specify if range is dedicated for CPVM and SSVM.", + "description": "the host tag for this service offering.", "length": 255, - "name": "forsystemvms", + "name": "hosttags", "required": false, - "type": "boolean" + "since": "4.16", + "type": "string" }, { - "description": "The starting IP address.", + "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", + "length": 4096, + "name": "domainid", + "required": false, + "type": "string" + }, + { + "description": "comma-separated list of tags for the service offering, tags should match with existing storage pool tags", "length": 255, - "name": "startip", - "required": true, + "name": "storagetags", + "required": false, + "since": "4.16", "type": "string" }, { - "description": "Optional. The vlan id the ip range sits on, default to Null when it is not specified which means your network is not on any Vlan", + "description": "state of the service offering", "length": 255, - "name": "vlan", + "name": "state", "required": false, "type": "string" }, { - "description": "The gateway for the management network.", + "description": "Whether to cleanup VM and its associated resource upon expunge", "length": 255, - "name": "gateway", - "required": true, + "name": "purgeresources", + "required": false, + "since": "4.20", + "type": "boolean" + }, + { + "description": "the display text of the service offering to be updated", + "length": 255, + "name": "displaytext", + "required": false, + "type": "string" + }, + { + "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", + "length": 255, + "name": "zoneid", + "required": false, + "since": "4.13", "type": "string" } ], "related": "", "response": [ { - "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": "io requests write rate of the service offering", + "name": "diskIopsWriteRate", + "type": "long" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "burst io requests read rate of the disk offering", + "name": "diskIopsReadRateMax", + "type": "long" }, - {}, { - "description": "the Zone name of the Pod", - "name": "zonename", + "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domain", "type": "string" }, { - "description": "the allocation state of the Pod", - "name": "allocationstate", + "description": "the memory in MB", + "name": "memory", + "type": "integer" + }, + { + "description": "true if virtual machine root disk will be encrypted on storage", + "name": "encryptroot", + "type": "boolean" + }, + { + "description": "the ha support in the service offering", + "name": "offerha", + "type": "boolean" + }, + { + "description": "the vsphere storage policy tagged to the service offering in case of VMware", + "name": "vspherestoragepolicy", "type": "string" }, { - "description": "the name of the Pod", - "name": "name", + "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", + "name": "domainid", "type": "string" }, { - "description": "indicates Vlan ID for the range. This parameter is deprecated, please use 'vlanid' from ipranges parameter.", - "name": "vlanid", - "type": "list" + "description": "the min iops of the disk offering", + "name": "miniops", + "type": "long" }, { - "description": "the starting IP for the Pod. This parameter is deprecated, please use 'startip' from ipranges parameter.", - "name": "startip", - "type": "list" + "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 ID of the Pod", - "name": "id", + "description": "name of the disk offering", + "name": "diskofferingname", + "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 max iops of the disk offering", + "name": "maxiops", + "type": "long" + }, + { + "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", + "name": "hypervisorsnapshotreserve", + "type": "integer" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the IP ranges for the Pod", - "name": "ipranges", - "response": [ - { - "description": "indicates if range is dedicated for CPVM and SSVM", - "name": "forsystemvms", - "type": "string" - }, - { - "description": "the gateway for the range", - "name": "gateway", - "type": "string" - }, - { - "description": "the CIDR for the range", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP for the range", - "name": "startip", - "type": "string" - }, - { - "description": "indicates Vlan ID for the range", - "name": "vlanid", - "type": "string" - }, - { - "description": "the ending IP for the range", - "name": "endip", - "type": "string" - } - ], - "type": "list" + "description": "true if disk offering uses custom iops, false otherwise", + "name": "iscustomizediops", + "type": "boolean" }, { - "description": "the ending IP for the Pod. This parameter is deprecated, please use 'endip' from ipranges parameter.", - "name": "endip", - "type": "list" + "description": "the ID of the disk offering to which service offering is linked", + "name": "diskofferingid", + "type": "string" }, { - "description": "the netmask of the Pod", - "name": "netmask", + "description": "deployment strategy used to deploy VM.", + "name": "deploymentplanner", "type": "string" }, { - "description": "the capacity of the Pod", - "name": "capacity", - "response": [ - { - "description": "the Cluster ID", - "name": "clusterid", - "type": "string" - }, - { - "description": "the Pod name", - "name": "podname", - "type": "string" - }, - { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" - }, - { - "description": "The tag for the capacity type", - "name": "tag", - "type": "string" - }, - { - "description": "the Cluster name", - "name": "clustername", - "type": "string" - }, - { - "description": "the Zone name", - "name": "zonename", - "type": "string" - }, - { - "description": "the capacity currently in use", - "name": "capacityused", - "type": "long" - }, - { - "description": "the capacity type", - "name": "type", - "type": "short" - }, - { - "description": "the Pod ID", - "name": "podid", - "type": "string" - }, - { - "description": "the Zone ID", - "name": "zoneid", - "type": "string" - }, - { - "description": "the percentage of capacity currently in use", - "name": "percentused", - "type": "string" - }, - { - "description": "the capacity name", - "name": "name", - "type": "string" - }, - { - "description": "the capacity currently in allocated", - "name": "capacityallocated", - "type": "long" - } - ], - "type": "list" + "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", + "name": "diskofferingstrictness", + "type": "boolean" + }, + { + "description": "is this a the systemvm type for system vm offering", + "name": "systemvmtype", + "type": "string" + }, + { + "description": "burst bytes write rate of the disk offering", + "name": "diskBytesWriteRateMax", + "type": "long" + }, + { + "description": "additional key/value details tied with this service offering", + "name": "serviceofferingdetails", + "type": "map" + }, + { + "description": "length (in seconds) of the burst", + "name": "diskBytesReadRateMaxLength", + "type": "long" + }, + { + "description": "the clock rate CPU speed in Mhz", + "name": "cpuspeed", + "type": "integer" + }, + { + "description": "the cache mode to use for this disk offering. none, writeback or writethrough", + "name": "cacheMode", + "type": "string" + }, + { + "description": "state of the service offering", + "name": "state", + "type": "string" }, { - "description": "the gateway of the Pod", - "name": "gateway", + "description": "length (in seconds) of the burst", + "name": "diskBytesWriteRateMaxLength", + "type": "long" + }, + { + "description": "the id of the service offering", + "name": "id", "type": "string" }, { - "description": "the Zone ID of the Pod", - "name": "zoneid", + "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", + "name": "provisioningtype", + "type": "string" + }, + { + "description": "the host tag for the service offering", + "name": "hosttags", "type": "string" }, + { + "description": "io requests read rate of the service offering", + "name": "diskIopsReadRate", + "type": "long" + }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, - {} - ], - "since": "4.11.0.0" - }, - { - "description": "Retrieves a Cisco Nexus 1000v Virtual Switch Manager device associated with a Cluster", - "isasync": false, - "name": "listCiscoNexusVSMs", - "params": [ { - "description": "Id of the CloudStack cluster in which the Cisco Nexus 1000v VSM appliance.", - "length": 255, - "name": "clusterid", - "related": "", - "required": false, - "type": "uuid" + "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk", + "name": "isvolatile", + "type": "boolean" }, { - "description": "Id of the CloudStack cluster in which the Cisco Nexus 1000v VSM appliance.", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "length (in second) of the burst", + "name": "diskIopsReadRateMaxLength", + "type": "long" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "is this a system vm offering", + "name": "issystem", + "type": "boolean" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "is this a default system vm offering", + "name": "defaultuse", + "type": "boolean" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, - "type": "string" - } - ], - "related": "", - "response": [ + "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", + "name": "dynamicscalingenabled", + "type": "boolean" + }, { - "description": "packet vlan id of the VSM", - "name": "vsmpktvlanid", - "type": "int" + "description": "bytes write rate of the service offering", + "name": "diskBytesWriteRate", + "type": "long" }, { - "description": "control vlan id of the VSM", - "name": "vsmctrlvlanid", - "type": "int" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, - {}, { - "description": "The Device State (Enabled/Disabled) of the VSM", - "name": "vsmdevicestate", - "type": "string" + "description": "Root disk size in GB", + "name": "rootdisksize", + "type": "long" }, { - "description": "device id of the Cisco N1KV VSM device", - "name": "vsmdeviceid", + "description": "the display text of the disk offering", + "name": "diskofferingdisplaytext", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the service offering", + "name": "name", "type": "string" }, { - "description": "management vlan id of the VSM", - "name": "vsmmgmtvlanid", - "type": "string" + "description": "is true if the offering is customized", + "name": "iscustomized", + "type": "boolean" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "burst bytes read rate of the disk offering", + "name": "diskBytesReadRateMax", + "type": "long" }, { - "description": "device state", - "name": "vsmdevicestate", - "type": "string" + "description": "burst io requests write rate of the disk offering", + "name": "diskIopsWriteRateMax", + "type": "long" + }, + { + "description": "bytes read rate of the service offering", + "name": "diskBytesReadRate", + "type": "long" + }, + { + "description": "restrict the CPU usage to committed service offering", + "name": "limitcpuuse", + "type": "boolean" }, { - "description": "The mode of the VSM (standalone/HA)", - "name": "vsmconfigmode", + "description": "the tags for the service offering", + "name": "storagetags", "type": "string" }, { - "description": "The VSM is a switch supervisor. This is the VSM's switch domain id", - "name": "vsmdomainid", + "description": "an alternate display text of the service offering.", + "name": "displaytext", "type": "string" }, { - "description": "storage vlan id of the VSM", - "name": "vsmstoragevlanid", - "type": "int" + "description": "the date this service offering was created", + "name": "created", + "type": "date" }, - {}, { - "description": "device name", - "name": "vsmdevicename", - "type": "string" + "description": "data transfer rate in megabits per second allowed.", + "name": "networkrate", + "type": "integer" }, { - "description": "The Config State (Primary/Standby) of the VSM", - "name": "vsmconfigstate", - "type": "string" + "description": "Whether to cleanup VM and its associated resource upon expunge", + "name": "purgeresources", + "type": "boolean" }, { - "description": "the management IP address of the external Cisco Nexus 1000v Virtual Supervisor Module", - "name": "ipaddress", + "description": "the number of CPU", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "length (in seconds) of the burst", + "name": "diskIopsWriteRateMaxLength", + "type": "long" + }, + {}, + { + "description": "the storage type for this service offering", + "name": "storagetype", "type": "string" } ] }, { - "description": "Adds vpn users", + "description": "Stops a virtual machine.", "isasync": true, - "name": "addVpnUser", + "name": "stopVirtualMachine", "params": [ { - "description": "an optional account for the vpn user. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, - "type": "string" - }, - { - "description": "username for the vpn user", + "description": "The ID of the virtual machine", "length": 255, - "name": "username", + "name": "id", + "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", "required": true, - "type": "string" - }, - { - "description": "add vpn user to the specific project", - "length": 255, - "name": "projectid", - "related": "", - "required": false, "type": "uuid" }, { - "description": "password for the username", - "length": 255, - "name": "password", - "required": true, - "type": "string" - }, - { - "description": "an optional domainId for the vpn user. If the account parameter is used, domainId must also be used.", + "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). This option is to be used if the caller knows the VM is stopped and should be marked as such.", "length": 255, - "name": "domainid", - "related": "listDomains", + "name": "forced", "required": false, - "type": "uuid" + "type": "boolean" } ], - "related": "", + "related": "scaleVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the amount of the vm's CPU currently used", + "name": "cpuused", + "type": "string" }, { - "description": "the account of the remote access vpn", - "name": "account", + "description": "the name of userdata used for the VM", + "name": "userdataname", "type": "string" }, { - "description": "path of the domain to which the remote access vpn belongs", - "name": "domainpath", + "description": "the pool type of the virtual machine", + "name": "pooltype", "type": "string" }, { - "description": "the username of the vpn user", + "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", + "name": "memoryintfreekbs", + "type": "long" + }, + { + "description": "the user's name who deployed the virtual machine", "name": "username", "type": "string" }, { - "description": "the vpn userID", - "name": "id", + "description": " an alternate display text of the template for the virtual machine", + "name": "templatedisplaytext", "type": "string" }, { - "description": "the domain id of the account of the remote access vpn", - "name": "domainid", + "description": "the incoming network traffic on the VM in KiB", + "name": "networkkbsread", + "type": "long" + }, + { + "description": "true if high-availability is enabled, false otherwise", + "name": "haenable", + "type": "boolean" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, {}, { - "description": "the state of the Vpn User, can be 'Add', 'Revoke' or 'Active'.", - "name": "state", - "type": "string" + "description": "the target memory in VM (KiB)", + "name": "memorytargetkbs", + "type": "long" }, { - "description": "the domain name of the account of the remote access vpn", - "name": "domain", + "description": "the VM's primary IP address", + "name": "ipaddress", "type": "string" }, { - "description": "the project id of the vpn", - "name": "projectid", + "description": "true if vm has delete protection.", + "name": "deleteprotection", + "type": "boolean" + }, + { + "description": "the ID of the ISO attached to the virtual machine", + "name": "isoid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the password (if exists) of the virtual machine", + "name": "password", "type": "string" }, { - "description": "the project name of the vpn", - "name": "project", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, - {} - ] - }, - { - "description": "Deletes a project role permission in the project", - "isasync": false, - "name": "deleteProjectRolePermission", - "params": [ { - "description": "ID of the project role permission to be deleted", - "length": 255, - "name": "id", - "related": "", - "required": true, - "type": "uuid" + "description": "the total number of network traffic bytes received", + "name": "receivedbytes", + "type": "long" }, { - "description": "ID of the project where the project role permission is to be deleted", - "length": 255, + "description": "the project id of the vm", "name": "projectid", - "related": "", - "required": true, - "type": "uuid" - } - ], - "response": [ - {}, - { - "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": "NICs of the VNF appliance", + "name": "vnfnics", + "type": "list" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the availability zone for the virtual machine", + "name": "zoneid", "type": "string" }, - {}, - { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" - } - ], - "since": "4.15.0" - }, - { - "description": "Updates the quarantine end date for the given public IP address.", - "isasync": false, - "name": "updateQuarantinedIp", - "params": [ { - "description": "The date when the quarantine will no longer be active.", - "length": 255, - "name": "enddate", - "required": true, - "type": "date" + "description": "the total number of network traffic bytes sent", + "name": "sentbytes", + "type": "long" }, { - "description": "The public IP address in active quarantine. Either the IP address is informed, or the ID of the IP address in quarantine.", - "length": 255, - "name": "ipaddress", - "required": false, + "description": "Name of AutoScale VM group", + "name": "autoscalevmgroupname", "type": "string" }, { - "description": "The ID of the public IP address in active quarantine.", - "length": 255, - "name": "id", - "related": "updateQuarantinedIp", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "Account name of the previous public IP address owner.", - "name": "previousownername", + "description": "User VM type", + "name": "vmtype", "type": "string" }, { - "description": "When the quarantine was created.", - "name": "created", - "type": "date" + "description": "the control state of the host for the virtual machine", + "name": "hostcontrolstate", + "type": "string" }, { - "description": "When the quarantine was removed.", - "name": "removed", - "type": "date" + "description": "the VM's disk write in KiB", + "name": "diskkbswrite", + "type": "long" }, { - "description": "ID of the quarantine process.", - "name": "id", - "type": "string" + "description": "the list of resource tags associated", + "name": "tags", + "response": [ + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" }, { "description": "the current status of the latest async job acting on this object", @@ -152675,594 +148625,942 @@ "type": "integer" }, { - "description": "Account ID of the previous public IP address owner.", - "name": "previousownerid", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "End date for the quarantine.", - "name": "enddate", - "type": "date" + "description": "ssh key-pairs", + "name": "keypairs", + "type": "string" }, - {}, { - "description": "ID of the account that removed the IP from quarantine.", - "name": "removeraccountid", - "type": "string" + "description": "device ID of the root volume", + "name": "rootdeviceid", + "type": "long" }, { - "description": "The reason for removing the IP from quarantine prematurely.", - "name": "removalreason", + "description": "the write (IO) of disk on the VM", + "name": "diskiowrite", + "type": "long" + }, + { + "description": "the name of the availability zone for the virtual machine", + "name": "zonename", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "Vm details in key/value pairs.", + "name": "details", + "type": "map" + }, + { + "description": "the name of the host for the virtual machine", + "name": "hostname", "type": "string" }, - {}, { - "description": "The public IP address in quarantine.", - "name": "ipaddress", + "description": "the list of nics associated with vm", + "name": "nic", + "response": [ + { + "description": "the IPv6 address of network", + "name": "ip6address", + "type": "string" + }, + { + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" + }, + { + "description": "the isolation uri of the nic", + "name": "isolationuri", + "type": "string" + }, + { + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "the ip address of the nic", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", + "type": "string" + }, + { + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", + "type": "string" + }, + { + "description": "the ID of the corresponding network", + "name": "networkid", + "type": "string" + }, + { + "description": "the type of the nic", + "name": "type", + "type": "string" + }, + { + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", + "type": "string" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "macaddress", + "type": "string" + }, + { + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", + "type": "string" + }, + { + "description": "the ID of the nic", + "name": "id", + "type": "string" + }, + { + "description": "the netmask of the nic", + "name": "netmask", + "type": "string" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", + "type": "string" + }, + { + "description": "the traffic type of the nic", + "name": "traffictype", + "type": "string" + }, + { + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", + "type": "string" + }, + { + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", + "type": "string" + }, + { + "description": "true if nic is default, false otherwise", + "name": "isdefault", + "type": "boolean" + }, + { + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "the gateway of the nic", + "name": "gateway", + "type": "string" + }, + { + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", + "type": "string" + }, + { + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", + "type": "string" + }, + { + "description": "the name of the corresponding network", + "name": "networkname", + "type": "string" + }, + { + "description": "the broadcast uri of the nic", + "name": "broadcasturi", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the format of the template for the virtual machine", + "name": "templateformat", "type": "string" - } - ], - "since": "4.19" - }, - { - "description": "Updates a template to VNF template or attributes of a VNF template.", - "isasync": false, - "name": "updateVnfTemplate", - "params": [ + }, { - "description": "the tag for this template.", - "length": 255, - "name": "templatetag", - "required": false, - "since": "4.20.0", + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the format for the image", - "length": 255, - "name": "format", - "required": false, + "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", + "name": "displayname", "type": "string" }, { - "description": "the type of the template. Valid options are: USER/VNF (for all users) and SYSTEM/ROUTING/BUILTIN (for admins only).", - "length": 255, - "name": "templatetype", - "required": false, + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "the ID of the image file", - "length": 255, - "name": "id", - "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", - "required": true, - "type": "uuid" + "description": "the date when this virtual machine was created", + "name": "created", + "type": "date" }, { - "description": "sort key of the template, integer", - "length": 255, - "name": "sortkey", - "required": false, + "description": "the speed of each vCPU", + "name": "cpuspeed", "type": "integer" }, { - "description": "true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "length": 255, - "name": "isdynamicallyscalable", - "required": false, - "type": "boolean" + "description": "list of security groups associated with the virtual machine", + "name": "securitygroup", + "response": [ + { + "description": "the name of the security group", + "name": "name", + "type": "string" + }, + { + "description": "the ID of the security group", + "name": "id", + "type": "string" + }, + { + "description": "the description of the security group", + "name": "description", + "type": "string" + }, + { + "description": "the domain name of the security group", + "name": "domain", + "type": "string" + }, + { + "description": "the list of virtualmachine ids associated with this securitygroup", + "name": "virtualmachineids", + "type": "set" + }, + { + "description": "path of the Domain the security group belongs to", + "name": "domainpath", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the number of virtualmachines associated with this securitygroup", + "name": "virtualmachinecount", + "type": "integer" + }, + { + "description": "the domain ID of the security group", + "name": "domainid", + "type": "string" + }, + { + "description": "the account owning the security group", + "name": "account", + "type": "string" + }, + { + "description": "the list of egress rules associated with the security group", + "name": "egressrule", + "response": [ + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + } + ], + "type": "set" + }, + { + "description": "the project name of the group", + "name": "project", + "type": "string" + }, + { + "description": "the list of ingress rules associated with the security group", + "name": "ingressrule", + "response": [ + { + "description": "the protocol of the security group rule", + "name": "protocol", + "type": "string" + }, + { + "description": "the CIDR notation for the base IP address of the security group rule", + "name": "cidr", + "type": "string" + }, + { + "description": "the type of the ICMP message response", + "name": "icmptype", + "type": "integer" + }, + { + "description": "the ending IP of the security group rule ", + "name": "endport", + "type": "integer" + }, + { + "description": "the code for the ICMP message response", + "name": "icmpcode", + "type": "integer" + }, + { + "description": "account owning the security group rule", + "name": "account", + "type": "string" + }, + { + "description": "the list of resource tags associated with the rule", + "name": "tags", + "response": [ + { + "description": "the project name where tag belongs to", + "name": "project", + "type": "string" + }, + { + "description": "path of the Domain associated with the tag", + "name": "domainpath", + "type": "string" + }, + { + "description": "id of the resource", + "name": "resourceid", + "type": "string" + }, + { + "description": "the project id the tag belongs to", + "name": "projectid", + "type": "string" + }, + { + "description": "customer associated with the tag", + "name": "customer", + "type": "string" + }, + { + "description": "tag key name", + "name": "key", + "type": "string" + }, + { + "description": "the account associated with the tag", + "name": "account", + "type": "string" + }, + { + "description": "the ID of the domain associated with the tag", + "name": "domainid", + "type": "string" + }, + { + "description": "tag value", + "name": "value", + "type": "string" + }, + { + "description": "the domain associated with the tag", + "name": "domain", + "type": "string" + }, + { + "description": "resource type", + "name": "resourcetype", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "security group name", + "name": "securitygroupname", + "type": "string" + }, + { + "description": "the starting IP of the security group rule", + "name": "startport", + "type": "integer" + }, + { + "description": "the id of the security group rule", + "name": "ruleid", + "type": "string" + } + ], + "type": "set" + }, + { + "description": "the project id of the group", + "name": "projectid", + "type": "string" + } + ], + "type": "set" + }, + {}, + { + "description": "public IP address id associated with vm via Static nat rule", + "name": "publicipid", + "type": "string" + }, + { + "description": "the memory allocated for the virtual machine", + "name": "memory", + "type": "integer" }, { - "description": "VNF nics in key/value pairs using format vnfnics[i].keyname=keyvalue. Example: vnfnics[0].deviceid=0&&vnfnics[0].name=FirstNIC&&vnfnics[0].required=true&&vnfnics[1].deviceid=1&&vnfnics[1].name=SecondNIC", - "length": 255, - "name": "vnfnics", - "required": false, - "type": "map" + "description": "path of the domain in which the virtual machine exists", + "name": "domainpath", + "type": "string" }, { - "description": "true if the template type is routing i.e., if template is used to deploy router", - "length": 255, - "name": "isrouting", - "required": false, - "type": "boolean" + "description": "OS name of the vm", + "name": "osdisplayname", + "type": "string" }, { - "description": "VNF details in key/value pairs using format vnfdetails[i].keyname=keyvalue. Example: vnfdetails[0].vendor=xxx&&vnfdetails[0].version=2.0", - "length": 255, - "name": "vnfdetails", - "required": false, - "type": "map" + "description": "the ID of the virtual machine", + "name": "id", + "type": "string" }, { - "description": "true if the template requires HVM, false otherwise; available only for updateTemplate API", - "length": 255, - "name": "requireshvm", - "required": false, - "type": "boolean" + "description": "the name of the backup offering of the virtual machine", + "name": "backupofferingname", + "type": "string" }, { - "description": "the ID of the OS type that best represents the OS of this image.", - "length": 255, - "name": "ostypeid", - "related": "", - "required": false, - "type": "uuid" + "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", + "name": "templateid", + "type": "string" }, { - "description": "true if image is bootable, false otherwise; available only for updateIso API", - "length": 255, - "name": "bootable", - "required": false, - "type": "boolean" + "description": "the VM's disk read in KiB", + "name": "diskkbsread", + "type": "long" }, { - "description": "true if the template supports the sshkey upload feature; default is false", - "length": 255, - "name": "sshkeyenabled", - "required": false, - "type": "boolean" + "description": "the memory used by the VM in KiB", + "name": "memorykbs", + "type": "long" }, { - "description": "optional boolean field, which indicates if VNF nics will be cleaned up or not", - "length": 255, - "name": "cleanupvnfnics", - "required": false, - "type": "boolean" + "description": "the ID of the service offering of the virtual machine", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the name of the image file", - "length": 255, - "name": "name", - "required": false, + "description": "the ID of the backup offering of the virtual machine", + "name": "backupofferingid", "type": "string" }, { - "description": "the display text of the image", - "length": 4096, - "name": "displaytext", - "required": false, + "description": "ID of AutoScale VM group", + "name": "autoscalevmgroupid", "type": "string" }, { - "description": "true if the image supports the password reset feature; default is false", - "length": 255, - "name": "passwordenabled", - "required": false, - "type": "boolean" + "description": "the name of the service offering of the virtual machine", + "name": "serviceofferingname", + "type": "string" }, { - "description": "the CPU arch of the template/ISO. Valid options are: x86_64, aarch64", - "length": 255, - "name": "arch", - "required": false, - "since": "4.20", + "description": "Guest vm Boot Mode", + "name": "bootmode", "type": "string" }, { - "description": "optional boolean field, which indicates if VNF details will be cleaned up or not", - "length": 255, - "name": "cleanupvnfdetails", - "required": false, - "type": "boolean" + "description": "the project name of the vm", + "name": "project", + "type": "string" }, { - "description": "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "the type of the template for the virtual machine", + "name": "templatetype", + "type": "string" }, { - "description": "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)", - "length": 255, - "name": "cleanupdetails", - "required": false, + "description": "true if the password rest feature is enabled, false otherwise", + "name": "passwordenabled", "type": "boolean" - } - ], - "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate", - "response": [ + }, { - "description": "the name of userdata linked to this template", - "name": "userdataname", + "description": "the id of userdata used for the VM", + "name": "userdataid", "type": "string" }, - {}, - {}, { - "description": "the project name of the template", - "name": "project", + "description": "the group ID of the virtual machine", + "name": "groupid", "type": "string" }, { - "description": "the ID of the secondary storage host for the template", - "name": "hostid", + "description": "Base64 string containing the user data", + "name": "userdata", "type": "string" }, { - "description": "if Datadisk template, then id of the root disk template this template belongs to", - "name": "parenttemplateid", + "description": "the name of the template for the virtual machine", + "name": "templatename", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingid", + "type": "string" }, { - "description": "the list of resource tags associated", - "name": "tags", + "description": "list of affinity groups associated with the virtual machine", + "name": "affinitygroup", "response": [ { - "description": "the account associated with the tag", - "name": "account", + "description": "the ID of the affinity group", + "name": "id", "type": "string" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the description of the affinity group", + "name": "description", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the project ID of the affinity group", + "name": "projectid", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "the type of the affinity group", + "name": "type", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the domain ID of the affinity group", + "name": "domainid", "type": "string" }, { - "description": "tag value", - "name": "value", - "type": "string" + "description": "dedicated resources associated with this affinity group", + "name": "dedicatedresources", + "type": "list" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the account owning the affinity group", + "name": "account", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "virtual machine IDs associated with this affinity group", + "name": "virtualmachineIds", + "type": "list" + }, + { + "description": "the project name of the affinity group", + "name": "project", "type": "string" }, { - "description": "customer associated with the tag", - "name": "customer", + "description": "the domain name of the affinity group", + "name": "domain", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", + "description": "path of the Domain the affinity group belongs to", + "name": "domainpath", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the name of the affinity group", + "name": "name", "type": "string" } ], "type": "set" }, + {}, { - "description": "the status of the template", - "name": "status", - "type": "string" - }, - { - "description": "true if the template is extractable, false otherwise", - "name": "isextractable", - "type": "boolean" - }, - { - "description": "Lists the download progress of a template across all secondary storages", - "name": "downloaddetails", - "type": "list" - }, - { - "description": "true if this template is a featured template, false otherwise", - "name": "isfeatured", - "type": "boolean" - }, - { - "description": "the tag of this template", - "name": "templatetag", - "type": "string" - }, - { - "description": "the name of the domain to which the template belongs", - "name": "domain", - "type": "string" - }, - { - "description": "true if the ISO is bootable, false otherwise", - "name": "bootable", - "type": "boolean" - }, - { - "description": "checksum of the template", - "name": "checksum", - "type": "string" - }, - { - "description": "true if the template is ready to be deployed from, false otherwise.", - "name": "isready", + "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", + "name": "isdynamicallyscalable", "type": "boolean" }, { - "description": "the format of the template.", - "name": "format", - "type": "imageformat" - }, - { - "description": "the project id of the template", - "name": "projectid", + "description": "the name of the ISO attached to the virtual machine", + "name": "isoname", "type": "string" }, { - "description": "the processor bit size", - "name": "bits", - "type": "int" - }, - { - "description": "VMware only: additional key/value details tied with deploy-as-is template", - "name": "deployasisdetails", - "type": "map" + "description": "Base64 string representation of the resource icon", + "name": "icon", + "type": "resourceiconresponse" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "the virtual network for the service offering", + "name": "forvirtualnetwork", "type": "boolean" }, { - "description": "the account id to which the template belongs", - "name": "accountid", + "description": "an alternate display text of the ISO attached to the virtual machine", + "name": "isodisplaytext", "type": "string" }, { - "description": "the ID of the domain to which the template belongs", - "name": "domainid", + "description": "the user's ID who deployed the virtual machine", + "name": "userid", "type": "string" }, { - "description": "the name of the OS type for this template.", - "name": "ostypename", + "description": "the userdata override policy with the userdata provided while deploying VM", + "name": "userdatapolicy", "type": "string" }, { - "description": "the type of the template", - "name": "templatetype", + "description": "Guest vm Boot Type", + "name": "boottype", "type": "string" }, { - "description": "the id of userdata linked to this template", - "name": "userdataid", + "description": "the vGPU type used by the virtual machine", + "name": "vgpu", "type": "string" }, { - "description": "true if template requires HVM enabled, false otherwise", - "name": "requireshvm", - "type": "boolean" - }, - { - "description": "the template ID of the parent template if present", - "name": "sourcetemplateid", + "description": "the hypervisor on which the template runs", + "name": "hypervisor", "type": "string" }, { - "description": "true if this template is a public template, false otherwise", - "name": "ispublic", - "type": "boolean" - }, - { - "description": "the physical size of the template", - "name": "physicalsize", - "type": "long" - }, - { - "description": "true if the reset password feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" - }, - { - "description": "the size of the template", - "name": "size", - "type": "long" - }, - { - "description": "the account name to which the template belongs", - "name": "account", + "description": "Os type ID of the virtual machine", + "name": "guestosid", "type": "string" }, { - "description": "the template display text", - "name": "displaytext", + "description": "device type of the root volume", + "name": "rootdevicetype", "type": "string" }, { - "description": "list of parameters which contains the list of keys or string parameters that are needed to be passed for any variables declared in userdata", - "name": "userdataparams", + "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", + "name": "instancename", "type": "string" }, { - "description": "CPU Arch of the template", - "name": "arch", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the date this template was removed", - "name": "removed", - "type": "date" + "description": "the number of vCPUs this virtual machine is using", + "name": "cpunumber", + "type": "integer" }, { - "description": "true if template is sshkey enabled, false otherwise", - "name": "sshkeyenabled", + "description": "an optional field whether to the display the vm to the end user or not.", + "name": "displayvm", "type": "boolean" }, { - "description": "true if the template is managed across all Zones, false otherwise", - "name": "crossZones", - "type": "boolean" + "description": "the group name of the virtual machine", + "name": "group", + "type": "string" }, { - "description": "the name of the zone for this template", - "name": "zonename", - "type": "string" + "description": "VNF details", + "name": "vnfdetails", + "type": "map" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the outgoing network traffic on the host in KiB", + "name": "networkkbswrite", + "type": "long" }, { - "description": "additional key/value details tied with template", - "name": "details", - "type": "map" + "description": "the read (IO) of disk on the VM", + "name": "diskioread", + "type": "long" }, { - "description": "KVM Only: true if template is directly downloaded to Primary Storage bypassing Secondary Storage", - "name": "directdownload", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "the template name", - "name": "name", + "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", + "name": "diskofferingname", "type": "string" }, { - "description": "path of the Domain the template belongs to", - "name": "domainpath", + "description": "list of variables and values for the variables declared in userdata", + "name": "userdatadetails", "type": "string" }, { - "description": "if root disk template, then ids of the datas disk templates this template owns", - "name": "childtemplates", - "type": "set" - }, - { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "State of the Service from LB rule", + "name": "servicestate", "type": "string" }, { - "description": "the ID of the OS type for this template.", - "name": "ostypeid", + "description": "List of read-only Vm details as comma separated string.", + "name": "readonlydetails", "type": "string" }, { - "description": "true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory", - "name": "isdynamicallyscalable", - "type": "boolean" - }, - { - "description": "the template ID", - "name": "id", + "description": "OS type id of the vm", + "name": "ostypeid", "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 URL which the template/iso is registered from", - "name": "url", + "description": "the ID of the host for the virtual machine", + "name": "hostid", "type": "string" }, { - "description": "the date this template was created", - "name": "created", + "description": "the date when this virtual machine was updated last time", + "name": "lastupdated", "type": "date" }, { - "description": "the ID of the zone for this template", - "name": "zoneid", - "type": "string" - }, - { - "description": "the name of the secondary storage host for the template", - "name": "hostname", - "type": "string" - }, - { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the state of the virtual machine", + "name": "state", "type": "string" - }, - { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" } - ], - "since": "4.19.0" + ] }, { - "description": "Updates VPC offering", + "description": "Creates a network ACL. If no VPC is given, then it creates a global ACL that can be used by everyone.", "isasync": true, - "name": "updateVPCOffering", + "name": "createNetworkACLList", "params": [ { - "description": "the id of the VPC offering", - "length": 255, - "name": "id", - "related": "updateVPCOffering", - "required": true, - "type": "uuid" - }, - { - "description": "sort key of the VPC offering, integer", - "length": 255, - "name": "sortkey", - "required": false, - "type": "integer" - }, - { - "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", - "length": 4096, - "name": "domainid", - "required": false, - "type": "string" - }, - { - "description": "the name of the VPC offering", + "description": "Name of the network ACL list", "length": 255, "name": "name", - "required": false, + "required": true, "type": "string" }, { - "description": "update state for the VPC offering; supported states - Enabled/Disabled", + "description": "an optional field, whether to the display the list to the end user or not", "length": 255, - "name": "state", + "name": "fordisplay", "required": false, - "type": "string" + "since": "4.4", + "type": "boolean" }, { - "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", + "description": "ID of the VPC associated with this network ACL list", "length": 255, - "name": "zoneid", + "name": "vpcid", + "related": "createVPC,listVPCs,updateVPC", "required": false, - "since": "4.13", - "type": "string" + "type": "uuid" }, { - "description": "the display text of the VPC offering", + "description": "Description of the network ACL list", "length": 255, - "name": "displaytext", + "name": "description", "required": false, "type": "string" } @@ -153270,28 +149568,35 @@ "related": "", "response": [ { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "the Name of the ACL", + "name": "name", "type": "string" }, { - "description": " indicates if the vpc offering supports distributed router for one-hop forwarding", - "name": "distributedvpcrouter", + "description": "Name of the VPC this ACL is associated with", + "name": "vpcname", + "type": "string" + }, + { + "description": "is ACL for display to the regular user", + "name": "fordisplay", "type": "boolean" }, { - "description": "the name of the vpc offering", - "name": "name", + "description": "the ID of the ACL", + "name": "id", "type": "string" }, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, + {}, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "Id of the VPC this ACL is associated with", + "name": "vpcid", "type": "string" }, { @@ -153299,505 +149604,152 @@ "name": "jobstatus", "type": "integer" }, - {}, - { - "description": "the id of the vpc offering", - "name": "id", - "type": "string" - }, - { - "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 internet protocol of the vpc offering", - "name": "internetprotocol", - "type": "string" - }, - { - "description": "the date this vpc offering was created", - "name": "created", - "type": "date" - }, - { - "description": "Mode in which the network will operate. The valid values are NATTED and ROUTED", - "name": "networkmode", - "type": "string" - }, - { - "description": "indicated if the offering can support region level vpc", - "name": "supportsregionLevelvpc", - "type": "boolean" - }, - { - "description": "true if network offering supports choosing AS numbers", - "name": "specifyasnumber", - "type": "boolean" - }, - { - "description": "the routing mode for the network offering, supported types are Static or Dynamic.", - "name": "routingmode", - "type": "string" - }, - { - "description": "state of the vpc offering. Can be Disabled/Enabled", - "name": "state", - "type": "string" - }, - { - "description": "the list of supported services", - "name": "service", - "response": [ - { - "description": "the service provider name", - "name": "provider", - "response": [ - { - "description": "services for this provider", - "name": "servicelist", - "type": "list" - }, - { - "description": "the provider name", - "name": "name", - "type": "string" - }, - { - "description": "the destination physical network", - "name": "destinationphysicalnetworkid", - "type": "string" - }, - { - "description": "state of the network provider", - "name": "state", - "type": "string" - }, - { - "description": "uuid of the network provider", - "name": "id", - "type": "string" - }, - { - "description": "the physical network this belongs to", - "name": "physicalnetworkid", - "type": "string" - }, - { - "description": "true if individual services can be enabled/disabled", - "name": "canenableindividualservice", - "type": "boolean" - } - ], - "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": "can this service capability value can be choosable while creatine network offerings", - "name": "canchooseservicecapability", - "type": "boolean" - }, - { - "description": "the capability value", - "name": "value", - "type": "string" - } - ], - "type": "list" - } - ], - "type": "list" - }, - { - "description": "an alternate display text of the vpc offering.", - "name": "displaytext", - "type": "string" - }, - { - "description": "true if vpc offering can be used by NSX networks only", - "name": "fornsx", - "type": "boolean" - }, - { - "description": "true if vpc offering is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "Description of the ACL", + "name": "description", "type": "string" - }, - {} + } ] }, { - "description": "Lists user two factor authenticator providers", + "description": "Add a supported Kubernetes version", "isasync": false, - "name": "listUserTwoFactorAuthenticatorProviders", + "name": "addKubernetesSupportedVersion", "params": [ { - "description": "List user two factor authenticator provider by name", + "description": "the URL of the binaries ISO for Kubernetes supported version", "length": 255, - "name": "name", + "name": "url", "required": false, "type": "string" - } - ], - "related": "", - "response": [ - { - "description": "the user two factor authenticator provider name", - "name": "name", - "type": "string" - }, - { - "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": "the description of the user two factor authenticator provider", - "name": "description", - "type": "string" - } - ], - "since": "4.18.0" - }, - { - "description": "Scales the virtual machine to a new service offering. This command also considers the volume size in the service offering or disk offering linked to the new service offering and apply all characteristics to the root volume.", - "isasync": true, - "name": "scaleVirtualMachine", - "params": [ - { - "description": "the ID of the service offering for the virtual machine", + "description": "the minimum number of CPUs to be set with the Kubernetes version", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering,listServiceOfferings", + "name": "mincpunumber", "required": true, - "type": "uuid" + "type": "integer" }, { - "description": "The ID of the virtual machine", + "description": "the semantic version of the Kubernetes version. It needs to be specified in MAJOR.MINOR.PATCH format", "length": 255, - "name": "id", - "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "name": "semanticversion", "required": true, - "type": "uuid" + "type": "string" }, { - "description": "Flag for automatic migration of the root volume with new compute offering whenever migration is required to apply the offering", + "description": "the checksum value of the binaries ISO. The parameter containing the checksum will be considered a MD5sum if it is not prefixed\n and just a plain ascii/utf8 representation of a hexadecimal string. If it is required to\n use another algorithm the hexadecimal string is to be prefixed with a string of the form,\n \"{}\", not including the double quotes. In this is the exact string\n representing the java supported algorithm, i.e. MD5 or SHA-256. Note that java does not\n contain an algorithm called SHA256 or one called sha-256, only SHA-256.", "length": 255, - "name": "automigrate", + "name": "checksum", "required": false, - "since": "4.17", - "type": "boolean" + "type": "string" }, { - "description": "New maximum number of IOPS for the custom disk offering", + "description": "If set to true the Kubernetes supported version ISO will bypass Secondary Storage and be downloaded to Primary Storage on deployment. Default is false", "length": 255, - "name": "maxiops", + "name": "directdownload", "required": false, - "since": "4.17", - "type": "long" + "since": "4.18.2", + "type": "boolean" }, { - "description": "name value pairs of custom parameters for cpuspeed, memory and cpunumber. example details[i].name=value", + "description": "the name of the Kubernetes supported version", "length": 255, - "name": "details", + "name": "name", "required": false, - "type": "map" + "type": "string" }, { - "description": "Verify OK to Shrink", + "description": "the minimum RAM size in MB to be set with the Kubernetes version", "length": 255, - "name": "shrinkok", - "required": false, - "since": "4.17", - "type": "boolean" + "name": "minmemory", + "required": true, + "type": "integer" }, { - "description": "New minimum number of IOPS for the custom disk offering", + "description": "the CPU arch of the Kubernetes ISO. Valid options are: x86_64, aarch64", "length": 255, - "name": "miniops", + "name": "arch", "required": false, - "since": "4.17", - "type": "long" - } - ], - "response": [ - { - "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", + "since": "4.20", "type": "string" }, - {}, - { - "description": "any text associated with the success or failure", - "name": "displaytext", - "type": "string" - } - ] - }, - { - "description": "Updates egress firewall rule ", - "isasync": true, - "name": "updateEgressFirewallRule", - "params": [ { - "description": "an optional field, whether to the display the rule to the end user or not", + "description": "the ID of the zone in which Kubernetes supported version will be available", "length": 255, - "name": "fordisplay", + "name": "zoneid", + "related": "listZones", "required": false, - "since": "4.4", - "type": "boolean" - }, - { - "description": "the ID of the egress firewall rule", - "length": 255, - "name": "id", - "related": "", - "required": true, "type": "uuid" - }, - { - "description": "an optional field, in case you want to set a custom id to the resource. Allowed to Root Admins only", - "length": 255, - "name": "customid", - "required": false, - "since": "4.4", - "type": "string" } ], - "related": "", + "related": "listKubernetesSupportedVersions,updateKubernetesSupportedVersion", "response": [ { - "description": "the public ip address id for the firewall rule", - "name": "ipaddressid", - "type": "string" - }, - { - "description": "the protocol of the firewall rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the cidr list to forward traffic from. Multiple entries are separated by a single comma character (,).", - "name": "cidrlist", + "description": "the name of the binaries ISO for Kubernetes supported version", + "name": "isoname", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "whether Kubernetes supported version supports HA, multi-control nodes", + "name": "supportsha", + "type": "boolean" }, + {}, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" }, { - "description": "the public ip address for the firewall rule", - "name": "ipaddress", + "description": "the id of the binaries ISO for Kubernetes supported version", + "name": "isoid", "type": "string" }, { - "description": "type of the icmp message being sent", - "name": "icmptype", + "description": "the minimum number of CPUs needed for the Kubernetes supported version", + "name": "mincpunumber", "type": "integer" }, { - "description": "is rule for display to the regular user", - "name": "fordisplay", - "type": "boolean" - }, - {}, - { - "description": "the starting port of firewall rule's port range", - "name": "startport", - "type": "integer" + "description": "the date when this Kubernetes supported version was created", + "name": "created", + "type": "date" }, { - "description": "the cidr list to forward traffic to. Multiple entries are separated by a single comma character (,).", - "name": "destcidrlist", + "description": "the id of the zone in which Kubernetes supported version is available", + "name": "zoneid", "type": "string" }, { - "description": "the ending port of firewall rule's port range", - "name": "endport", + "description": "the minimum RAM size in MB needed for the Kubernetes supported version", + "name": "minmemory", "type": "integer" }, { - "description": "the network id of the firewall rule", - "name": "networkid", + "description": "the state of the binaries ISO for Kubernetes supported version", + "name": "isostate", "type": "string" }, { - "description": "error code for this icmp message", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - } - ], - "type": "list" - }, - { - "description": "the state of the rule", + "description": "the enabled or disabled state of the Kubernetes supported version", "name": "state", "type": "string" }, - {}, - { - "description": "the traffic type for the firewall rule", - "name": "traffictype", - "type": "string" - }, { - "description": "the ID of the firewall rule", - "name": "id", - "type": "string" - } - ], - "since": "4.4" - }, - { - "description": "Lists all supported OS categories for this cloud.", - "isasync": false, - "name": "listOsCategories", - "params": [ - { - "description": "list os category by name", - "length": 255, - "name": "name", - "required": false, - "since": "3.0.1", - "type": "string" - }, - { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the zone in which Kubernetes supported version is available", + "name": "zonename", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - }, - { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "whether Kubernetes supported version supports Autoscaling", + "name": "supportsautoscaling", + "type": "boolean" }, { - "description": "list Os category by id", - "length": 255, - "name": "id", - "related": "listOsCategories", - "required": false, - "type": "uuid" - } - ], - "related": "", - "response": [ - { - "description": "the name of the OS category", - "name": "name", - "type": "string" + "description": "KVM Only: true if the ISO for the Kubernetes supported version is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" }, { "description": "the UUID of the latest async job acting on this object", @@ -153805,276 +149757,240 @@ "type": "string" }, { - "description": "the ID of the OS category", + "description": "the id of the Kubernetes supported version", "name": "id", "type": "string" }, {}, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "Name of the Kubernetes supported version", + "name": "name", + "type": "string" }, - {} + { + "description": "Kubernetes semantic version", + "name": "semanticversion", + "type": "string" + } ] }, { - "description": "Lists all available service offerings.", - "isasync": false, - "name": "listServiceOfferings", - "params": [ - { - "description": "The ID of the template that listed offerings must support", - "length": 255, - "name": "templateid", - "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate", - "required": false, - "since": "4.20.0", - "type": "uuid" - }, - { - "description": "is this a system vm offering", - "length": 255, - "name": "issystem", - "required": false, - "type": "boolean" - }, + "description": "Creates a Kubernetes cluster", + "isasync": true, + "name": "createKubernetesCluster", + "params": [ { - "description": "list resources by account. Must be used with the domainId parameter.", + "description": "name for the Kubernetes cluster", "length": 255, - "name": "account", - "required": false, + "name": "name", + "required": true, "type": "string" }, { - "description": "Filter by state of the service offering. Defaults to 'Active'. If set to 'all' shows both Active & Inactive offerings.", + "description": "description for the Kubernetes cluster", "length": 255, - "name": "state", + "name": "description", "required": false, - "since": "4.19", "type": "string" }, { - "description": "", + "description": "root disk size in GB for each node", "length": 255, - "name": "pagesize", + "name": "noderootdisksize", "required": false, - "type": "integer" + "type": "long" }, { - "description": "the ID of the virtual machine. Pass this in if you want to see the available service offering that a virtual machine can be changed to.", + "description": "Deploy cluster for the project", "length": 255, - "name": "virtualmachineid", - "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,importVm", + "name": "projectid", + "related": "", "required": false, "type": "uuid" }, { - "description": "List by keyword", + "description": "user name for the docker image private registry", "length": 255, - "name": "keyword", + "name": "dockerregistryusername", "required": false, "type": "string" }, { - "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false. Resources dedicated to a project are listed only if using the projectid parameter.", + "description": "availability zone in which Kubernetes cluster to be launched", "length": 255, - "name": "listall", + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" + }, + { + "description": "name of the ssh key pair used to login to the virtual machines", + "length": 255, + "name": "keypair", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "ID of the service offering", + "description": "number of Kubernetes cluster control nodes, default is 1", "length": 255, - "name": "id", - "related": "updateServiceOffering,listServiceOfferings", + "name": "controlnodes", "required": false, - "type": "uuid" + "type": "long" }, { - "description": "", + "description": "external load balancer IP address while using shared network with Kubernetes HA cluster", "length": 255, - "name": "page", + "name": "externalloadbalanceripaddress", "required": false, - "type": "integer" + "type": "string" }, { - "description": "list objects by project; if projectid=-1 lists All VMs", + "description": "type of the cluster: CloudManaged, ExternalManaged. The default value is CloudManaged.", "length": 255, - "name": "projectid", - "related": "", + "name": "clustertype", "required": false, - "type": "uuid" + "since": "4.19.0", + "type": "string" }, { - "description": "listed offerings support root disk encryption", + "description": "Network in which Kubernetes cluster is to be launched", "length": 255, - "name": "encryptroot", + "name": "networkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", "required": false, - "since": "4.18", - "type": "boolean" + "type": "uuid" }, { - "description": "the CPU number that listed offerings must support", + "description": "the ID of the service offering for the virtual machines in the cluster.", "length": 255, - "name": "cpunumber", + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", "required": false, - "since": "4.15", - "type": "integer" + "type": "uuid" }, { - "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", + "description": "number of Kubernetes cluster worker nodes", "length": 255, - "name": "isrecursive", + "name": "size", "required": false, - "type": "boolean" + "type": "long" }, { - "description": "the storage type of the service offering. Values are local and shared.", + "description": "an optional account for the virtual machine. Must be used with domainId.", "length": 255, - "name": "storagetype", + "name": "account", "required": false, - "since": "4.19", "type": "string" }, { - "description": "the CPU speed that listed offerings must support", + "description": "Kubernetes version with which cluster to be launched", "length": 255, - "name": "cpuspeed", + "name": "kubernetesversionid", + "related": "listKubernetesSupportedVersions", "required": false, - "since": "4.15", - "type": "integer" + "type": "uuid" }, { - "description": "id of zone disk offering is associated with", + "description": "number of Kubernetes cluster master nodes, default is 1. This option is deprecated, please use 'controlnodes' parameter.", "length": 255, - "name": "zoneid", - "related": "listZones", + "name": "masternodes", "required": false, - "since": "4.13", - "type": "uuid" + "type": "long" }, { - "description": "the system VM type. Possible types are \"consoleproxy\", \"secondarystoragevm\" or \"domainrouter\".", + "description": "URL for the docker image private registry", "length": 255, - "name": "systemvmtype", + "name": "dockerregistryurl", "required": false, "type": "string" }, { - "description": "name of the service offering", + "description": "password for the docker image private registry", "length": 255, - "name": "name", + "name": "dockerregistrypassword", "required": false, "type": "string" }, { - "description": "list only resources belonging to the domain specified", + "description": "an optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", "length": 255, "name": "domainid", "related": "listDomains", "required": false, "type": "uuid" - }, - { - "description": "the RAM memory that listed offering must support", - "length": 255, - "name": "memory", - "required": false, - "since": "4.15", - "type": "integer" } ], - "related": "updateServiceOffering", + "related": "startKubernetesCluster", "response": [ { - "description": "burst bytes read rate of the disk offering", - "name": "diskBytesReadRateMax", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the domain ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domainid", + "description": "the project name of the Kubernetes cluster", + "name": "project", "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskIopsWriteRateMaxLength", - "type": "long" + "description": "the name of the zone of the Kubernetes cluster", + "name": "zoneid", + "type": "string" }, { - "description": "is true if the offering is customized", - "name": "iscustomized", - "type": "boolean" + "description": "the ID of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionid", + "type": "string" }, { - "description": "restrict the CPU usage to committed service offering", - "name": "limitcpuuse", - "type": "boolean" + "description": "the ID of the service offering of the Kubernetes cluster", + "name": "serviceofferingid", + "type": "string" }, { - "description": "io requests write rate of the service offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "Public IP Address ID of the cluster", + "name": "ipaddressid", + "type": "string" }, { - "description": "the memory in MB", - "name": "memory", - "type": "integer" + "description": "the type of the cluster", + "name": "clustertype", + "type": "clustertype" }, { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "name": "cacheMode", + "description": "Public IP Address of the cluster", + "name": "ipaddress", "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesWriteRateMaxLength", + "description": "Minimum size of the cluster", + "name": "minsize", "type": "long" }, { - "description": "the number of CPU", - "name": "cpunumber", - "type": "integer" - }, - { - "description": "data transfer rate in megabits per second allowed.", - "name": "networkrate", - "type": "integer" - }, - { - "description": "the vsphere storage policy tagged to the service offering in case of VMware", - "name": "vspherestoragepolicy", + "description": "the memory the Kubernetes cluster", + "name": "memory", "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "name": "provisioningtype", + "description": "the cpu cores of the Kubernetes cluster", + "name": "cpunumber", "type": "string" }, { - "description": "an alternate display text of the service offering.", - "name": "displaytext", + "description": "path of the domain to which the Kubernetes cluster belongs", + "name": "domainpath", "type": "string" }, { - "description": "the storage type for this service offering", - "name": "storagetype", + "description": "the ID of the template of the Kubernetes cluster", + "name": "templateid", "type": "string" }, { - "description": "Root disk size in GB", - "name": "rootdisksize", - "type": "long" - }, - { - "description": "burst io requests write rate of the disk offering", - "name": "diskIopsWriteRateMax", + "description": "Maximum size of the cluster", + "name": "maxsize", "type": "long" }, { @@ -154083,2447 +149999,2041 @@ "type": "boolean" }, { - "description": "the ha support in the service offering", - "name": "offerha", - "type": "boolean" + "description": "the state of the Kubernetes cluster", + "name": "state", + "type": "string" }, { - "description": "Whether to cleanup VM and its associated resource upon expunge", - "name": "purgeresources", - "type": "boolean" + "description": "the date when this Kubernetes cluster was created", + "name": "created", + "type": "date" }, { - "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk", - "name": "isvolatile", - "type": "boolean" + "description": "the name of the zone of the Kubernetes cluster", + "name": "zonename", + "type": "string" }, { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "the ID of the domain in which the Kubernetes cluster exists", + "name": "domainid", "type": "string" }, { - "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", - "name": "dynamicscalingenabled", - "type": "boolean" + "description": "the name of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionname", + "type": "string" }, { - "description": "is this a system vm offering", - "name": "issystem", - "type": "boolean" + "description": "the description of the Kubernetes cluster", + "name": "description", + "type": "string" }, { - "description": "true if disk offering uses custom iops, false otherwise", - "name": "iscustomizediops", - "type": "boolean" + "description": "the size (worker nodes count) of the Kubernetes cluster", + "name": "size", + "type": "long" }, { - "description": "the id of the service offering", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "deployment strategy used to deploy VM.", - "name": "deploymentplanner", + "description": "the name of the Kubernetes cluster", + "name": "name", "type": "string" }, - {}, { - "description": "io requests read rate of the service offering", - "name": "diskIopsReadRate", - "type": "long" + "description": "the name of the service offering of the Kubernetes cluster", + "name": "serviceofferingname", + "type": "string" }, { - "description": "additional key/value details tied with this service offering", - "name": "serviceofferingdetails", - "type": "map" + "description": "the ID of the network of the Kubernetes cluster", + "name": "networkid", + "type": "string" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "the list of virtualmachine associated with this Kubernetes cluster", + "name": "virtualmachines", + "type": "list" + }, + { + "description": "keypair details", + "name": "keypair", "type": "string" }, { - "description": "bytes read rate of the service offering", - "name": "diskBytesReadRate", + "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", + "name": "masternodes", "type": "long" }, { - "description": "the tags for the service offering", - "name": "storagetags", + "description": "the account associated with the Kubernetes cluster", + "name": "account", "type": "string" }, { - "description": "is this a default system vm offering", - "name": "defaultuse", - "type": "boolean" + "description": "URL end point for the Kubernetes cluster", + "name": "endpoint", + "type": "string" }, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "the name of the network of the Kubernetes cluster", + "name": "associatednetworkname", "type": "string" }, { - "description": "burst bytes write rate of the disk offering", - "name": "diskBytesWriteRateMax", - "type": "long" + "description": "the name of the domain in which the Kubernetes cluster exists", + "name": "domain", + "type": "string" }, + {}, { - "description": "the clock rate CPU speed in Mhz", - "name": "cpuspeed", - "type": "integer" + "description": "the id of the Kubernetes cluster", + "name": "id", + "type": "string" }, { - "description": "the name of the service offering", - "name": "name", + "description": "URL end point for the Kubernetes cluster dashboard UI", + "name": "consoleendpoint", "type": "string" }, { - "description": "bytes write rate of the service offering", - "name": "diskBytesWriteRate", + "description": "the control nodes count for the Kubernetes cluster", + "name": "controlnodes", "type": "long" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the Kubernetes cluster", + "name": "projectid", "type": "string" }, { - "description": "state of the service offering", - "name": "state", - "type": "string" + "description": "Whether autoscaling is enabled for the cluster", + "name": "autoscalingenabled", + "type": "boolean" + } + ] + }, + { + "description": "Deletes a Kubernetes cluster", + "isasync": true, + "name": "deleteKubernetesCluster", + "params": [ + { + "description": "Destroy attached instances of the ExternalManaged Cluster. Default: false", + "length": 255, + "name": "cleanup", + "required": false, + "since": "4.19.0", + "type": "boolean" }, - {}, { - "description": "is this a the systemvm type for system vm offering", - "name": "systemvmtype", - "type": "string" + "description": "Expunge attached instances of the ExternalManaged Cluster. If true, value of cleanup is ignored. Default: false", + "length": 255, + "name": "expunge", + "required": false, + "since": "4.19.0", + "type": "boolean" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesReadRateMaxLength", - "type": "long" + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster,upgradeKubernetesCluster", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "burst io requests read rate of the disk offering", - "name": "diskIopsReadRateMax", - "type": "long" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "the date this service offering 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 display text of the disk offering", - "name": "diskofferingdisplaytext", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" + } + ] + }, + { + "description": "Deletes a Kubernetes cluster", + "isasync": true, + "name": "deleteKubernetesSupportedVersion", + "params": [ + { + "description": "the ID of the Kubernetes supported version", + "length": 255, + "name": "id", + "related": "addKubernetesSupportedVersion,listKubernetesSupportedVersions,updateKubernetesSupportedVersion", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, + {}, { - "description": "the ID of the disk offering to which service offering is linked", - "name": "diskofferingid", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "the max iops of the disk offering", - "name": "maxiops", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" - }, + } + ] + }, + { + "description": "Get Kubernetes cluster config", + "isasync": false, + "name": "getKubernetesClusterConfig", + "params": [ { - "description": "true if virtual machine root disk will be encrypted on storage", - "name": "encryptroot", - "type": "boolean" + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster", + "required": false, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "the config data of the cluster", + "name": "configdata", + "type": "string" }, + {}, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "name": "hypervisorsnapshotreserve", - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the min iops of the disk offering", - "name": "miniops", - "type": "long" + "description": "the id of the container cluster", + "name": "id", + "type": "string" }, { - "description": "length (in second) of the burst", - "name": "diskIopsReadRateMaxLength", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the host tag for the service offering", - "name": "hosttags", + "description": "Name of the container cluster", + "name": "name", "type": "string" }, - { - "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", - "name": "diskofferingstrictness", - "type": "boolean" - } + {} ] }, { - "description": "Import virtual machine from a unmanaged host into CloudStack", - "isasync": true, - "name": "importVm", + "description": "Lists Kubernetes clusters", + "isasync": false, + "name": "listKubernetesClusters", "params": [ { - "description": "the display name of the instance", + "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.", "length": 255, - "name": "displayname", + "name": "isrecursive", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "the service offering for the virtual machine", + "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. Resources dedicated to a project are listed only if using the projectid parameter.", "length": 255, - "name": "serviceofferingid", - "related": "updateServiceOffering", - "required": true, - "type": "uuid" + "name": "listall", + "required": false, + "type": "boolean" }, { - "description": "the ID of the template for the virtual machine", + "description": "name of the Kubernetes cluster (a substring match is made against the parameter value, data for all matching Kubernetes clusters will be returned)", "length": 255, - "name": "templateid", - "related": "listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,listVnfTemplates,updateVnfTemplate", + "name": "name", "required": false, - "type": "uuid" + "type": "string" }, { - "description": "the username for the host", + "description": "state of the Kubernetes cluster", "length": 255, - "name": "username", + "name": "state", "required": false, "type": "string" }, { - "description": "(only for importing VMs from VMware to KVM) VMware ESXi host IP/Name.", + "description": "list resources by account. Must be used with the domainId parameter.", "length": 255, - "name": "hostip", + "name": "account", "required": false, "type": "string" }, { - "description": "VM nic to ip address mapping using keys nic, ip4Address", + "description": "List by keyword", "length": 255, - "name": "nicipaddresslist", + "name": "keyword", "required": false, - "type": "map" + "type": "string" }, { - "description": "(only for importing VMs from VMware to KVM) optional - the host to perform the virt-v2v migration from VMware to KVM.", + "description": "list objects by project; if projectid=-1 lists All VMs", "length": 255, - "name": "convertinstancehostid", - "related": "", + "name": "projectid", + "related": "listProjectAccounts,activateProject,createProject,listProjects,suspendProject,updateProject", "required": false, "type": "uuid" }, { - "description": "(only for importing VMs from VMware to KVM) Name of VMware datacenter.", + "description": "the ID of the Kubernetes cluster", "length": 255, - "name": "datacentername", + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster,listKubernetesClusters,scaleKubernetesCluster,upgradeKubernetesCluster", "required": false, - "type": "string" + "type": "uuid" }, { - "description": "(only for importing VMs from VMware to KVM) Name of VMware cluster.", + "description": "", "length": 255, - "name": "clustername", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the password for the host", + "description": "", "length": 255, - "name": "password", + "name": "pagesize", "required": false, - "type": "string" + "type": "integer" }, { - "description": "the zone ID", + "description": "list only resources belonging to the domain specified", "length": 255, - "name": "zoneid", - "related": "listZones", - "required": true, + "name": "domainid", + "related": "createDomain,listDomainChildren,listDomains,listDomains,updateDomain,moveDomain", + "required": false, "type": "uuid" }, { - "description": "Shared storage pool where disk is located", + "description": "type of the cluster: CloudManaged, ExternalManaged", "length": 255, - "name": "storageid", - "related": "", + "name": "clustertype", "required": false, - "type": "uuid" + "since": "4.19.0", + "type": "string" + } + ], + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster,upgradeKubernetesCluster", + "response": [ + { + "description": "the name of the service offering of the Kubernetes cluster", + "name": "serviceofferingname", + "type": "string" }, { - "description": "an optional account for the virtual machine. Must be used with domainId.", - "length": 255, - "name": "account", - "required": false, + "description": "URL end point for the Kubernetes cluster", + "name": "endpoint", "type": "string" }, { - "description": "(only for importing VMs from VMware to KVM) The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", - "length": 255, - "name": "vcenter", - "required": false, + "description": "the project id of the Kubernetes cluster", + "name": "projectid", "type": "string" }, { - "description": "VM is imported despite some of its NIC's MAC addresses are already present, in case the MAC address exists then a new MAC address is generated", - "length": 255, - "name": "forced", - "required": false, + "description": "Whether autoscaling is enabled for the cluster", + "name": "autoscalingenabled", "type": "boolean" }, { - "description": "the host name of the instance", - "length": 255, - "name": "hostname", - "required": false, + "description": "the name of the domain in which the Kubernetes cluster exists", + "name": "domain", "type": "string" }, { - "description": "the network ID", - "length": 255, - "name": "networkid", - "related": "createNetwork,updateNetwork,listNetworks", - "required": false, - "type": "uuid" + "description": "the ID of the template of the Kubernetes cluster", + "name": "templateid", + "type": "string" }, { - "description": "VM nic to network id mapping using keys nic and network", - "length": 255, - "name": "nicnetworklist", - "required": false, - "type": "map" + "description": "Minimum size of the cluster", + "name": "minsize", + "type": "long" }, { - "description": "used to specify the custom parameters.", - "length": 255, - "name": "details", - "required": false, - "type": "map" + "description": "the project name of the Kubernetes cluster", + "name": "project", + "type": "string" }, { - "description": "Temp Path on external host for disk image copy", - "length": 255, - "name": "temppath", - "required": false, + "description": "the type of the cluster", + "name": "clustertype", + "type": "clustertype" + }, + { + "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", + "name": "masternodes", + "type": "long" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "the id of the Kubernetes cluster", + "name": "id", "type": "string" }, { - "description": "the host name or IP address", - "length": 255, - "name": "host", - "required": false, + "description": "the name of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionname", "type": "string" }, { - "description": "Source location for Import", - "length": 255, - "name": "importsource", - "required": true, + "description": "the ID of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionid", "type": "string" }, { - "description": "(only for importing VMs from VMware to KVM) optional - the temporary storage pool to perform the virt-v2v migration from VMware to KVM.", - "length": 255, - "name": "convertinstancepoolid", - "related": "", - "required": false, - "type": "uuid" + "description": "the name of the network of the Kubernetes cluster", + "name": "associatednetworkname", + "type": "string" }, { - "description": "(only for importing VMs from VMware to KVM) optional - if true, forces MS to import VM file(s) to temporary storage, else uses KVM Host if ovftool is available, falls back to MS if not.", - "length": 255, - "name": "forcemstoimportvmfiles", - "required": false, - "type": "boolean" + "description": "the ID of the domain in which the Kubernetes cluster exists", + "name": "domainid", + "type": "string" }, { - "description": "datadisk template to disk-offering mapping using keys disk and diskOffering", - "length": 255, - "name": "datadiskofferinglist", - "required": false, - "type": "map" + "description": "the name of the Kubernetes cluster", + "name": "name", + "type": "string" }, { - "description": "vm and its volumes are allowed to migrate to different host/pool when offerings passed are incompatible with current host/pool", - "length": 255, - "name": "migrateallowed", - "required": false, + "description": "path of the domain to which the Kubernetes cluster belongs", + "name": "domainpath", + "type": "string" + }, + { + "description": "the account associated with the Kubernetes cluster", + "name": "account", + "type": "string" + }, + { + "description": "the size (worker nodes count) of the Kubernetes cluster", + "name": "size", + "type": "long" + }, + { + "description": "true if the entity/resource has annotations", + "name": "hasannotations", "type": "boolean" }, { - "description": "import instance to the domain specified", - "length": 255, - "name": "domainid", - "related": "listDomains", - "required": false, - "type": "uuid" + "description": "the control nodes count for the Kubernetes cluster", + "name": "controlnodes", + "type": "long" }, { - "description": "Host where local disk is located", + "description": "the list of virtualmachine associated with this Kubernetes cluster", + "name": "virtualmachines", + "type": "list" + }, + { + "description": "the name of the zone of the Kubernetes cluster", + "name": "zoneid", + "type": "string" + }, + { + "description": "keypair details", + "name": "keypair", + "type": "string" + }, + { + "description": "Maximum size of the cluster", + "name": "maxsize", + "type": "long" + }, + {}, + { + "description": "the cpu cores of the Kubernetes cluster", + "name": "cpunumber", + "type": "string" + }, + { + "description": "the description of the Kubernetes cluster", + "name": "description", + "type": "string" + }, + { + "description": "the ID of the network of the Kubernetes cluster", + "name": "networkid", + "type": "string" + }, + { + "description": "the memory the Kubernetes cluster", + "name": "memory", + "type": "string" + }, + { + "description": "Public IP Address ID of the cluster", + "name": "ipaddressid", + "type": "string" + }, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + }, + { + "description": "the date when this Kubernetes cluster was created", + "name": "created", + "type": "date" + }, + { + "description": "the name of the zone of the Kubernetes cluster", + "name": "zonename", + "type": "string" + }, + { + "description": "URL end point for the Kubernetes cluster dashboard UI", + "name": "consoleendpoint", + "type": "string" + }, + { + "description": "the state of the Kubernetes cluster", + "name": "state", + "type": "string" + }, + { + "description": "Public IP Address of the cluster", + "name": "ipaddress", + "type": "string" + }, + { + "description": "the ID of the service offering of the Kubernetes cluster", + "name": "serviceofferingid", + "type": "string" + } + ] + }, + { + "description": "Lists supported Kubernetes version", + "isasync": false, + "name": "listKubernetesSupportedVersions", + "params": [ + { + "description": "the ID of the zone in which Kubernetes supported version will be available", "length": 255, - "name": "hostid", - "related": "", + "name": "zoneid", + "related": "listZones", "required": false, "type": "uuid" }, { - "description": "hypervisor type of the host", + "description": "", "length": 255, - "name": "hypervisor", - "required": true, - "type": "string" + "name": "page", + "required": false, + "type": "integer" }, { - "description": "(only for importing VMs from VMware to KVM) UUID of a linked existing vCenter", + "description": "", "length": 255, - "name": "existingvcenterid", - "related": "", + "name": "pagesize", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "the cluster ID", + "description": "List by keyword", "length": 255, - "name": "clusterid", - "related": "", - "required": true, - "type": "uuid" + "name": "keyword", + "required": false, + "type": "string" }, { - "description": "import instance for the project", + "description": "the ID of the Kubernetes supported version", "length": 255, - "name": "projectid", - "related": "", + "name": "id", + "related": "listKubernetesSupportedVersions", "required": false, "type": "uuid" }, { - "description": "the name of the instance as it is known to the hypervisor", + "description": "the minimum semantic version for the Kubernetes supported version to be listed", "length": 255, - "name": "name", - "required": true, + "name": "minimumsemanticversion", + "required": false, "type": "string" }, { - "description": "path of the disk image", + "description": "the ID of the minimum Kubernetes supported version", "length": 255, - "name": "diskpath", + "name": "minimumkubernetesversionid", + "related": "listKubernetesSupportedVersions", "required": false, - "type": "string" + "type": "uuid" } ], - "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", + "related": "", "response": [ { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "Kubernetes semantic version", + "name": "semanticversion", + "type": "string" }, { - "description": "the name of the ISO attached to the virtual machine", + "description": "the name of the binaries ISO for Kubernetes supported version", "name": "isoname", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "the id of the binaries ISO for Kubernetes supported version", + "name": "isoid", "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "Name of the Kubernetes supported version", + "name": "name", "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" + "description": "the date when this Kubernetes supported version was created", + "name": "created", + "type": "date" }, { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", + "description": "the name of the zone in which Kubernetes supported version is available", + "name": "zonename", "type": "string" }, { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ - { - "description": "the project ID of the affinity group", - "name": "projectid", - "type": "string" - }, - { - "description": "the name of the affinity group", - "name": "name", - "type": "string" - }, - { - "description": "the domain name of the affinity group", - "name": "domain", - "type": "string" - }, - { - "description": "the description of the affinity group", - "name": "description", - "type": "string" - }, - { - "description": "the account owning the affinity group", - "name": "account", - "type": "string" - }, - { - "description": "the domain ID of the affinity group", - "name": "domainid", - "type": "string" - }, - { - "description": "the type of the affinity group", - "name": "type", - "type": "string" - }, - { - "description": "the project name of the affinity group", - "name": "project", - "type": "string" - }, - { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" - }, - { - "description": "the ID of the affinity group", - "name": "id", - "type": "string" - }, - { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - }, - { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", - "type": "string" - } - ], - "type": "set" + "description": "whether Kubernetes supported version supports Autoscaling", + "name": "supportsautoscaling", + "type": "boolean" }, + {}, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "the id of the Kubernetes supported version", + "name": "id", "type": "string" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "the enabled or disabled state of the Kubernetes supported version", + "name": "state", + "type": "string" }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - } - ], - "type": "set" + { + "description": "the minimum RAM size in MB needed for the Kubernetes supported version", + "name": "minmemory", + "type": "integer" }, { - "description": "the user's name who deployed the virtual machine", - "name": "username", + "description": "KVM Only: true if the ISO for the Kubernetes supported version is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" + }, + { + "description": "whether Kubernetes supported version supports HA, multi-control nodes", + "name": "supportsha", + "type": "boolean" + }, + { + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + {}, + { + "description": "the id of the zone in which Kubernetes supported version is available", + "name": "zoneid", "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", + "description": "the minimum number of CPUs needed for the Kubernetes supported version", + "name": "mincpunumber", "type": "integer" }, { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the state of the binaries ISO for Kubernetes supported version", + "name": "isostate", "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" + } + ] + }, + { + "description": "Scales a created, running or stopped CloudManaged Kubernetes cluster", + "isasync": true, + "name": "scaleKubernetesCluster", + "params": [ + { + "description": "the IDs of the nodes to be removed", + "length": 255, + "name": "nodeids", + "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "required": false, + "type": "list" + }, + { + "description": "Whether autoscaling is enabled for the cluster", + "length": 255, + "name": "autoscalingenabled", + "required": false, "type": "boolean" }, { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" + "description": "Maximum number of worker nodes in the cluster", + "length": 255, + "name": "maxsize", + "required": false, + "type": "long" }, { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", + "description": "Minimum number of worker nodes in the cluster", + "length": 255, + "name": "minsize", + "required": false, "type": "long" }, - {}, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "number of Kubernetes cluster nodes", + "length": 255, + "name": "size", + "required": false, + "type": "long" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", + "required": true, + "type": "uuid" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the ID of the service offering for the virtual machines in the cluster.", + "length": 255, + "name": "serviceofferingid", + "related": "createServiceOffering,updateServiceOffering,listServiceOfferings", + "required": false, + "type": "uuid" + } + ], + "related": "createKubernetesCluster,startKubernetesCluster", + "response": [ + { + "description": "path of the domain to which the Kubernetes cluster belongs", + "name": "domainpath", "type": "string" }, { - "description": "User VM type", - "name": "vmtype", + "description": "the state of the Kubernetes cluster", + "name": "state", "type": "string" }, { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" + "description": "the control nodes count for the Kubernetes cluster", + "name": "controlnodes", + "type": "long" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "the ID of the network of the Kubernetes cluster", + "name": "networkid", "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "the date when this Kubernetes cluster was created", + "name": "created", + "type": "date" }, { - "description": "the project id of the vm", - "name": "projectid", + "description": "the id of the Kubernetes cluster", + "name": "id", "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the ID of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionid", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the size (worker nodes count) of the Kubernetes cluster", + "name": "size", "type": "long" }, { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "Base64 string containing the user data", - "name": "userdata", + "description": "the account associated with the Kubernetes cluster", + "name": "account", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", + "description": "URL end point for the Kubernetes cluster dashboard UI", + "name": "consoleendpoint", "type": "string" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", + "description": "the project id of the Kubernetes cluster", + "name": "projectid", "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the ID of the domain in which the Kubernetes cluster exists", + "name": "domainid", + "type": "string" }, - {}, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "the ID of the service offering of the Kubernetes cluster", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "Public IP Address ID of the cluster", + "name": "ipaddressid", "type": "string" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", - "type": "string" + "description": "Whether autoscaling is enabled for the cluster", + "name": "autoscalingenabled", + "type": "boolean" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", - "type": "string" + "description": "the list of virtualmachine associated with this Kubernetes cluster", + "name": "virtualmachines", + "type": "list" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the ID of the template of the Kubernetes cluster", + "name": "templateid", "type": "string" }, + {}, { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "the name of the domain in which the Kubernetes cluster exists", + "name": "domain", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the name of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionname", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", + "description": "the name of the service offering of the Kubernetes cluster", + "name": "serviceofferingname", "type": "string" }, { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the memory the Kubernetes cluster", + "name": "memory", "type": "string" }, { - "description": "the project name of the vm", - "name": "project", + "description": "keypair details", + "name": "keypair", "type": "string" }, - {}, { - "description": "the state of the virtual machine", - "name": "state", + "description": "the name of the zone of the Kubernetes cluster", + "name": "zoneid", "type": "string" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "the name of the zone of the Kubernetes cluster", + "name": "zonename", "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "URL end point for the Kubernetes cluster", + "name": "endpoint", + "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the cpu cores of the Kubernetes cluster", + "name": "cpunumber", "type": "string" }, + {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", + "description": "Maximum size of the cluster", + "name": "maxsize", "type": "long" }, { - "description": "the id of userdata used for the VM", - "name": "userdataid", + "description": "the name of the network of the Kubernetes cluster", + "name": "associatednetworkname", "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", + "description": "Public IP Address of the cluster", + "name": "ipaddress", "type": "string" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", - "type": "string" + "description": "Minimum size of the cluster", + "name": "minsize", + "type": "long" }, { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the project name of the Kubernetes cluster", + "name": "project", "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "the name of the Kubernetes cluster", + "name": "name", "type": "string" }, { - "description": "the date when this virtual machine was created", - "name": "created", - "type": "date" + "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", + "name": "masternodes", + "type": "long" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" + "description": "the type of the cluster", + "name": "clustertype", + "type": "clustertype" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "the description of the Kubernetes cluster", + "name": "description", + "type": "string" + } + ] + }, + { + "description": "Starts a stopped CloudManaged Kubernetes cluster", + "isasync": true, + "name": "startKubernetesCluster", + "params": [ + { + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "startKubernetesCluster", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + { + "description": "URL end point for the Kubernetes cluster dashboard UI", + "name": "consoleendpoint", "type": "string" }, { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "the size (worker nodes count) of the Kubernetes cluster", + "name": "size", + "type": "long" + }, + { + "description": "the ID of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the Kubernetes cluster", + "name": "projectid", "type": "string" }, { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", + "description": "Minimum size of the cluster", + "name": "minsize", "type": "long" }, + {}, { - "description": "the list of nics associated with vm", - "name": "nic", - "response": [ - { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the name of the corresponding network", - "name": "networkname", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", - "type": "string" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", - "type": "string" - }, - { - "description": "the ID of the nic", - "name": "id", - "type": "string" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the ID of the corresponding network", - "name": "networkid", - "type": "string" - }, - { - "description": "the isolation uri of the nic", - "name": "isolationuri", - "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" - }, - { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", - "type": "string" - }, - { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" - }, - { - "description": "the type of the nic", - "name": "type", - "type": "string" - }, - { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "isdefault", - "type": "boolean" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, - { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", - "type": "integer" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - } - ], - "type": "set" + "description": "the ID of the network of the Kubernetes cluster", + "name": "networkid", + "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "the cpu cores of the Kubernetes cluster", + "name": "cpunumber", "type": "string" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "Public IP Address ID of the cluster", + "name": "ipaddressid", "type": "string" }, { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" + "description": "the list of virtualmachine associated with this Kubernetes cluster", + "name": "virtualmachines", + "type": "list" }, + {}, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "State of the Service from LB rule", - "name": "servicestate", + "description": "the name of the Kubernetes cluster", + "name": "name", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the id of the Kubernetes cluster", + "name": "id", + "type": "string" }, { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" + "description": "the name of the domain in which the Kubernetes cluster exists", + "name": "domain", + "type": "string" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", - "type": "boolean" + "description": "the name of the service offering of the Kubernetes cluster", + "name": "serviceofferingname", + "type": "string" }, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "Public IP Address of the cluster", + "name": "ipaddress", "type": "string" }, { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" + "description": "the date when this Kubernetes cluster was created", + "name": "created", + "type": "date" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", + "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", + "name": "masternodes", "type": "long" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "path of the domain to which the Kubernetes cluster belongs", + "name": "domainpath", "type": "string" }, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the description of the Kubernetes cluster", + "name": "description", + "type": "string" }, { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", + "description": "the ID of the template of the Kubernetes cluster", + "name": "templateid", "type": "string" }, { - "description": "the name of the template for the virtual machine", - "name": "templatename", + "description": "keypair details", + "name": "keypair", "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "the name of the zone of the Kubernetes cluster", + "name": "zonename", "type": "string" }, { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" + "description": "URL end point for the Kubernetes cluster", + "name": "endpoint", + "type": "string" }, { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" + "description": "the ID of the service offering of the Kubernetes cluster", + "name": "serviceofferingid", + "type": "string" }, { - "description": "OS type id of the vm", - "name": "ostypeid", + "description": "the project name of the Kubernetes cluster", + "name": "project", "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", + "description": "Maximum size of the cluster", + "name": "maxsize", + "type": "long" + }, + { + "description": "Whether autoscaling is enabled for the cluster", + "name": "autoscalingenabled", "type": "boolean" }, { - "description": "the name of the virtual machine", - "name": "name", + "description": "the ID of the domain in which the Kubernetes cluster exists", + "name": "domainid", "type": "string" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", + "description": "the name of the network of the Kubernetes cluster", + "name": "associatednetworkname", "type": "string" }, { - "description": "the password (if exists) of the virtual machine", - "name": "password", - "type": "string" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "user generated name. The name of the virtual machine is returned if no displayname exists.", - "name": "displayname", + "description": "the name of the zone of the Kubernetes cluster", + "name": "zoneid", "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "the account associated with the Kubernetes cluster", + "name": "account", "type": "string" }, { - "description": "the date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "the name of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionname", + "type": "string" }, { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" + "description": "the memory the Kubernetes cluster", + "name": "memory", + "type": "string" }, { - "description": "device type of the root volume", - "name": "rootdevicetype", + "description": "the state of the Kubernetes cluster", + "name": "state", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", + "description": "the control nodes count for the Kubernetes cluster", + "name": "controlnodes", "type": "long" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - } - ], - "type": "set" - } - ], - "type": "set" - }, - { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" + "description": "the type of the cluster", + "name": "clustertype", + "type": "clustertype" } - ], - "since": "4.19.0" + ] }, { - "description": "Removes a load balancer rule association with global load balancer rule", + "description": "Starts a stopped CloudManaged Kubernetes cluster", "isasync": true, - "name": "removeFromGlobalLoadBalancerRule", + "name": "startKubernetesCluster", "params": [ { - "description": "The ID of the load balancer rule", + "description": "the ID of the Kubernetes cluster", "length": 255, "name": "id", - "related": "", + "related": "startKubernetesCluster", "required": true, "type": "uuid" - }, - { - "description": "the list load balancer rules that will be assigned to global load balancer rule", - "length": 255, - "name": "loadbalancerrulelist", - "related": "", - "required": true, - "type": "list" } ], + "related": "", "response": [ { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "URL end point for the Kubernetes cluster dashboard UI", + "name": "consoleendpoint", + "type": "string" + }, + { + "description": "the size (worker nodes count) of the Kubernetes cluster", + "name": "size", + "type": "long" }, { - "description": "any text associated with the success or failure", - "name": "displaytext", + "description": "the ID of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionid", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the project id of the Kubernetes cluster", + "name": "projectid", "type": "string" }, { - "description": "true if operation is executed successfully", - "name": "success", - "type": "boolean" + "description": "Minimum size of the cluster", + "name": "minsize", + "type": "long" }, {}, - {} - ] - }, - { - "description": "Lists affinity group types available", - "isasync": false, - "name": "listAffinityGroupTypes", - "params": [ { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" + "description": "the ID of the network of the Kubernetes cluster", + "name": "networkid", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the cpu cores of the Kubernetes cluster", + "name": "cpunumber", "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ + "description": "Public IP Address ID of the cluster", + "name": "ipaddressid", + "type": "string" + }, + { + "description": "the list of virtualmachine associated with this Kubernetes cluster", + "name": "virtualmachines", + "type": "list" + }, + {}, { "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": "the name of the Kubernetes cluster", + "name": "name", + "type": "string" }, - {}, - {}, { - "description": "the type of the affinity group", - "name": "type", + "description": "the id of the Kubernetes cluster", + "name": "id", "type": "string" - } - ] - }, - { - "description": "Lists all the system wide capacities.", - "isasync": false, - "name": "listCapacity", - "params": [ + }, { - "description": "lists capacity by the Pod ID", - "length": 255, - "name": "podid", - "related": "", - "required": false, - "type": "uuid" + "description": "the name of the domain in which the Kubernetes cluster exists", + "name": "domain", + "type": "string" }, { - "description": "List by keyword", - "length": 255, - "name": "keyword", - "required": false, + "description": "the name of the service offering of the Kubernetes cluster", + "name": "serviceofferingname", "type": "string" }, { - "description": "Tag for the resource type", - "length": 255, - "name": "tag", - "required": false, - "since": "4.20.0", + "description": "Public IP Address of the cluster", + "name": "ipaddress", "type": "string" }, { - "description": "recalculate capacities and fetch the latest", - "length": 255, - "name": "fetchlatest", - "required": false, - "since": "3.0.0", - "type": "boolean" + "description": "the date when this Kubernetes cluster was created", + "name": "created", + "type": "date" }, { - "description": "lists capacity by type* CAPACITY_TYPE_MEMORY = 0* CAPACITY_TYPE_CPU = 1* CAPACITY_TYPE_STORAGE = 2* CAPACITY_TYPE_STORAGE_ALLOCATED = 3* CAPACITY_TYPE_VIRTUAL_NETWORK_PUBLIC_IP = 4* CAPACITY_TYPE_PRIVATE_IP = 5* CAPACITY_TYPE_SECONDARY_STORAGE = 6* CAPACITY_TYPE_VLAN = 7* CAPACITY_TYPE_DIRECT_ATTACHED_PUBLIC_IP = 8* CAPACITY_TYPE_LOCAL_STORAGE = 9* CAPACITY_TYPE_GPU = 19* CAPACITY_TYPE_CPU_CORE = 90.", - "length": 255, - "name": "type", - "required": false, + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "lists capacity by the Cluster ID", - "length": 255, - "name": "clusterid", - "related": "", - "required": false, - "since": "3.0.0", - "type": "uuid" + "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", + "name": "masternodes", + "type": "long" }, { - "description": "lists capacity by the Zone ID", - "length": 255, - "name": "zoneid", - "related": "listZones", - "required": false, - "type": "uuid" + "description": "path of the domain to which the Kubernetes cluster belongs", + "name": "domainpath", + "type": "string" }, { - "description": "", - "length": 255, - "name": "page", - "required": false, - "type": "integer" + "description": "the description of the Kubernetes cluster", + "name": "description", + "type": "string" }, { - "description": "Sort the results. Available values: Usage", - "length": 255, - "name": "sortby", - "required": false, - "since": "3.0.0", + "description": "the ID of the template of the Kubernetes cluster", + "name": "templateid", "type": "string" }, { - "description": "", - "length": 255, - "name": "pagesize", - "required": false, - "type": "integer" - } - ], - "related": "", - "response": [ - { - "description": "the Cluster ID", - "name": "clusterid", + "description": "keypair details", + "name": "keypair", "type": "string" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the name of the zone of the Kubernetes cluster", + "name": "zonename", "type": "string" }, - {}, { - "description": "the capacity type", - "name": "type", - "type": "short" + "description": "URL end point for the Kubernetes cluster", + "name": "endpoint", + "type": "string" }, { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" + "description": "the ID of the service offering of the Kubernetes cluster", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the Pod name", - "name": "podname", + "description": "the project name of the Kubernetes cluster", + "name": "project", "type": "string" }, { - "description": "the capacity currently in allocated", - "name": "capacityallocated", + "description": "Maximum size of the cluster", + "name": "maxsize", "type": "long" }, { - "description": "the capacity name", - "name": "name", - "type": "string" + "description": "Whether autoscaling is enabled for the cluster", + "name": "autoscalingenabled", + "type": "boolean" }, - {}, { - "description": "the percentage of capacity currently in use", - "name": "percentused", + "description": "the ID of the domain in which the Kubernetes cluster exists", + "name": "domainid", "type": "string" }, { - "description": "The tag for the capacity type", - "name": "tag", + "description": "the name of the network of the Kubernetes cluster", + "name": "associatednetworkname", "type": "string" }, { - "description": "the Cluster name", - "name": "clustername", + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" + }, + { + "description": "the name of the zone of the Kubernetes cluster", + "name": "zoneid", "type": "string" }, { - "description": "the total capacity available", - "name": "capacitytotal", - "type": "long" + "description": "the account associated with the Kubernetes cluster", + "name": "account", + "type": "string" }, { - "description": "the Pod ID", - "name": "podid", + "description": "the name of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionname", "type": "string" }, { - "description": "the Zone ID", - "name": "zoneid", + "description": "the memory the Kubernetes cluster", + "name": "memory", "type": "string" }, { - "description": "the Zone name", - "name": "zonename", + "description": "the state of the Kubernetes cluster", + "name": "state", "type": "string" }, { - "description": "the capacity currently in use", - "name": "capacityused", + "description": "the control nodes count for the Kubernetes cluster", + "name": "controlnodes", "type": "long" + }, + { + "description": "the type of the cluster", + "name": "clustertype", + "type": "clustertype" } ] }, { - "description": "Updates a service offering.", + "description": "Update a supported Kubernetes version", "isasync": false, - "name": "updateServiceOffering", + "name": "updateKubernetesSupportedVersion", "params": [ { - "description": "the display text of the service offering to be updated", + "description": "the ID of the Kubernetes supported version", "length": 255, - "name": "displaytext", - "required": false, - "type": "string" - }, - { - "description": "the ID of the containing domain(s) as comma separated string, public for public offerings", - "length": 4096, - "name": "domainid", - "required": false, - "type": "string" + "name": "id", + "related": "listKubernetesSupportedVersions,updateKubernetesSupportedVersion", + "required": true, + "type": "uuid" }, { - "description": "state of the service offering", + "description": "the enabled or disabled state of the Kubernetes supported version", "length": 255, "name": "state", - "required": false, + "required": true, "type": "string" + } + ], + "related": "listKubernetesSupportedVersions", + "response": [ + { + "description": "whether Kubernetes supported version supports Autoscaling", + "name": "supportsautoscaling", + "type": "boolean" }, { - "description": "the ID of the service offering to be updated", - "length": 255, + "description": "the id of the Kubernetes supported version", "name": "id", - "related": "updateServiceOffering", - "required": true, - "type": "uuid" + "type": "string" }, { - "description": "Whether to cleanup VM and its associated resource upon expunge", - "length": 255, - "name": "purgeresources", - "required": false, - "since": "4.20", - "type": "boolean" + "description": "the minimum number of CPUs needed for the Kubernetes supported version", + "name": "mincpunumber", + "type": "integer" }, + {}, { - "description": "the name of the service offering to be updated", - "length": 255, - "name": "name", - "required": false, - "type": "string" + "description": "KVM Only: true if the ISO for the Kubernetes supported version is directly downloaded to Primary Storage bypassing Secondary Storage", + "name": "directdownload", + "type": "boolean" }, + {}, { - "description": "the host tag for this service offering.", - "length": 255, - "name": "hosttags", - "required": false, - "since": "4.16", + "description": "the id of the binaries ISO for Kubernetes supported version", + "name": "isoid", "type": "string" }, { - "description": "comma-separated list of tags for the service offering, tags should match with existing storage pool tags", - "length": 255, - "name": "storagetags", - "required": false, - "since": "4.16", + "description": "the name of the zone in which Kubernetes supported version is available", + "name": "zonename", "type": "string" }, { - "description": "sort key of the service offering, integer", - "length": 255, - "name": "sortkey", - "required": false, - "type": "integer" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the ID of the containing zone(s) as comma separated string, all for all zones offerings", - "length": 255, + "description": "the id of the zone in which Kubernetes supported version is available", "name": "zoneid", - "required": false, - "since": "4.13", "type": "string" - } - ], - "related": "", - "response": [ + }, { - "description": "burst io requests read rate of the disk offering", - "name": "diskIopsReadRateMax", - "type": "long" + "description": "the state of the binaries ISO for Kubernetes supported version", + "name": "isostate", + "type": "string" }, { - "description": "deployment strategy used to deploy VM.", - "name": "deploymentplanner", + "description": "the name of the binaries ISO for Kubernetes supported version", + "name": "isoname", "type": "string" }, { - "description": "true if virtual machine root disk will be encrypted on storage", - "name": "encryptroot", + "description": "whether Kubernetes supported version supports HA, multi-control nodes", + "name": "supportsha", "type": "boolean" }, { - "description": "an alternate display text of the service offering.", - "name": "displaytext", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "Kubernetes semantic version", + "name": "semanticversion", "type": "string" }, { - "description": "additional key/value details tied with this service offering", - "name": "serviceofferingdetails", - "type": "map" + "description": "the enabled or disabled state of the Kubernetes supported version", + "name": "state", + "type": "string" }, - {}, { - "description": "the date this service offering was created", + "description": "the date when this Kubernetes supported version was created", "name": "created", "type": "date" }, { - "description": "is this a system vm offering", - "name": "issystem", - "type": "boolean" + "description": "the minimum RAM size in MB needed for the Kubernetes supported version", + "name": "minmemory", + "type": "integer" }, { - "description": "state of the service offering", - "name": "state", + "description": "Name of the Kubernetes supported version", + "name": "name", "type": "string" - }, - { - "description": "burst bytes read rate of the disk offering", - "name": "diskBytesReadRateMax", - "type": "long" - }, + } + ] + }, + { + "description": "Upgrades a running CloudManaged Kubernetes cluster", + "isasync": true, + "name": "upgradeKubernetesCluster", + "params": [ { - "description": "Root disk size in GB", - "name": "rootdisksize", - "type": "long" + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster,upgradeKubernetesCluster", + "required": true, + "type": "uuid" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesWriteRateMaxLength", - "type": "long" - }, - {}, + "description": "the ID of the Kubernetes version for upgrade", + "length": 255, + "name": "kubernetesversionid", + "related": "addKubernetesSupportedVersion,listKubernetesSupportedVersions,updateKubernetesSupportedVersion", + "required": true, + "type": "uuid" + } + ], + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", + "response": [ { - "description": "the zone name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zone", + "description": "the name of the zone of the Kubernetes cluster", + "name": "zonename", "type": "string" }, { - "description": "Whether to cleanup VM and its associated resource upon expunge", - "name": "purgeresources", - "type": "boolean" - }, - { - "description": "the storage type for this service offering", - "name": "storagetype", + "description": "the name of the network of the Kubernetes cluster", + "name": "associatednetworkname", "type": "string" }, { - "description": "io requests write rate of the service offering", - "name": "diskIopsWriteRate", - "type": "long" + "description": "the description of the Kubernetes cluster", + "name": "description", + "type": "string" }, { - "description": "true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk", - "name": "isvolatile", - "type": "boolean" + "description": "the state of the Kubernetes cluster", + "name": "state", + "type": "string" }, { - "description": "the cache mode to use for this disk offering. none, writeback or writethrough", - "name": "cacheMode", + "description": "path of the domain to which the Kubernetes cluster belongs", + "name": "domainpath", "type": "string" }, { - "description": "bytes write rate of the service offering", - "name": "diskBytesWriteRate", - "type": "long" + "description": "the project id of the Kubernetes cluster", + "name": "projectid", + "type": "string" }, { - "description": "the name of the service offering", + "description": "the name of the Kubernetes cluster", "name": "name", "type": "string" }, { - "description": "io requests read rate of the service offering", - "name": "diskIopsReadRate", - "type": "long" - }, - { - "description": "true if virtual machine needs to be dynamically scalable of cpu or memory", - "name": "dynamicscalingenabled", - "type": "boolean" + "description": "the memory the Kubernetes cluster", + "name": "memory", + "type": "string" }, { - "description": "data transfer rate in megabits per second allowed.", - "name": "networkrate", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", "type": "integer" }, { - "description": "the display text of the disk offering", - "name": "diskofferingdisplaytext", - "type": "string" + "description": "the size (worker nodes count) of the Kubernetes cluster", + "name": "size", + "type": "long" }, { - "description": "is this a default system vm offering", - "name": "defaultuse", - "type": "boolean" + "description": "Public IP Address of the cluster", + "name": "ipaddress", + "type": "string" }, { - "description": "the min iops of the disk offering", - "name": "miniops", + "description": "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.", + "name": "masternodes", "type": "long" }, + {}, { - "description": "the domain name(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "domain", + "description": "keypair details", + "name": "keypair", "type": "string" }, { - "description": "provisioning type used to create volumes. Valid values are thin, sparse, fat.", - "name": "provisioningtype", + "description": "the name of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionname", "type": "string" }, { - "description": "True/False to indicate the strictness of the disk offering association with the compute offering. When set to true, override of disk offering is not allowed when VM is deployed and change disk offering is not allowed for the ROOT disk after the VM is deployed", - "name": "diskofferingstrictness", - "type": "boolean" - }, - { - "description": "the clock rate CPU speed in Mhz", - "name": "cpuspeed", - "type": "integer" + "description": "the cpu cores of the Kubernetes cluster", + "name": "cpunumber", + "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", - "type": "boolean" + "description": "the control nodes count for the Kubernetes cluster", + "name": "controlnodes", + "type": "long" }, { - "description": "the memory in MB", - "name": "memory", - "type": "integer" + "description": "the account associated with the Kubernetes cluster", + "name": "account", + "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskIopsWriteRateMaxLength", + "description": "Minimum size of the cluster", + "name": "minsize", "type": "long" }, { - "description": "burst io requests write rate of the disk offering", - "name": "diskIopsWriteRateMax", - "type": "long" + "description": "the ID of the service offering of the Kubernetes cluster", + "name": "serviceofferingid", + "type": "string" }, { - "description": "the vsphere storage policy tagged to the service offering in case of VMware", - "name": "vspherestoragepolicy", + "description": "the id of the Kubernetes cluster", + "name": "id", "type": "string" }, { - "description": "length (in seconds) of the burst", - "name": "diskBytesReadRateMaxLength", - "type": "long" + "description": "true if the entity/resource has annotations", + "name": "hasannotations", + "type": "boolean" }, { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", - "type": "string" + "description": "the type of the cluster", + "name": "clustertype", + "type": "clustertype" }, { - "description": "is true if the offering is customized", - "name": "iscustomized", + "description": "Whether autoscaling is enabled for the cluster", + "name": "autoscalingenabled", "type": "boolean" }, { - "description": "the host tag for the service offering", - "name": "hosttags", + "description": "the ID of the template of the Kubernetes cluster", + "name": "templateid", "type": "string" }, { - "description": "the tags for the service offering", - "name": "storagetags", + "description": "the name of the domain in which the Kubernetes cluster exists", + "name": "domain", "type": "string" }, { - "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 zone of the Kubernetes cluster", + "name": "zoneid", "type": "string" }, { - "description": "is this a the systemvm type for system vm offering", - "name": "systemvmtype", + "description": "the name of the service offering of the Kubernetes cluster", + "name": "serviceofferingname", "type": "string" }, { - "description": "length (in second) of the burst", - "name": "diskIopsReadRateMaxLength", - "type": "long" - }, - { - "description": "the ha support in the service offering", - "name": "offerha", - "type": "boolean" - }, - { - "description": "the current status of the latest async job acting on this object", - "name": "jobstatus", - "type": "integer" - }, - { - "description": "the zone ID(s) this disk offering belongs to. Ignore this information as it is not currently applicable.", - "name": "zoneid", + "description": "the ID of the domain in which the Kubernetes cluster exists", + "name": "domainid", "type": "string" }, { - "description": "the max iops of the disk offering", - "name": "maxiops", - "type": "long" + "description": "Public IP Address ID of the cluster", + "name": "ipaddressid", + "type": "string" }, { - "description": "bytes read rate of the service offering", - "name": "diskBytesReadRate", - "type": "long" + "description": "the list of virtualmachine associated with this Kubernetes cluster", + "name": "virtualmachines", + "type": "list" }, { - "description": "burst bytes write rate of the disk offering", - "name": "diskBytesWriteRateMax", + "description": "Maximum size of the cluster", + "name": "maxsize", "type": "long" }, { - "description": "name of the disk offering", - "name": "diskofferingname", + "description": "URL end point for the Kubernetes cluster", + "name": "endpoint", "type": "string" }, { - "description": "the number of CPU", - "name": "cpunumber", - "type": "integer" + "description": "URL end point for the Kubernetes cluster dashboard UI", + "name": "consoleendpoint", + "type": "string" }, + {}, { - "description": "restrict the CPU usage to committed service offering", - "name": "limitcpuuse", - "type": "boolean" + "description": "the date when this Kubernetes cluster was created", + "name": "created", + "type": "date" }, { - "description": "the ID of the disk offering to which service offering is linked", - "name": "diskofferingid", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "true if disk offering uses custom iops, false otherwise", - "name": "iscustomizediops", - "type": "boolean" + "description": "the project name of the Kubernetes cluster", + "name": "project", + "type": "string" }, { - "description": "the id of the service offering", - "name": "id", + "description": "the ID of the Kubernetes version for the Kubernetes cluster", + "name": "kubernetesversionid", "type": "string" }, { - "description": "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)", - "name": "hypervisorsnapshotreserve", - "type": "integer" + "description": "the ID of the network of the Kubernetes cluster", + "name": "networkid", + "type": "string" } ] }, { - "description": "Stops a virtual machine.", - "isasync": true, - "name": "stopVirtualMachine", + "description": "Add VMs to an ExternalManaged kubernetes cluster. Not applicable for CloudManaged kubernetes clusters.", + "isasync": false, + "name": "addVirtualMachinesToKubernetesCluster", "params": [ { - "description": "The ID of the virtual machine", + "description": "the IDs of the VMs to add to the cluster", + "length": 255, + "name": "virtualmachineids", + "related": "assignVirtualMachine,deployVirtualMachine,scaleVirtualMachine,removeNicFromVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,stopVirtualMachine,updateVirtualMachine,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importVm", + "required": true, + "type": "list" + }, + { + "description": "the ID of the Kubernetes cluster", "length": 255, "name": "id", - "related": "scaleVirtualMachine,stopVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", "required": true, "type": "uuid" }, { - "description": "Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend, otherwise a force poweroff is attempted). This option is to be used if the caller knows the VM is stopped and should be marked as such.", + "description": "Is control node or not? Defaults to false.", "length": 255, - "name": "forced", + "name": "iscontrolnode", "required": false, "type": "boolean" } ], - "related": "scaleVirtualMachine,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,listVnfAppliances", "response": [ { - "description": "the name of the service offering of the virtual machine", - "name": "serviceofferingname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the name of the domain in which the virtual machine exists", - "name": "domain", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, + {}, { - "description": "the name of the virtual machine", - "name": "name", - "type": "string" + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" }, { - "description": "List of read-only Vm details as comma separated string.", - "name": "readonlydetails", + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" - }, + } + ], + "since": "4.19.0" + }, + { + "description": "Remove VMs from an ExternalManaged kubernetes cluster. Not applicable for CloudManaged kubernetes clusters.", + "isasync": false, + "name": "removeVirtualMachinesFromKubernetesCluster", + "params": [ { - "description": "an alternate display text of the ISO attached to the virtual machine", - "name": "isodisplaytext", - "type": "string" + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster,listKubernetesClusters,scaleKubernetesCluster,upgradeKubernetesCluster", + "required": true, + "type": "uuid" }, { - "description": "the write (IO) of disk on the VM", - "name": "diskiowrite", - "type": "long" + "description": "", + "length": 255, + "name": "page", + "required": false, + "type": "integer" }, { - "description": "the state of the virtual machine", - "name": "state", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the account associated with the virtual machine", - "name": "account", - "type": "string" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "Guest vm Boot Mode", - "name": "bootmode", + "description": "the IDs of the VMs to remove from the cluster", + "length": 255, + "name": "virtualmachineids", + "related": "assignVirtualMachine,migrateVirtualMachine,migrateVirtualMachineWithVolume,recoverVirtualMachine,attachIso,detachIso,addNicToVirtualMachine,deployVirtualMachine,destroyVirtualMachine,listVirtualMachines,scaleVirtualMachine,rebootVirtualMachine,removeNicFromVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,resetUserDataForVirtualMachine,startVirtualMachine,stopVirtualMachine,updateDefaultNicForVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,updateVMAffinityGroup,attachIso,detachIso,updateVMAffinityGroup,addNicToVirtualMachine,removeNicFromVirtualMachine,updateDefaultNicForVirtualMachine,deployVirtualMachine,destroyVirtualMachine,rebootVirtualMachine,resetPasswordForVirtualMachine,resetSSHKeyForVirtualMachine,restoreVirtualMachine,startVirtualMachine,stopVirtualMachine,updateVirtualMachine,changeServiceForVirtualMachine,revertToVMSnapshot,listVirtualMachines,deployVnfAppliance,deployVnfAppliance,listVnfAppliances,listVnfAppliances,importUnmanagedInstance,importVm", + "required": true, + "type": "list" + } + ], + "related": "", + "response": [ + { + "description": "the id of the Kubernetes cluster", + "name": "id", "type": "string" }, { - "description": "the date when this virtual machine 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 date when this virtual machine was updated last time", - "name": "lastupdated", - "type": "date" + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, + {}, + {}, { - "description": "true if high-availability is enabled, false otherwise", - "name": "haenable", - "type": "boolean" + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", + "type": "string" }, { - "description": "the VM's disk write in KiB", - "name": "diskkbswrite", - "type": "long" - }, + "description": "true if operation is executed successfully", + "name": "success", + "type": "boolean" + } + ], + "since": "4.19.0" + }, + { + "description": "Lists the VMs in a VMware Datacenter", + "isasync": false, + "name": "listVmwareDcVms", + "params": [ { - "description": "Os type ID of the virtual machine", - "name": "guestosid", + "description": "The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", + "length": 255, + "name": "vcenter", + "required": false, "type": "string" }, { - "description": "the ID of the backup offering of the virtual machine", - "name": "backupofferingid", + "description": "List by keyword", + "length": 255, + "name": "keyword", + "required": false, "type": "string" }, { - "description": "the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.", - "name": "templateid", + "description": "The password for specified username.", + "length": 255, + "name": "password", + "required": false, "type": "string" }, { - "description": "the memory allocated for the virtual machine", - "name": "memory", + "description": "", + "length": 255, + "name": "page", + "required": false, "type": "integer" }, { - "description": "the name of the availability zone for the virtual machine", - "name": "zonename", - "type": "string" + "description": "UUID of a linked existing vCenter", + "length": 255, + "name": "existingvcenterid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the ID of the service offering of the virtual machine", - "name": "serviceofferingid", + "description": "The Username required to connect to resource.", + "length": 255, + "name": "username", + "required": false, "type": "string" }, { - "description": "an optional field whether to the display the vm to the end user or not.", - "name": "displayvm", - "type": "boolean" + "description": "", + "length": 255, + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "true if the password rest feature is enabled, false otherwise", - "name": "passwordenabled", - "type": "boolean" + "description": "Name of VMware datacenter.", + "length": 255, + "name": "datacentername", + "required": false, + "type": "string" + } + ], + "related": "listUnmanagedInstances", + "response": [ + { + "description": "the name of the host to which virtual machine belongs", + "name": "hostname", + "type": "string" }, + {}, { - "description": "the total number of network traffic bytes sent", - "name": "sentbytes", - "type": "long" + "description": "the ID of the host to which virtual machine belongs", + "name": "hostid", + "type": "string" }, + {}, { - "description": "Guest vm Boot Type", - "name": "boottype", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the outgoing network traffic on the host in KiB", - "name": "networkkbswrite", - "type": "long" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "the pool type of the virtual machine", - "name": "pooltype", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "Base64 string containing the user data", - "name": "userdata", - "type": "string" + "description": "the CPU speed of the virtual machine", + "name": "cpuspeed", + "type": "integer" }, { - "description": "the user's ID who deployed the virtual machine", - "name": "userid", + "description": "the power state of the virtual machine", + "name": "powerstate", "type": "string" }, { - "description": "the list of nics associated with vm", - "name": "nic", + "description": "the memory of the virtual machine in MB", + "name": "memory", + "type": "integer" + }, + { + "description": "the list of disks associated with the virtual machine", + "name": "disk", "response": [ { - "description": "the ip address of the nic", - "name": "ipaddress", - "type": "string" - }, - { - "description": "the traffic type of the nic", - "name": "traffictype", - "type": "string" - }, - { - "description": "IP addresses associated with NIC found for unmanaged VM", - "name": "ipaddresses", - "type": "list" - }, - { - "description": "the broadcast uri of the nic", - "name": "broadcasturi", - "type": "string" - }, - { - "description": "the IPv6 address of network", - "name": "ip6address", - "type": "string" - }, - { - "description": "the gateway of IPv6 network", - "name": "ip6gateway", - "type": "string" - }, - { - "description": "Id of the vpc to which the nic belongs", - "name": "vpcid", - "type": "string" - }, - { - "description": "the netmask of the nic", - "name": "netmask", - "type": "string" - }, - { - "description": "ID of the VLAN/VNI if available", - "name": "vlanid", - "type": "integer" - }, - { - "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", - "name": "nsxlogicalswitchport", + "description": "the controller of the disk", + "name": "datastorehost", "type": "string" }, { - "description": "the isolated private VLAN if available", - "name": "isolatedpvlan", + "description": "the controller unit of the disk", + "name": "controllerunit", "type": "integer" }, { - "description": "name of the vpc to which the nic belongs", - "name": "vpcname", - "type": "string" - }, - { - "description": "the gateway of the nic", - "name": "gateway", - "type": "string" - }, - { - "description": "true if nic is default, false otherwise", - "name": "macaddress", + "description": "the label of the disk", + "name": "label", "type": "string" }, { - "description": "public IP address id associated with this nic via Static nat rule", - "name": "publicipid", + "description": "the file path of the disk image", + "name": "imagepath", "type": "string" }, { - "description": "public IP address associated with this nic via Static nat rule", - "name": "publicip", - "type": "string" + "description": "the capacity of the disk in bytes", + "name": "capacity", + "type": "long" }, { - "description": "the ID of the corresponding network", - "name": "networkid", + "description": "the controller of the disk", + "name": "datastoretype", "type": "string" }, { - "description": "the cidr of IPv6 network", - "name": "ip6cidr", - "type": "string" + "description": "the position of the disk", + "name": "position", + "type": "integer" }, { - "description": "device id for the network when plugged into the virtual machine", - "name": "deviceid", + "description": "the controller of the disk", + "name": "datastorename", "type": "string" }, { - "description": "the name of the corresponding network", - "name": "networkname", + "description": "the ID of the disk", + "name": "id", "type": "string" }, { - "description": "Id of the vm to which the nic belongs", - "name": "virtualmachineid", + "description": "the controller of the disk", + "name": "controller", "type": "string" }, { - "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", - "name": "nsxlogicalswitch", + "description": "the controller of the disk", + "name": "datastorepath", "type": "string" - }, - { - "description": "the extra dhcp options on the nic", - "name": "extradhcpoption", - "type": "list" - }, - { - "description": "MTU configured on the NIC", - "name": "mtu", - "type": "integer" - }, + } + ], + "type": "set" + }, + { + "description": "the CPU cores of the virtual machine", + "name": "cpunumber", + "type": "integer" + }, + { + "description": "the operating system ID of the virtual machine", + "name": "osid", + "type": "string" + }, + { + "description": "the CPU cores per socket for the virtual machine. VMware specific", + "name": "cpucorepersocket", + "type": "integer" + }, + { + "description": "the name of the cluster to which virtual machine belongs", + "name": "clustername", + "type": "string" + }, + { + "description": "the operating system of the virtual machine", + "name": "osdisplayname", + "type": "string" + }, + { + "description": "the ID of the cluster to which virtual machine belongs", + "name": "clusterid", + "type": "string" + }, + { + "description": "the list of nics associated with the virtual machine", + "name": "nic", + "response": [ { - "description": "the isolation uri of the nic", - "name": "isolationuri", + "description": "the traffic type of the nic", + "name": "traffictype", "type": "string" }, { @@ -156532,393 +152042,367 @@ "type": "string" }, { - "description": "Type of adapter if available", - "name": "adaptertype", - "type": "string" - }, - { - "description": "the Secondary ipv4 addr of nic", - "name": "secondaryip", - "type": "list" - }, - { - "description": "the isolated private VLAN type if available", - "name": "isolatedpvlantype", + "description": "the ip address of the nic", + "name": "ipaddress", "type": "string" }, { - "description": "the ID of the nic", - "name": "id", + "description": "Id of the vm to which the nic belongs", + "name": "virtualmachineid", "type": "string" }, { "description": "true if nic is default, false otherwise", "name": "isdefault", "type": "boolean" - } - ], - "type": "set" - }, - { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicipid", - "type": "string" - }, - { - "description": "the id of userdata used for the VM", - "name": "userdataid", - "type": "string" - }, - { - "description": "the VM's disk read in KiB", - "name": "diskkbsread", - "type": "long" - }, - { - "description": "the incoming network traffic on the VM in KiB", - "name": "networkkbsread", - "type": "long" - }, - { - "description": "list of affinity groups associated with the virtual machine", - "name": "affinitygroup", - "response": [ + }, { - "description": "the domain ID of the affinity group", - "name": "domainid", + "description": "Id of the NSX Logical Switch Port (if NSX based), null otherwise", + "name": "nsxlogicalswitchport", "type": "string" }, { - "description": "the project ID of the affinity group", - "name": "projectid", + "description": "the ID of the corresponding network", + "name": "networkid", "type": "string" }, { - "description": "the description of the affinity group", - "name": "description", + "description": "the Secondary ipv4 addr of nic", + "name": "secondaryip", + "type": "list" + }, + { + "description": "Type of adapter if available", + "name": "adaptertype", "type": "string" }, { - "description": "the domain name of the affinity group", - "name": "domain", + "description": "MTU configured on the NIC", + "name": "mtu", + "type": "integer" + }, + { + "description": "the gateway of IPv6 network", + "name": "ip6gateway", "type": "string" }, { - "description": "the project name of the affinity group", - "name": "project", + "description": "public IP address associated with this nic via Static nat rule", + "name": "publicip", "type": "string" }, { - "description": "the type of the affinity group", - "name": "type", + "description": "device id for the network when plugged into the virtual machine", + "name": "deviceid", "type": "string" }, { - "description": "virtual machine IDs associated with this affinity group", - "name": "virtualmachineIds", - "type": "list" + "description": "the isolated private VLAN if available", + "name": "isolatedpvlan", + "type": "integer" }, { - "description": "the name of the affinity group", - "name": "name", + "description": "the netmask of the nic", + "name": "netmask", "type": "string" }, { - "description": "the account owning the affinity group", - "name": "account", + "description": "the name of the corresponding network", + "name": "networkname", "type": "string" }, { - "description": "the ID of the affinity group", - "name": "id", + "description": "Id of the vpc to which the nic belongs", + "name": "vpcid", "type": "string" }, { - "description": "path of the Domain the affinity group belongs to", - "name": "domainpath", + "description": "Id of the NSX Logical Switch (if NSX based), null otherwise", + "name": "nsxlogicalswitch", "type": "string" }, { - "description": "dedicated resources associated with this affinity group", - "name": "dedicatedresources", - "type": "list" - } - ], - "type": "set" - }, - {}, - { - "description": "State of the Service from LB rule", - "name": "servicestate", - "type": "string" - }, - { - "description": "OS type id of the vm", - "name": "ostypeid", - "type": "string" - }, - { - "description": "device type of the root volume", - "name": "rootdevicetype", - "type": "string" - }, - { - "description": "the name of the template for the virtual machine", - "name": "templatename", - "type": "string" - }, - { - "description": "Vm details in key/value pairs.", - "name": "details", - "type": "map" - }, - { - "description": "the speed of each vCPU", - "name": "cpuspeed", - "type": "integer" - }, - { - "description": "the hypervisor on which the template runs", - "name": "hypervisor", - "type": "string" - }, - { - "description": "Name of AutoScale VM group", - "name": "autoscalevmgroupname", - "type": "string" - }, - { - "description": "the project id of the vm", - "name": "projectid", - "type": "string" - }, - { - "description": "the internal memory (KiB) that's free in VM or zero if it can not be calculated", - "name": "memoryintfreekbs", - "type": "long" - }, - { - "description": "User VM type", - "name": "vmtype", - "type": "string" - }, - { - "description": "the name of the host for the virtual machine", - "name": "hostname", - "type": "string" - }, - { - "description": "NICs of the VNF appliance", - "name": "vnfnics", - "type": "list" - }, - { - "description": "device ID of the root volume", - "name": "rootdeviceid", - "type": "long" - }, - { - "description": "the vGPU type used by the virtual machine", - "name": "vgpu", - "type": "string" - }, - { - "description": "the ID of the ISO attached to the virtual machine", - "name": "isoid", - "type": "string" - }, - { - "description": "the total number of network traffic bytes received", - "name": "receivedbytes", - "type": "long" - }, - {}, - { - "description": "ID of AutoScale VM group", - "name": "autoscalevmgroupid", - "type": "string" - }, - { - "description": "the list of resource tags associated", - "name": "tags", - "response": [ - { - "description": "customer associated with the tag", - "name": "customer", + "description": "public IP address id associated with this nic via Static nat rule", + "name": "publicipid", "type": "string" }, { - "description": "the account associated with the tag", - "name": "account", + "description": "the gateway of the nic", + "name": "gateway", "type": "string" }, { - "description": "the domain associated with the tag", - "name": "domain", + "description": "the IPv6 address of network", + "name": "ip6address", "type": "string" }, { - "description": "the ID of the domain associated with the tag", - "name": "domainid", + "description": "the isolation uri of the nic", + "name": "isolationuri", "type": "string" }, { - "description": "resource type", - "name": "resourcetype", - "type": "string" + "description": "IP addresses associated with NIC found for unmanaged VM", + "name": "ipaddresses", + "type": "list" }, { - "description": "the project id the tag belongs to", - "name": "projectid", + "description": "the broadcast uri of the nic", + "name": "broadcasturi", "type": "string" }, { - "description": "the project name where tag belongs to", - "name": "project", + "description": "the ID of the nic", + "name": "id", "type": "string" }, { - "description": "path of the Domain associated with the tag", - "name": "domainpath", + "description": "ID of the VLAN/VNI if available", + "name": "vlanid", + "type": "integer" + }, + { + "description": "the cidr of IPv6 network", + "name": "ip6cidr", "type": "string" }, { - "description": "tag key name", - "name": "key", + "description": "the extra dhcp options on the nic", + "name": "extradhcpoption", + "type": "list" + }, + { + "description": "name of the vpc to which the nic belongs", + "name": "vpcname", "type": "string" }, { - "description": "tag value", - "name": "value", + "description": "true if nic is default, false otherwise", + "name": "macaddress", "type": "string" }, { - "description": "id of the resource", - "name": "resourceid", + "description": "the isolated private VLAN type if available", + "name": "isolatedpvlantype", "type": "string" } ], "type": "set" + } + ] + }, + { + "description": "Remove a VMware datacenter from a zone.", + "isasync": false, + "name": "removeVmwareDc", + "params": [ + { + "description": "The id of Zone from which VMware datacenter has to be removed.", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + } + ], + "response": [ + {}, + { + "description": "any text associated with the success or failure", + "name": "displaytext", + "type": "string" }, { - "description": "the virtual network for the service offering", - "name": "forvirtualnetwork", - "type": "boolean" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, { - "description": "true if vm has delete protection.", - "name": "deleteprotection", + "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": "Updates a VMware datacenter details for a zone", + "isasync": false, + "name": "updateVmwareDc", + "params": [ { - "description": "the name of the ISO attached to the virtual machine", - "name": "isoname", + "description": "The username required to connect to resource.", + "length": 255, + "name": "username", + "required": false, "type": "string" }, { - "description": "the amount of the vm's CPU currently used", - "name": "cpuused", + "description": "VMware datacenter name.", + "length": 255, + "name": "name", + "required": false, "type": "string" }, { - "description": "the type of the template for the virtual machine", - "name": "templatetype", + "description": "The password for specified username.", + "length": 255, + "name": "password", + "required": false, "type": "string" }, { - "description": "true if the entity/resource has annotations", - "name": "hasannotations", + "description": "The zone ID", + "length": 255, + "name": "zoneid", + "related": "createZone,updateZone,listZones,listZones", + "required": true, + "type": "uuid" + }, + { + "description": "Specify if cluster level username/password/url and host level guid need to be updated as well. By default this is true.", + "length": 255, + "name": "isrecursive", + "required": false, "type": "boolean" }, { - "description": "the ID of the domain in which the virtual machine exists", - "name": "domainid", + "description": "The name/IP of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", + "length": 255, + "name": "vcenter", + "required": false, "type": "string" - }, + } + ], + "related": "addVmwareDc,listVmwareDcs", + "response": [ { - "description": "OS name of the vm", - "name": "osdisplayname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the ID of the availability zone for the virtual machine", - "name": "zoneid", + "description": "The VMware Datacenter name", + "name": "name", "type": "string" }, {}, { - "description": "the project name of the vm", - "name": "project", + "description": "The VMware Datacenter ID", + "name": "id", "type": "string" }, { - "description": "the target memory in VM (KiB)", - "name": "memorytargetkbs", + "description": "the Zone ID associated with this VMware Datacenter", + "name": "zoneid", "type": "long" }, { - "description": "the name of the backup offering of the virtual machine", - "name": "backupofferingname", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the password (if exists) of the virtual machine", - "name": "password", + "description": "The VMware vCenter name/ip", + "name": "vcenter", "type": "string" - }, - { - "description": "the memory used by the VM in KiB", - "name": "memorykbs", - "type": "long" - }, + } + ], + "since": "4.12.0" + }, + { + "description": "Creates a system virtual-machine that implements network services", + "isasync": true, + "name": "createServiceInstance", + "params": [ { - "description": "list of variables and values for the variables declared in userdata", - "name": "userdatadetails", + "description": "An optional account for the virtual machine. Must be used with domainId.", + "length": 255, + "name": "account", + "required": false, "type": "string" }, { - "description": "Base64 string representation of the resource icon", - "name": "icon", - "type": "resourceiconresponse" + "description": "The template ID that specifies the image for the service appliance", + "length": 255, + "name": "templateid", + "related": "registerTemplate,listTemplates,createTemplate,copyTemplate,registerTemplate,registerIso,copyIso,listIsos,registerVnfTemplate,registerVnfTemplate,listVnfTemplates,updateVnfTemplate,updateVnfTemplate", + "required": true, + "type": "uuid" }, { - "description": "path of the domain in which the virtual machine exists", - "name": "domainpath", - "type": "string" + "description": "Availability zone for the service instance", + "length": 255, + "name": "zoneid", + "related": "listZones", + "required": true, + "type": "uuid" }, { - "description": "true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory.", - "name": "isdynamicallyscalable", - "type": "boolean" + "description": "The right (outside) network ID for the service instance", + "length": 255, + "name": "rightnetworkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", + "required": true, + "type": "uuid" }, { - "description": "VNF details", - "name": "vnfdetails", - "type": "map" + "description": "Project ID for the service instance", + "length": 255, + "name": "projectid", + "related": "", + "required": false, + "type": "uuid" }, { - "description": "the group ID of the virtual machine", - "name": "groupid", + "description": "The name of the service instance", + "length": 255, + "name": "name", + "required": true, "type": "string" }, { - "description": " an alternate display text of the template for the virtual machine", - "name": "templatedisplaytext", - "type": "string" + "description": "An optional domainId for the virtual machine. If the account parameter is used, domainId must also be used.", + "length": 255, + "name": "domainid", + "related": "listDomains", + "required": false, + "type": "uuid" }, { - "description": "the userdata override policy with the userdata provided while deploying VM", - "name": "userdatapolicy", - "type": "string" + "description": "The left (inside) network for service instance", + "length": 255, + "name": "leftnetworkid", + "related": "createNetwork,updateNetwork,listNetworks,migrateNetwork", + "required": true, + "type": "uuid" }, { - "description": "the control state of the host for the virtual machine", - "name": "hostcontrolstate", + "description": "The service offering ID that defines the resources consumed by the service appliance", + "length": 255, + "name": "serviceofferingid", + "related": "updateServiceOffering,listServiceOfferings", + "required": true, + "type": "uuid" + } + ], + "related": "", + "response": [ + {}, + { + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the VM's primary IP address", - "name": "ipaddress", + "description": "the project name of the vm", + "name": "project", "type": "string" }, { @@ -156927,28 +152411,28 @@ "type": "integer" }, { - "description": "the ID of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingid", + "description": "the ID of the domain in which the virtual machine exists", + "name": "domainid", "type": "string" }, { - "description": "public IP address id associated with vm via Static nat rule", - "name": "publicip", + "description": "the project id of the vm", + "name": "projectid", "type": "string" }, { - "description": "instance name of the user vm; this parameter is returned to the ROOT admin only", - "name": "instancename", + "description": "the name of the domain in which the virtual machine exists", + "name": "domain", "type": "string" }, { - "description": "the ID of the virtual machine", - "name": "id", + "description": "the name of the virtual machine", + "name": "name", "type": "string" }, { - "description": "the group name of the virtual machine", - "name": "group", + "description": "the ID of the virtual machine", + "name": "id", "type": "string" }, { @@ -156957,486 +152441,205 @@ "type": "string" }, { - "description": "the ID of the host for the virtual machine", - "name": "hostid", + "description": "the account associated with the virtual machine", + "name": "account", "type": "string" }, { - "description": "the format of the template for the virtual machine", - "name": "templateformat", + "description": "path of the Domain in which the virtual machine exists", + "name": "domainpath", "type": "string" }, + {} + ] + }, + { + "description": "Adds a VMware datacenter to specified zone", + "isasync": false, + "name": "addVmwareDc", + "params": [ { - "description": "ssh key-pairs", - "name": "keypairs", + "description": "The name/ip of vCenter. Make sure it is IP address or full qualified domain name for host running vCenter server.", + "length": 255, + "name": "vcenter", + "required": true, "type": "string" }, { - "description": "list of security groups associated with the virtual machine", - "name": "securitygroup", - "response": [ - { - "description": "the description of the security group", - "name": "description", - "type": "string" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project name of the group", - "name": "project", - "type": "string" - }, - { - "description": "the domain ID of the security group", - "name": "domainid", - "type": "string" - }, - { - "description": "the name of the security group", - "name": "name", - "type": "string" - }, - { - "description": "the list of egress rules associated with the security group", - "name": "egressrule", - "response": [ - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the project id of the group", - "name": "projectid", - "type": "string" - }, - { - "description": "path of the Domain the security group belongs to", - "name": "domainpath", - "type": "string" - }, - { - "description": "the list of virtualmachine ids associated with this securitygroup", - "name": "virtualmachineids", - "type": "set" - }, - { - "description": "the ID of the security group", - "name": "id", - "type": "string" - }, - { - "description": "the account owning the security group", - "name": "account", - "type": "string" - }, - { - "description": "the number of virtualmachines associated with this securitygroup", - "name": "virtualmachinecount", - "type": "integer" - }, - { - "description": "the domain name of the security group", - "name": "domain", - "type": "string" - }, - { - "description": "the list of ingress rules associated with the security group", - "name": "ingressrule", - "response": [ - { - "description": "the CIDR notation for the base IP address of the security group rule", - "name": "cidr", - "type": "string" - }, - { - "description": "security group name", - "name": "securitygroupname", - "type": "string" - }, - { - "description": "the starting IP of the security group rule", - "name": "startport", - "type": "integer" - }, - { - "description": "the code for the ICMP message response", - "name": "icmpcode", - "type": "integer" - }, - { - "description": "the ending IP of the security group rule ", - "name": "endport", - "type": "integer" - }, - { - "description": "the list of resource tags associated with the rule", - "name": "tags", - "response": [ - { - "description": "id of the resource", - "name": "resourceid", - "type": "string" - }, - { - "description": "customer associated with the tag", - "name": "customer", - "type": "string" - }, - { - "description": "the project id the tag belongs to", - "name": "projectid", - "type": "string" - }, - { - "description": "the domain associated with the tag", - "name": "domain", - "type": "string" - }, - { - "description": "path of the Domain associated with the tag", - "name": "domainpath", - "type": "string" - }, - { - "description": "resource type", - "name": "resourcetype", - "type": "string" - }, - { - "description": "tag key name", - "name": "key", - "type": "string" - }, - { - "description": "the ID of the domain associated with the tag", - "name": "domainid", - "type": "string" - }, - { - "description": "tag value", - "name": "value", - "type": "string" - }, - { - "description": "the project name where tag belongs to", - "name": "project", - "type": "string" - }, - { - "description": "the account associated with the tag", - "name": "account", - "type": "string" - } - ], - "type": "set" - }, - { - "description": "the id of the security group rule", - "name": "ruleid", - "type": "string" - }, - { - "description": "the protocol of the security group rule", - "name": "protocol", - "type": "string" - }, - { - "description": "account owning the security group rule", - "name": "account", - "type": "string" - }, - { - "description": "the type of the ICMP message response", - "name": "icmptype", - "type": "integer" - } - ], - "type": "set" - } - ], - "type": "set" + "description": "The password for specified username.", + "length": 255, + "name": "password", + "required": false, + "type": "string" }, { - "description": "the user's name who deployed the virtual machine", + "description": "The Username required to connect to resource.", + "length": 255, "name": "username", + "required": false, "type": "string" }, { - "description": "the number of vCPUs this virtual machine is using", - "name": "cpunumber", - "type": "integer" + "description": "The Zone ID.", + "length": 255, + "name": "zoneid", + "related": "createZone,listZones", + "required": true, + "type": "uuid" }, { - "description": "the name of the disk offering of the virtual machine. This parameter should not be used for retrieving disk offering details of DATA volumes. Use listVolumes API instead", - "name": "diskofferingname", + "description": "Name of VMware datacenter to be added to specified zone.", + "length": 255, + "name": "name", + "required": true, + "type": "string" + } + ], + "related": "", + "response": [ + { + "description": "The VMware Datacenter ID", + "name": "id", "type": "string" }, + { + "description": "The VMware Datacenter name", + "name": "name", + "type": "string" + }, + {}, + {}, { "description": "the UUID of the latest async job acting on this object", "name": "jobid", "type": "string" }, { - "description": "the name of userdata used for the VM", - "name": "userdataname", + "description": "The VMware vCenter name/ip", + "name": "vcenter", "type": "string" }, { - "description": "the read (IO) of disk on the VM", - "name": "diskioread", + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" + }, + { + "description": "the Zone ID associated with this VMware Datacenter", + "name": "zoneid", "type": "long" } ] }, { - "description": "Creates a network ACL. If no VPC is given, then it creates a global ACL that can be used by everyone.", - "isasync": true, - "name": "createNetworkACLList", + "description": "Retrieves VMware DC(s) associated with a zone.", + "isasync": false, + "name": "listVmwareDcs", "params": [ { - "description": "Name of the network ACL list", + "description": "", "length": 255, - "name": "name", - "required": true, - "type": "string" + "name": "pagesize", + "required": false, + "type": "integer" }, { - "description": "Description of the network ACL list", + "description": "List by keyword", "length": 255, - "name": "description", + "name": "keyword", "required": false, "type": "string" }, { - "description": "ID of the VPC associated with this network ACL list", + "description": "", "length": 255, - "name": "vpcid", - "related": "createVPC,listVPCs,updateVPC", + "name": "page", "required": false, - "type": "uuid" + "type": "integer" }, { - "description": "an optional field, whether to the display the list to the end user or not", + "description": "Id of the CloudStack zone.", "length": 255, - "name": "fordisplay", - "required": false, - "since": "4.4", - "type": "boolean" + "name": "zoneid", + "related": "createZone,listZones,listZones", + "required": true, + "type": "uuid" } ], - "related": "", + "related": "addVmwareDc", "response": [ { - "description": "Name of the VPC this ACL is associated with", - "name": "vpcname", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "the Name of the ACL", - "name": "name", + "description": "The VMware Datacenter ID", + "name": "id", "type": "string" }, - {}, { - "description": "Id of the VPC this ACL is associated with", - "name": "vpcid", + "description": "The VMware vCenter name/ip", + "name": "vcenter", "type": "string" }, {}, + {}, + { + "description": "the Zone ID associated with this VMware Datacenter", + "name": "zoneid", + "type": "long" + }, + { + "description": "The VMware Datacenter name", + "name": "name", + "type": "string" + }, { "description": "the current status of the latest async job acting on this object", "name": "jobstatus", "type": "integer" - }, + } + ] + }, + { + "description": "Stops a running CloudManaged Kubernetes cluster", + "isasync": true, + "name": "stopKubernetesCluster", + "params": [ { - "description": "the UUID of the latest async job acting on this object", - "name": "jobid", + "description": "the ID of the Kubernetes cluster", + "length": 255, + "name": "id", + "related": "createKubernetesCluster,startKubernetesCluster,scaleKubernetesCluster", + "required": true, + "type": "uuid" + } + ], + "response": [ + { + "description": "any text associated with the success or failure", + "name": "displaytext", "type": "string" }, + {}, { - "description": "Description of the ACL", - "name": "description", - "type": "string" + "description": "the current status of the latest async job acting on this object", + "name": "jobstatus", + "type": "integer" }, + {}, { - "description": "the ID of the ACL", - "name": "id", + "description": "the UUID of the latest async job acting on this object", + "name": "jobid", "type": "string" }, { - "description": "is ACL for display to the regular user", - "name": "fordisplay", + "description": "true if operation is executed successfully", + "name": "success", "type": "boolean" } ] } - ], - "count": 812 + ] } diff --git a/go.mod b/go.mod index 43eeb611..99e588d6 100644 --- a/go.mod +++ b/go.mod @@ -3,19 +3,19 @@ module github.com/apache/cloudstack-go/v2 go 1.23 require ( - github.com/golang/mock v1.6.0 github.com/onsi/ginkgo/v2 v2.9.1 github.com/onsi/gomega v1.27.4 + go.uber.org/mock v0.5.0 ) require ( github.com/go-logr/logr v1.2.3 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.7.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 55122c24..cb8a8c94 100644 --- a/go.sum +++ b/go.sum @@ -8,12 +8,10 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -24,46 +22,24 @@ github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/test/ASNumberRangeService_test.go b/test/ASNumberRangeService_test.go new file mode 100644 index 00000000..2903f474 --- /dev/null +++ b/test/ASNumberRangeService_test.go @@ -0,0 +1,77 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestASNumberRangeService(t *testing.T) { + service := "ASNumberRangeService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testcreateASNRange := func(t *testing.T) { + if _, ok := response["createASNRange"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ASNumberRange.NewCreateASNRangeParams(0, 0, "zoneid") + r, err := client.ASNumberRange.CreateASNRange(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateASNRange", testcreateASNRange) + + testdeleteASNRange := func(t *testing.T) { + if _, ok := response["deleteASNRange"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ASNumberRange.NewDeleteASNRangeParams("id") + _, err := client.ASNumberRange.DeleteASNRange(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteASNRange", testdeleteASNRange) + + testlistASNRanges := func(t *testing.T) { + if _, ok := response["listASNRanges"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ASNumberRange.NewListASNRangesParams() + _, err := client.ASNumberRange.ListASNRanges(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListASNRanges", testlistASNRanges) + +} diff --git a/test/ASNumberService_test.go b/test/ASNumberService_test.go new file mode 100644 index 00000000..9eec98f3 --- /dev/null +++ b/test/ASNumberService_test.go @@ -0,0 +1,62 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestASNumberService(t *testing.T) { + service := "ASNumberService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testlistASNumbers := func(t *testing.T) { + if _, ok := response["listASNumbers"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ASNumber.NewListASNumbersParams() + _, err := client.ASNumber.ListASNumbers(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListASNumbers", testlistASNumbers) + + testreleaseASNumber := func(t *testing.T) { + if _, ok := response["releaseASNumber"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ASNumber.NewReleaseASNumberParams(0, "zoneid") + _, err := client.ASNumber.ReleaseASNumber(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ReleaseASNumber", testreleaseASNumber) + +} diff --git a/test/AccountService_test.go b/test/AccountService_test.go index be0bbf85..3ffbdfef 100644 --- a/test/AccountService_test.go +++ b/test/AccountService_test.go @@ -92,17 +92,29 @@ func TestAccountService(t *testing.T) { } t.Run("EnableAccount", testenableAccount) - testgetSolidFireAccountId := func(t *testing.T) { - if _, ok := response["getSolidFireAccountId"]; !ok { + testisAccountAllowedToCreateOfferingsWithTags := func(t *testing.T) { + if _, ok := response["isAccountAllowedToCreateOfferingsWithTags"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.Account.NewGetSolidFireAccountIdParams("accountid", "storageid") - _, err := client.Account.GetSolidFireAccountId(p) + p := client.Account.NewIsAccountAllowedToCreateOfferingsWithTagsParams() + _, err := client.Account.IsAccountAllowedToCreateOfferingsWithTags(p) if err != nil { t.Errorf(err.Error()) } } - t.Run("GetSolidFireAccountId", testgetSolidFireAccountId) + t.Run("IsAccountAllowedToCreateOfferingsWithTags", testisAccountAllowedToCreateOfferingsWithTags) + + testlinkAccountToLdap := func(t *testing.T) { + if _, ok := response["linkAccountToLdap"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Account.NewLinkAccountToLdapParams("account", "domainid", "ldapdomain") + _, err := client.Account.LinkAccountToLdap(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("LinkAccountToLdap", testlinkAccountToLdap) testlistAccounts := func(t *testing.T) { if _, ok := response["listAccounts"]; !ok { diff --git a/test/AddressService_test.go b/test/AddressService_test.go index 9d534cd1..8bb82f46 100644 --- a/test/AddressService_test.go +++ b/test/AddressService_test.go @@ -35,6 +35,18 @@ func TestAddressService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() + testacquirePodIpAddress := func(t *testing.T) { + if _, ok := response["acquirePodIpAddress"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Address.NewAcquirePodIpAddressParams("zoneid") + _, err := client.Address.AcquirePodIpAddress(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("AcquirePodIpAddress", testacquirePodIpAddress) + testassociateIpAddress := func(t *testing.T) { if _, ok := response["associateIpAddress"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -101,4 +113,31 @@ func TestAddressService(t *testing.T) { } t.Run("ReleaseIpAddress", testreleaseIpAddress) + testreleasePodIpAddress := func(t *testing.T) { + if _, ok := response["releasePodIpAddress"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Address.NewReleasePodIpAddressParams(0) + _, err := client.Address.ReleasePodIpAddress(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ReleasePodIpAddress", testreleasePodIpAddress) + + testreserveIpAddress := func(t *testing.T) { + if _, ok := response["reserveIpAddress"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Address.NewReserveIpAddressParams("id") + r, err := client.Address.ReserveIpAddress(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ReserveIpAddress", testreserveIpAddress) + } diff --git a/test/AlertService_test.go b/test/AlertService_test.go index e409fe23..70847d25 100644 --- a/test/AlertService_test.go +++ b/test/AlertService_test.go @@ -83,4 +83,16 @@ func TestAlertService(t *testing.T) { } t.Run("ListAlerts", testlistAlerts) + testlistAlertTypes := func(t *testing.T) { + if _, ok := response["listAlertTypes"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Alert.NewListAlertTypesParams() + _, err := client.Alert.ListAlertTypes(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListAlertTypes", testlistAlertTypes) + } diff --git a/test/AuthenticationService_test.go b/test/AuthenticationService_test.go index 891b0a55..1e1e96bd 100644 --- a/test/AuthenticationService_test.go +++ b/test/AuthenticationService_test.go @@ -59,4 +59,16 @@ func TestAuthenticationService(t *testing.T) { } t.Run("Logout", testlogout) + testoauthlogin := func(t *testing.T) { + if _, ok := response["oauthlogin"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Authentication.NewOauthloginParams("email", "provider") + _, err := client.Authentication.Oauthlogin(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("Oauthlogin", testoauthlogin) + } diff --git a/test/AutoScaleService_test.go b/test/AutoScaleService_test.go index 9105c429..1ee5b63d 100644 --- a/test/AutoScaleService_test.go +++ b/test/AutoScaleService_test.go @@ -305,4 +305,16 @@ func TestAutoScaleService(t *testing.T) { } t.Run("UpdateAutoScaleVmProfile", testupdateAutoScaleVmProfile) + testupdateCondition := func(t *testing.T) { + if _, ok := response["updateCondition"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.AutoScale.NewUpdateConditionParams("id", "relationaloperator", 0) + _, err := client.AutoScale.UpdateCondition(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("UpdateCondition", testupdateCondition) + } diff --git a/test/BGPPeerService_test.go b/test/BGPPeerService_test.go new file mode 100644 index 00000000..f9ab3b10 --- /dev/null +++ b/test/BGPPeerService_test.go @@ -0,0 +1,137 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestBGPPeerService(t *testing.T) { + service := "BGPPeerService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testchangeBgpPeersForVpc := func(t *testing.T) { + if _, ok := response["changeBgpPeersForVpc"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewChangeBgpPeersForVpcParams("vpcid") + r, err := client.BGPPeer.ChangeBgpPeersForVpc(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ChangeBgpPeersForVpc", testchangeBgpPeersForVpc) + + testcreateBgpPeer := func(t *testing.T) { + if _, ok := response["createBgpPeer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewCreateBgpPeerParams(0, "zoneid") + r, err := client.BGPPeer.CreateBgpPeer(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateBgpPeer", testcreateBgpPeer) + + testdedicateBgpPeer := func(t *testing.T) { + if _, ok := response["dedicateBgpPeer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewDedicateBgpPeerParams("id") + r, err := client.BGPPeer.DedicateBgpPeer(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("DedicateBgpPeer", testdedicateBgpPeer) + + testdeleteBgpPeer := func(t *testing.T) { + if _, ok := response["deleteBgpPeer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewDeleteBgpPeerParams("id") + _, err := client.BGPPeer.DeleteBgpPeer(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteBgpPeer", testdeleteBgpPeer) + + testlistBgpPeers := func(t *testing.T) { + if _, ok := response["listBgpPeers"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewListBgpPeersParams() + _, err := client.BGPPeer.ListBgpPeers(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListBgpPeers", testlistBgpPeers) + + testreleaseBgpPeer := func(t *testing.T) { + if _, ok := response["releaseBgpPeer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewReleaseBgpPeerParams("id") + r, err := client.BGPPeer.ReleaseBgpPeer(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ReleaseBgpPeer", testreleaseBgpPeer) + + testupdateBgpPeer := func(t *testing.T) { + if _, ok := response["updateBgpPeer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.BGPPeer.NewUpdateBgpPeerParams("id") + r, err := client.BGPPeer.UpdateBgpPeer(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UpdateBgpPeer", testupdateBgpPeer) + +} diff --git a/test/CertificateService_test.go b/test/CertificateService_test.go index eae7dbda..9b0961cd 100644 --- a/test/CertificateService_test.go +++ b/test/CertificateService_test.go @@ -35,17 +35,17 @@ func TestCertificateService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() - testuploadCustomCertificate := func(t *testing.T) { - if _, ok := response["uploadCustomCertificate"]; !ok { + testissueCertificate := func(t *testing.T) { + if _, ok := response["issueCertificate"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.Certificate.NewUploadCustomCertificateParams("certificate", "domainsuffix") - _, err := client.Certificate.UploadCustomCertificate(p) + p := client.Certificate.NewIssueCertificateParams() + _, err := client.Certificate.IssueCertificate(p) if err != nil { t.Errorf(err.Error()) } } - t.Run("UploadCustomCertificate", testuploadCustomCertificate) + t.Run("IssueCertificate", testissueCertificate) testlistCAProviders := func(t *testing.T) { if _, ok := response["listCAProviders"]; !ok { @@ -59,6 +59,30 @@ func TestCertificateService(t *testing.T) { } t.Run("ListCAProviders", testlistCAProviders) + testlistCaCertificate := func(t *testing.T) { + if _, ok := response["listCaCertificate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewListCaCertificateParams() + _, err := client.Certificate.ListCaCertificate(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListCaCertificate", testlistCaCertificate) + + testlistTemplateDirectDownloadCertificates := func(t *testing.T) { + if _, ok := response["listTemplateDirectDownloadCertificates"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewListTemplateDirectDownloadCertificatesParams() + _, err := client.Certificate.ListTemplateDirectDownloadCertificates(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListTemplateDirectDownloadCertificates", testlistTemplateDirectDownloadCertificates) + testprovisionCertificate := func(t *testing.T) { if _, ok := response["provisionCertificate"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -71,4 +95,67 @@ func TestCertificateService(t *testing.T) { } t.Run("ProvisionCertificate", testprovisionCertificate) + testprovisionTemplateDirectDownloadCertificate := func(t *testing.T) { + if _, ok := response["provisionTemplateDirectDownloadCertificate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewProvisionTemplateDirectDownloadCertificateParams("hostid", "id") + _, err := client.Certificate.ProvisionTemplateDirectDownloadCertificate(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ProvisionTemplateDirectDownloadCertificate", testprovisionTemplateDirectDownloadCertificate) + + testrevokeCertificate := func(t *testing.T) { + if _, ok := response["revokeCertificate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewRevokeCertificateParams("serial") + _, err := client.Certificate.RevokeCertificate(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RevokeCertificate", testrevokeCertificate) + + testrevokeTemplateDirectDownloadCertificate := func(t *testing.T) { + if _, ok := response["revokeTemplateDirectDownloadCertificate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewRevokeTemplateDirectDownloadCertificateParams("zoneid") + _, err := client.Certificate.RevokeTemplateDirectDownloadCertificate(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RevokeTemplateDirectDownloadCertificate", testrevokeTemplateDirectDownloadCertificate) + + testuploadCustomCertificate := func(t *testing.T) { + if _, ok := response["uploadCustomCertificate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewUploadCustomCertificateParams("certificate", "domainsuffix") + _, err := client.Certificate.UploadCustomCertificate(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("UploadCustomCertificate", testuploadCustomCertificate) + + testuploadTemplateDirectDownloadCertificate := func(t *testing.T) { + if _, ok := response["uploadTemplateDirectDownloadCertificate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Certificate.NewUploadTemplateDirectDownloadCertificateParams("certificate", "hypervisor", "name", "zoneid") + r, err := client.Certificate.UploadTemplateDirectDownloadCertificate(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UploadTemplateDirectDownloadCertificate", testuploadTemplateDirectDownloadCertificate) + } diff --git a/test/ShutdownService_test.go b/test/CloudianService_test.go similarity index 79% rename from test/ShutdownService_test.go rename to test/CloudianService_test.go index 31b240a2..c8adb1bc 100644 --- a/test/ShutdownService_test.go +++ b/test/CloudianService_test.go @@ -25,8 +25,8 @@ import ( "github.com/apache/cloudstack-go/v2/cloudstack" ) -func TestShutdownService(t *testing.T) { - service := "ShutdownService" +func TestCloudianService(t *testing.T) { + service := "CloudianService" response, err := readData(service) if err != nil { t.Skipf("Skipping test as %v", err) @@ -35,16 +35,16 @@ func TestShutdownService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() - testreadyForShutdown := func(t *testing.T) { - if _, ok := response["readyForShutdown"]; !ok { + testcloudianIsEnabled := func(t *testing.T) { + if _, ok := response["cloudianIsEnabled"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.Shutdown.NewReadyForShutdownParams() - _, err := client.Shutdown.ReadyForShutdown(p) + p := client.Cloudian.NewCloudianIsEnabledParams() + _, err := client.Cloudian.CloudianIsEnabled(p) if err != nil { t.Errorf(err.Error()) } } - t.Run("ReadyForShutdown", testreadyForShutdown) + t.Run("CloudianIsEnabled", testcloudianIsEnabled) } diff --git a/test/ClusterService_test.go b/test/ClusterService_test.go index 93595aa0..5236d523 100644 --- a/test/ClusterService_test.go +++ b/test/ClusterService_test.go @@ -113,6 +113,36 @@ func TestClusterService(t *testing.T) { } t.Run("EnableHAForCluster", testenableHAForCluster) + testexecuteClusterDrsPlan := func(t *testing.T) { + if _, ok := response["executeClusterDrsPlan"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Cluster.NewExecuteClusterDrsPlanParams("id") + r, err := client.Cluster.ExecuteClusterDrsPlan(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ExecuteClusterDrsPlan", testexecuteClusterDrsPlan) + + testgenerateClusterDrsPlan := func(t *testing.T) { + if _, ok := response["generateClusterDrsPlan"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Cluster.NewGenerateClusterDrsPlanParams("id") + r, err := client.Cluster.GenerateClusterDrsPlan(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("GenerateClusterDrsPlan", testgenerateClusterDrsPlan) + testdisableHAForCluster := func(t *testing.T) { if _, ok := response["disableHAForCluster"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -137,6 +167,18 @@ func TestClusterService(t *testing.T) { } t.Run("ListClusters", testlistClusters) + testlistClusterDrsPlan := func(t *testing.T) { + if _, ok := response["listClusterDrsPlan"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Cluster.NewListClusterDrsPlanParams() + _, err := client.Cluster.ListClusterDrsPlan(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListClusterDrsPlan", testlistClusterDrsPlan) + testlistClustersMetrics := func(t *testing.T) { if _, ok := response["listClustersMetrics"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/ConfigurationService_test.go b/test/ConfigurationService_test.go index 754577da..a0a72d81 100644 --- a/test/ConfigurationService_test.go +++ b/test/ConfigurationService_test.go @@ -47,6 +47,18 @@ func TestConfigurationService(t *testing.T) { } t.Run("ListCapabilities", testlistCapabilities) + testlistConfigurationGroups := func(t *testing.T) { + if _, ok := response["listConfigurationGroups"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Configuration.NewListConfigurationGroupsParams() + _, err := client.Configuration.ListConfigurationGroups(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListConfigurationGroups", testlistConfigurationGroups) + testlistConfigurations := func(t *testing.T) { if _, ok := response["listConfigurations"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/DiagnosticsService_test.go b/test/DiagnosticsService_test.go index 0c80eeda..ffab7cbb 100644 --- a/test/DiagnosticsService_test.go +++ b/test/DiagnosticsService_test.go @@ -47,4 +47,16 @@ func TestDiagnosticsService(t *testing.T) { } t.Run("GetDiagnosticsData", testgetDiagnosticsData) + testrunDiagnostics := func(t *testing.T) { + if _, ok := response["runDiagnostics"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Diagnostics.NewRunDiagnosticsParams("ipaddress", "targetid", "type") + _, err := client.Diagnostics.RunDiagnostics(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RunDiagnostics", testrunDiagnostics) + } diff --git a/test/DomainService_test.go b/test/DomainService_test.go index 8d2617d4..b731fc92 100644 --- a/test/DomainService_test.go +++ b/test/DomainService_test.go @@ -86,6 +86,21 @@ func TestDomainService(t *testing.T) { } t.Run("ListDomains", testlistDomains) + testmoveDomain := func(t *testing.T) { + if _, ok := response["moveDomain"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Domain.NewMoveDomainParams("domainid", "parentdomainid") + r, err := client.Domain.MoveDomain(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("MoveDomain", testmoveDomain) + testupdateDomain := func(t *testing.T) { if _, ok := response["updateDomain"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/FirewallService_test.go b/test/FirewallService_test.go index 6e00e0c7..eb037dab 100644 --- a/test/FirewallService_test.go +++ b/test/FirewallService_test.go @@ -104,6 +104,21 @@ func TestFirewallService(t *testing.T) { } t.Run("CreatePortForwardingRule", testcreatePortForwardingRule) + testcreateRoutingFirewallRule := func(t *testing.T) { + if _, ok := response["createRoutingFirewallRule"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Firewall.NewCreateRoutingFirewallRuleParams("networkid", "protocol") + r, err := client.Firewall.CreateRoutingFirewallRule(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateRoutingFirewallRule", testcreateRoutingFirewallRule) + testdeleteEgressFirewallRule := func(t *testing.T) { if _, ok := response["deleteEgressFirewallRule"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -152,6 +167,18 @@ func TestFirewallService(t *testing.T) { } t.Run("DeletePortForwardingRule", testdeletePortForwardingRule) + testdeleteRoutingFirewallRule := func(t *testing.T) { + if _, ok := response["deleteRoutingFirewallRule"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Firewall.NewDeleteRoutingFirewallRuleParams("id") + _, err := client.Firewall.DeleteRoutingFirewallRule(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteRoutingFirewallRule", testdeleteRoutingFirewallRule) + testlistEgressFirewallRules := func(t *testing.T) { if _, ok := response["listEgressFirewallRules"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -200,6 +227,18 @@ func TestFirewallService(t *testing.T) { } t.Run("ListPortForwardingRules", testlistPortForwardingRules) + testlistRoutingFirewallRules := func(t *testing.T) { + if _, ok := response["listRoutingFirewallRules"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Firewall.NewListRoutingFirewallRulesParams() + _, err := client.Firewall.ListRoutingFirewallRules(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListRoutingFirewallRules", testlistRoutingFirewallRules) + testupdateEgressFirewallRule := func(t *testing.T) { if _, ok := response["updateEgressFirewallRule"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -299,4 +338,19 @@ func TestFirewallService(t *testing.T) { } t.Run("DeleteIpv6FirewallRule", testdeleteIpv6FirewallRule) + testupdateRoutingFirewallRule := func(t *testing.T) { + if _, ok := response["updateRoutingFirewallRule"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Firewall.NewUpdateRoutingFirewallRuleParams("id") + r, err := client.Firewall.UpdateRoutingFirewallRule(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UpdateRoutingFirewallRule", testupdateRoutingFirewallRule) + } diff --git a/test/HostService_test.go b/test/HostService_test.go index 1abcc562..45ce74cc 100644 --- a/test/HostService_test.go +++ b/test/HostService_test.go @@ -158,6 +158,18 @@ func TestHostService(t *testing.T) { } t.Run("DeleteHost", testdeleteHost) + testdisableHAForHost := func(t *testing.T) { + if _, ok := response["disableHAForHost"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Host.NewDisableHAForHostParams("hostid") + _, err := client.Host.DisableHAForHost(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DisableHAForHost", testdisableHAForHost) + testdisableOutOfBandManagementForHost := func(t *testing.T) { if _, ok := response["disableOutOfBandManagementForHost"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -394,13 +406,10 @@ func TestHostService(t *testing.T) { t.Skipf("Skipping as no json response is provided in testdata") } p := client.Host.NewRemoveSecondaryStorageSelectorParams("id") - r, err := client.Host.RemoveSecondaryStorageSelector(p) + _, err := client.Host.RemoveSecondaryStorageSelector(p) if err != nil { t.Errorf(err.Error()) } - if r.Id == "" { - t.Errorf("Failed to parse response. ID not found") - } } t.Run("RemoveSecondaryStorageSelector", testremoveSecondaryStorageSelector) diff --git a/test/IPQuarantineService_test.go b/test/IPQuarantineService_test.go new file mode 100644 index 00000000..52f78d60 --- /dev/null +++ b/test/IPQuarantineService_test.go @@ -0,0 +1,80 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestIPQuarantineService(t *testing.T) { + service := "IPQuarantineService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testlistQuarantinedIps := func(t *testing.T) { + if _, ok := response["listQuarantinedIps"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.IPQuarantine.NewListQuarantinedIpsParams() + _, err := client.IPQuarantine.ListQuarantinedIps(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListQuarantinedIps", testlistQuarantinedIps) + + testremoveQuarantinedIp := func(t *testing.T) { + if _, ok := response["removeQuarantinedIp"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.IPQuarantine.NewRemoveQuarantinedIpParams("removalreason") + r, err := client.IPQuarantine.RemoveQuarantinedIp(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("RemoveQuarantinedIp", testremoveQuarantinedIp) + + testupdateQuarantinedIp := func(t *testing.T) { + if _, ok := response["updateQuarantinedIp"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.IPQuarantine.NewUpdateQuarantinedIpParams("enddate") + r, err := client.IPQuarantine.UpdateQuarantinedIp(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UpdateQuarantinedIp", testupdateQuarantinedIp) + +} diff --git a/test/ISOService_test.go b/test/ISOService_test.go index b9e6d890..a90529bc 100644 --- a/test/ISOService_test.go +++ b/test/ISOService_test.go @@ -107,6 +107,18 @@ func TestISOService(t *testing.T) { } t.Run("ExtractIso", testextractIso) + testgetUploadParamsForIso := func(t *testing.T) { + if _, ok := response["getUploadParamsForIso"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ISO.NewGetUploadParamsForIsoParams("format", "name", "zoneid") + _, err := client.ISO.GetUploadParamsForIso(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("GetUploadParamsForIso", testgetUploadParamsForIso) + testlistIsoPermissions := func(t *testing.T) { if _, ok := response["listIsoPermissions"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/ImageStoreService_test.go b/test/ImageStoreService_test.go index b5c36d22..76b49ee1 100644 --- a/test/ImageStoreService_test.go +++ b/test/ImageStoreService_test.go @@ -128,6 +128,18 @@ func TestImageStoreService(t *testing.T) { } t.Run("ListSecondaryStagingStores", testlistSecondaryStagingStores) + testmigrateResourceToAnotherSecondaryStorage := func(t *testing.T) { + if _, ok := response["migrateResourceToAnotherSecondaryStorage"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ImageStore.NewMigrateResourceToAnotherSecondaryStorageParams("destpool", "srcpool") + _, err := client.ImageStore.MigrateResourceToAnotherSecondaryStorage(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("MigrateResourceToAnotherSecondaryStorage", testmigrateResourceToAnotherSecondaryStorage) + testupdateCloudToUseObjectStore := func(t *testing.T) { if _, ok := response["updateCloudToUseObjectStore"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -159,7 +171,7 @@ func TestImageStoreService(t *testing.T) { if _, ok := response["updateImageStore"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.ImageStore.NewUpdateImageStoreParams("id", true) + p := client.ImageStore.NewUpdateImageStoreParams("id") r, err := client.ImageStore.UpdateImageStore(p) if err != nil { t.Errorf(err.Error()) diff --git a/test/InfrastructureUsageService_test.go b/test/InfrastructureUsageService_test.go index a852f829..528bc8e5 100644 --- a/test/InfrastructureUsageService_test.go +++ b/test/InfrastructureUsageService_test.go @@ -35,18 +35,6 @@ func TestInfrastructureUsageService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() - testlistManagementServersMetrics := func(t *testing.T) { - if _, ok := response["listManagementServersMetrics"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.InfrastructureUsage.NewListManagementServersMetricsParams() - _, err := client.InfrastructureUsage.ListManagementServersMetrics(p) - if err != nil { - t.Errorf(err.Error()) - } - } - t.Run("ListManagementServersMetrics", testlistManagementServersMetrics) - testlistDbMetrics := func(t *testing.T) { if _, ok := response["listDbMetrics"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/LoadBalancerService_test.go b/test/LoadBalancerService_test.go index ac7dd43c..085ff6c9 100644 --- a/test/LoadBalancerService_test.go +++ b/test/LoadBalancerService_test.go @@ -35,18 +35,6 @@ func TestLoadBalancerService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() - testaddNetscalerLoadBalancer := func(t *testing.T) { - if _, ok := response["addNetscalerLoadBalancer"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.LoadBalancer.NewAddNetscalerLoadBalancerParams("networkdevicetype", "password", "physicalnetworkid", "url", "username") - _, err := client.LoadBalancer.AddNetscalerLoadBalancer(p) - if err != nil { - t.Errorf(err.Error()) - } - } - t.Run("AddNetscalerLoadBalancer", testaddNetscalerLoadBalancer) - testassignCertToLoadBalancer := func(t *testing.T) { if _, ok := response["assignCertToLoadBalancer"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -83,18 +71,6 @@ func TestLoadBalancerService(t *testing.T) { } t.Run("AssignToLoadBalancerRule", testassignToLoadBalancerRule) - testconfigureNetscalerLoadBalancer := func(t *testing.T) { - if _, ok := response["configureNetscalerLoadBalancer"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.LoadBalancer.NewConfigureNetscalerLoadBalancerParams("lbdeviceid") - _, err := client.LoadBalancer.ConfigureNetscalerLoadBalancer(p) - if err != nil { - t.Errorf(err.Error()) - } - } - t.Run("ConfigureNetscalerLoadBalancer", testconfigureNetscalerLoadBalancer) - testcreateGlobalLoadBalancerRule := func(t *testing.T) { if _, ok := response["createGlobalLoadBalancerRule"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -224,17 +200,17 @@ func TestLoadBalancerService(t *testing.T) { } t.Run("DeleteLoadBalancerRule", testdeleteLoadBalancerRule) - testdeleteNetscalerLoadBalancer := func(t *testing.T) { - if _, ok := response["deleteNetscalerLoadBalancer"]; !ok { + testdeleteServicePackageOffering := func(t *testing.T) { + if _, ok := response["deleteServicePackageOffering"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.LoadBalancer.NewDeleteNetscalerLoadBalancerParams("lbdeviceid") - _, err := client.LoadBalancer.DeleteNetscalerLoadBalancer(p) + p := client.LoadBalancer.NewDeleteServicePackageOfferingParams("id") + _, err := client.LoadBalancer.DeleteServicePackageOffering(p) if err != nil { t.Errorf(err.Error()) } } - t.Run("DeleteNetscalerLoadBalancer", testdeleteNetscalerLoadBalancer) + t.Run("DeleteServicePackageOffering", testdeleteServicePackageOffering) testdeleteSslCert := func(t *testing.T) { if _, ok := response["deleteSslCert"]; !ok { @@ -248,6 +224,18 @@ func TestLoadBalancerService(t *testing.T) { } t.Run("DeleteSslCert", testdeleteSslCert) + testdeployNetscalerVpx := func(t *testing.T) { + if _, ok := response["deployNetscalerVpx"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.LoadBalancer.NewDeployNetscalerVpxParams("serviceofferingid", "templateid", "zoneid") + _, err := client.LoadBalancer.DeployNetscalerVpx(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeployNetscalerVpx", testdeployNetscalerVpx) + testlistGlobalLoadBalancerRules := func(t *testing.T) { if _, ok := response["listGlobalLoadBalancerRules"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -320,17 +308,17 @@ func TestLoadBalancerService(t *testing.T) { } t.Run("ListLoadBalancers", testlistLoadBalancers) - testlistNetscalerLoadBalancers := func(t *testing.T) { - if _, ok := response["listNetscalerLoadBalancers"]; !ok { + testlistRegisteredServicePackages := func(t *testing.T) { + if _, ok := response["listRegisteredServicePackages"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.LoadBalancer.NewListNetscalerLoadBalancersParams() - _, err := client.LoadBalancer.ListNetscalerLoadBalancers(p) + p := client.LoadBalancer.NewListRegisteredServicePackagesParams() + _, err := client.LoadBalancer.ListRegisteredServicePackages(p) if err != nil { t.Errorf(err.Error()) } } - t.Run("ListNetscalerLoadBalancers", testlistNetscalerLoadBalancers) + t.Run("ListRegisteredServicePackages", testlistRegisteredServicePackages) testlistSslCerts := func(t *testing.T) { if _, ok := response["listSslCerts"]; !ok { @@ -380,6 +368,21 @@ func TestLoadBalancerService(t *testing.T) { } t.Run("RemoveFromLoadBalancerRule", testremoveFromLoadBalancerRule) + teststopNetScalerVpx := func(t *testing.T) { + if _, ok := response["stopNetScalerVpx"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.LoadBalancer.NewStopNetScalerVpxParams("id") + r, err := client.LoadBalancer.StopNetScalerVpx(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("StopNetScalerVpx", teststopNetScalerVpx) + testupdateGlobalLoadBalancerRule := func(t *testing.T) { if _, ok := response["updateGlobalLoadBalancerRule"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/ManagementService_test.go b/test/ManagementService_test.go index a09d9f42..0d0f6482 100644 --- a/test/ManagementService_test.go +++ b/test/ManagementService_test.go @@ -35,6 +35,18 @@ func TestManagementService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() + testcancelShutdown := func(t *testing.T) { + if _, ok := response["cancelShutdown"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Management.NewCancelShutdownParams("managementserverid") + _, err := client.Management.CancelShutdown(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("CancelShutdown", testcancelShutdown) + testlistManagementServers := func(t *testing.T) { if _, ok := response["listManagementServers"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -47,4 +59,52 @@ func TestManagementService(t *testing.T) { } t.Run("ListManagementServers", testlistManagementServers) + testlistManagementServersMetrics := func(t *testing.T) { + if _, ok := response["listManagementServersMetrics"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Management.NewListManagementServersMetricsParams() + _, err := client.Management.ListManagementServersMetrics(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListManagementServersMetrics", testlistManagementServersMetrics) + + testprepareForShutdown := func(t *testing.T) { + if _, ok := response["prepareForShutdown"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Management.NewPrepareForShutdownParams("managementserverid") + _, err := client.Management.PrepareForShutdown(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("PrepareForShutdown", testprepareForShutdown) + + testreadyForShutdown := func(t *testing.T) { + if _, ok := response["readyForShutdown"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Management.NewReadyForShutdownParams() + _, err := client.Management.ReadyForShutdown(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ReadyForShutdown", testreadyForShutdown) + + testtriggerShutdown := func(t *testing.T) { + if _, ok := response["triggerShutdown"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Management.NewTriggerShutdownParams("managementserverid") + _, err := client.Management.TriggerShutdown(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("TriggerShutdown", testtriggerShutdown) + } diff --git a/test/MiscService_test.go b/test/MiscService_test.go new file mode 100644 index 00000000..efa42ec5 --- /dev/null +++ b/test/MiscService_test.go @@ -0,0 +1,50 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestMiscService(t *testing.T) { + service := "MiscService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testlistElastistorInterface := func(t *testing.T) { + if _, ok := response["listElastistorInterface"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Misc.NewListElastistorInterfaceParams() + _, err := client.Misc.ListElastistorInterface(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListElastistorInterface", testlistElastistorInterface) + +} diff --git a/test/NetscalerService_test.go b/test/NetscalerService_test.go new file mode 100644 index 00000000..e5fe8483 --- /dev/null +++ b/test/NetscalerService_test.go @@ -0,0 +1,149 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestNetscalerService(t *testing.T) { + service := "NetscalerService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testaddNetscalerLoadBalancer := func(t *testing.T) { + if _, ok := response["addNetscalerLoadBalancer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewAddNetscalerLoadBalancerParams("networkdevicetype", "password", "physicalnetworkid", "url", "username") + _, err := client.Netscaler.AddNetscalerLoadBalancer(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("AddNetscalerLoadBalancer", testaddNetscalerLoadBalancer) + + testconfigureNetscalerLoadBalancer := func(t *testing.T) { + if _, ok := response["configureNetscalerLoadBalancer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewConfigureNetscalerLoadBalancerParams("lbdeviceid") + _, err := client.Netscaler.ConfigureNetscalerLoadBalancer(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ConfigureNetscalerLoadBalancer", testconfigureNetscalerLoadBalancer) + + testdeleteNetscalerControlCenter := func(t *testing.T) { + if _, ok := response["deleteNetscalerControlCenter"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewDeleteNetscalerControlCenterParams("id") + _, err := client.Netscaler.DeleteNetscalerControlCenter(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteNetscalerControlCenter", testdeleteNetscalerControlCenter) + + testdeleteNetscalerLoadBalancer := func(t *testing.T) { + if _, ok := response["deleteNetscalerLoadBalancer"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewDeleteNetscalerLoadBalancerParams("lbdeviceid") + _, err := client.Netscaler.DeleteNetscalerLoadBalancer(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteNetscalerLoadBalancer", testdeleteNetscalerLoadBalancer) + + testlistNetscalerControlCenter := func(t *testing.T) { + if _, ok := response["listNetscalerControlCenter"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewListNetscalerControlCenterParams() + _, err := client.Netscaler.ListNetscalerControlCenter(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListNetscalerControlCenter", testlistNetscalerControlCenter) + + testlistNetscalerLoadBalancerNetworks := func(t *testing.T) { + if _, ok := response["listNetscalerLoadBalancerNetworks"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewListNetscalerLoadBalancerNetworksParams("lbdeviceid") + _, err := client.Netscaler.ListNetscalerLoadBalancerNetworks(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListNetscalerLoadBalancerNetworks", testlistNetscalerLoadBalancerNetworks) + + testlistNetscalerLoadBalancers := func(t *testing.T) { + if _, ok := response["listNetscalerLoadBalancers"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewListNetscalerLoadBalancersParams() + _, err := client.Netscaler.ListNetscalerLoadBalancers(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListNetscalerLoadBalancers", testlistNetscalerLoadBalancers) + + testregisterNetscalerControlCenter := func(t *testing.T) { + if _, ok := response["registerNetscalerControlCenter"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewRegisterNetscalerControlCenterParams("ipaddress", 0, "password", "username") + _, err := client.Netscaler.RegisterNetscalerControlCenter(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RegisterNetscalerControlCenter", testregisterNetscalerControlCenter) + + testregisterNetscalerServicePackage := func(t *testing.T) { + if _, ok := response["registerNetscalerServicePackage"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Netscaler.NewRegisterNetscalerServicePackageParams("description", "name") + r, err := client.Netscaler.RegisterNetscalerServicePackage(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("RegisterNetscalerServicePackage", testregisterNetscalerServicePackage) + +} diff --git a/test/NetworkACLService_test.go b/test/NetworkACLService_test.go index b20e352a..21485713 100644 --- a/test/NetworkACLService_test.go +++ b/test/NetworkACLService_test.go @@ -113,6 +113,21 @@ func TestNetworkACLService(t *testing.T) { } t.Run("ListNetworkACLs", testlistNetworkACLs) + testmoveNetworkAclItem := func(t *testing.T) { + if _, ok := response["moveNetworkAclItem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.NetworkACL.NewMoveNetworkAclItemParams("id") + r, err := client.NetworkACL.MoveNetworkAclItem(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("MoveNetworkAclItem", testmoveNetworkAclItem) + testreplaceNetworkACLList := func(t *testing.T) { if _, ok := response["replaceNetworkACLList"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/NetworkService_test.go b/test/NetworkService_test.go index 1bff3c27..e4f5be0e 100644 --- a/test/NetworkService_test.go +++ b/test/NetworkService_test.go @@ -65,6 +65,36 @@ func TestNetworkService(t *testing.T) { } t.Run("AddOpenDaylightController", testaddOpenDaylightController) + testchangeBgpPeersForNetwork := func(t *testing.T) { + if _, ok := response["changeBgpPeersForNetwork"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Network.NewChangeBgpPeersForNetworkParams("networkid") + r, err := client.Network.ChangeBgpPeersForNetwork(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ChangeBgpPeersForNetwork", testchangeBgpPeersForNetwork) + + testcreateIpv4SubnetForGuestNetwork := func(t *testing.T) { + if _, ok := response["createIpv4SubnetForGuestNetwork"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Network.NewCreateIpv4SubnetForGuestNetworkParams("parentid") + r, err := client.Network.CreateIpv4SubnetForGuestNetwork(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateIpv4SubnetForGuestNetwork", testcreateIpv4SubnetForGuestNetwork) + testcreateNetwork := func(t *testing.T) { if _, ok := response["createNetwork"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -140,6 +170,18 @@ func TestNetworkService(t *testing.T) { } t.Run("DedicatePublicIpRange", testdedicatePublicIpRange) + testdeleteIpv4SubnetForGuestNetwork := func(t *testing.T) { + if _, ok := response["deleteIpv4SubnetForGuestNetwork"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Network.NewDeleteIpv4SubnetForGuestNetworkParams("id") + _, err := client.Network.DeleteIpv4SubnetForGuestNetwork(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteIpv4SubnetForGuestNetwork", testdeleteIpv4SubnetForGuestNetwork) + testdeleteNetwork := func(t *testing.T) { if _, ok := response["deleteNetwork"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -203,17 +245,17 @@ func TestNetworkService(t *testing.T) { } t.Run("DeleteStorageNetworkIpRange", testdeleteStorageNetworkIpRange) - testlistNetscalerLoadBalancerNetworks := func(t *testing.T) { - if _, ok := response["listNetscalerLoadBalancerNetworks"]; !ok { + testlistIpv4SubnetsForGuestNetwork := func(t *testing.T) { + if _, ok := response["listIpv4SubnetsForGuestNetwork"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.Network.NewListNetscalerLoadBalancerNetworksParams("lbdeviceid") - _, err := client.Network.ListNetscalerLoadBalancerNetworks(p) + p := client.Network.NewListIpv4SubnetsForGuestNetworkParams() + _, err := client.Network.ListIpv4SubnetsForGuestNetwork(p) if err != nil { t.Errorf(err.Error()) } } - t.Run("ListNetscalerLoadBalancerNetworks", testlistNetscalerLoadBalancerNetworks) + t.Run("ListIpv4SubnetsForGuestNetwork", testlistIpv4SubnetsForGuestNetwork) testlistNetworkIsolationMethods := func(t *testing.T) { if _, ok := response["listNetworkIsolationMethods"]; !ok { @@ -227,6 +269,18 @@ func TestNetworkService(t *testing.T) { } t.Run("ListNetworkIsolationMethods", testlistNetworkIsolationMethods) + testlistNetworkProtocols := func(t *testing.T) { + if _, ok := response["listNetworkProtocols"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Network.NewListNetworkProtocolsParams("option") + _, err := client.Network.ListNetworkProtocols(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListNetworkProtocols", testlistNetworkProtocols) + testlistNetworkServiceProviders := func(t *testing.T) { if _, ok := response["listNetworkServiceProviders"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -323,6 +377,21 @@ func TestNetworkService(t *testing.T) { } t.Run("ListSupportedNetworkServices", testlistSupportedNetworkServices) + testmigrateNetwork := func(t *testing.T) { + if _, ok := response["migrateNetwork"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Network.NewMigrateNetworkParams("networkid", "networkofferingid") + r, err := client.Network.MigrateNetwork(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("MigrateNetwork", testmigrateNetwork) + testreleasePublicIpRange := func(t *testing.T) { if _, ok := response["releasePublicIpRange"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/PodService_test.go b/test/PodService_test.go index 66bc5e8e..4a240dfd 100644 --- a/test/PodService_test.go +++ b/test/PodService_test.go @@ -35,6 +35,21 @@ func TestPodService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() + testcreateManagementNetworkIpRange := func(t *testing.T) { + if _, ok := response["createManagementNetworkIpRange"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Pod.NewCreateManagementNetworkIpRangeParams("gateway", "netmask", "podid", "startip") + r, err := client.Pod.CreateManagementNetworkIpRange(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateManagementNetworkIpRange", testcreateManagementNetworkIpRange) + testcreatePod := func(t *testing.T) { if _, ok := response["createPod"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -65,6 +80,18 @@ func TestPodService(t *testing.T) { } t.Run("DedicatePod", testdedicatePod) + testdeleteManagementNetworkIpRange := func(t *testing.T) { + if _, ok := response["deleteManagementNetworkIpRange"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Pod.NewDeleteManagementNetworkIpRangeParams("endip", "podid", "startip", "vlan") + _, err := client.Pod.DeleteManagementNetworkIpRange(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteManagementNetworkIpRange", testdeleteManagementNetworkIpRange) + testdeletePod := func(t *testing.T) { if _, ok := response["deletePod"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/PoolService_test.go b/test/PoolService_test.go index 8d2337e3..365f79a1 100644 --- a/test/PoolService_test.go +++ b/test/PoolService_test.go @@ -77,6 +77,18 @@ func TestPoolService(t *testing.T) { } t.Run("FindStoragePoolsForMigration", testfindStoragePoolsForMigration) + testlistElastistorPool := func(t *testing.T) { + if _, ok := response["listElastistorPool"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Pool.NewListElastistorPoolParams() + _, err := client.Pool.ListElastistorPool(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListElastistorPool", testlistElastistorPool) + testlistStoragePools := func(t *testing.T) { if _, ok := response["listStoragePools"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/ResourceIconService_test.go b/test/ResourceIconService_test.go new file mode 100644 index 00000000..1cba02d5 --- /dev/null +++ b/test/ResourceIconService_test.go @@ -0,0 +1,74 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestResourceIconService(t *testing.T) { + service := "ResourceIconService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testdeleteResourceIcon := func(t *testing.T) { + if _, ok := response["deleteResourceIcon"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ResourceIcon.NewDeleteResourceIconParams([]string{}, "resourcetype") + _, err := client.ResourceIcon.DeleteResourceIcon(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteResourceIcon", testdeleteResourceIcon) + + testlistResourceIcon := func(t *testing.T) { + if _, ok := response["listResourceIcon"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ResourceIcon.NewListResourceIconParams([]string{}, "resourcetype") + _, err := client.ResourceIcon.ListResourceIcon(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListResourceIcon", testlistResourceIcon) + + testuploadResourceIcon := func(t *testing.T) { + if _, ok := response["uploadResourceIcon"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.ResourceIcon.NewUploadResourceIconParams("base64image", []string{}, "resourcetype") + _, err := client.ResourceIcon.UploadResourceIcon(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("UploadResourceIcon", testuploadResourceIcon) + +} diff --git a/test/ResourceService_test.go b/test/ResourceService_test.go new file mode 100644 index 00000000..35d55bc3 --- /dev/null +++ b/test/ResourceService_test.go @@ -0,0 +1,50 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestResourceService(t *testing.T) { + service := "ResourceService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testpurgeExpungedResources := func(t *testing.T) { + if _, ok := response["purgeExpungedResources"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Resource.NewPurgeExpungedResourcesParams() + _, err := client.Resource.PurgeExpungedResources(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("PurgeExpungedResources", testpurgeExpungedResources) + +} diff --git a/test/ResourcemetadataService_test.go b/test/ResourcemetadataService_test.go index 3c1f5207..e1a24949 100644 --- a/test/ResourcemetadataService_test.go +++ b/test/ResourcemetadataService_test.go @@ -47,6 +47,18 @@ func TestResourcemetadataService(t *testing.T) { } t.Run("AddResourceDetail", testaddResourceDetail) + testlistDetailOptions := func(t *testing.T) { + if _, ok := response["listDetailOptions"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Resourcemetadata.NewListDetailOptionsParams("resourcetype") + _, err := client.Resourcemetadata.ListDetailOptions(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListDetailOptions", testlistDetailOptions) + testgetVolumeSnapshotDetails := func(t *testing.T) { if _, ok := response["getVolumeSnapshotDetails"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/RoleService_test.go b/test/RoleService_test.go index a4c38d1e..2e8a4d6a 100644 --- a/test/RoleService_test.go +++ b/test/RoleService_test.go @@ -89,6 +89,30 @@ func TestRoleService(t *testing.T) { } t.Run("DeleteRolePermission", testdeleteRolePermission) + testdisableRole := func(t *testing.T) { + if _, ok := response["disableRole"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Role.NewDisableRoleParams("id") + _, err := client.Role.DisableRole(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DisableRole", testdisableRole) + + testenableRole := func(t *testing.T) { + if _, ok := response["enableRole"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Role.NewEnableRoleParams("id") + _, err := client.Role.EnableRole(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("EnableRole", testenableRole) + testimportRole := func(t *testing.T) { if _, ok := response["importRole"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/RollingMaintenanceService_test.go b/test/RollingMaintenanceService_test.go new file mode 100644 index 00000000..9db1e202 --- /dev/null +++ b/test/RollingMaintenanceService_test.go @@ -0,0 +1,50 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestRollingMaintenanceService(t *testing.T) { + service := "RollingMaintenanceService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + teststartRollingMaintenance := func(t *testing.T) { + if _, ok := response["startRollingMaintenance"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.RollingMaintenance.NewStartRollingMaintenanceParams() + _, err := client.RollingMaintenance.StartRollingMaintenance(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("StartRollingMaintenance", teststartRollingMaintenance) + +} diff --git a/test/RouterService_test.go b/test/RouterService_test.go index 7557c410..8e28eb33 100644 --- a/test/RouterService_test.go +++ b/test/RouterService_test.go @@ -95,6 +95,18 @@ func TestRouterService(t *testing.T) { } t.Run("DestroyRouter", testdestroyRouter) + testgetRouterHealthCheckResults := func(t *testing.T) { + if _, ok := response["getRouterHealthCheckResults"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Router.NewGetRouterHealthCheckResultsParams("routerid") + _, err := client.Router.GetRouterHealthCheckResults(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("GetRouterHealthCheckResults", testgetRouterHealthCheckResults) + testlistRouters := func(t *testing.T) { if _, ok := response["listRouters"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/SecurityGroupService_test.go b/test/SecurityGroupService_test.go index bd30cbff..14db2e9b 100644 --- a/test/SecurityGroupService_test.go +++ b/test/SecurityGroupService_test.go @@ -122,4 +122,19 @@ func TestSecurityGroupService(t *testing.T) { } t.Run("RevokeSecurityGroupIngress", testrevokeSecurityGroupIngress) + testupdateSecurityGroup := func(t *testing.T) { + if _, ok := response["updateSecurityGroup"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SecurityGroup.NewUpdateSecurityGroupParams("id") + r, err := client.SecurityGroup.UpdateSecurityGroup(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UpdateSecurityGroup", testupdateSecurityGroup) + } diff --git a/test/SharedFileSystemService_test.go b/test/SharedFileSystemService_test.go new file mode 100644 index 00000000..51ce3992 --- /dev/null +++ b/test/SharedFileSystemService_test.go @@ -0,0 +1,200 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestSharedFileSystemService(t *testing.T) { + service := "SharedFileSystemService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testchangeSharedFileSystemDiskOffering := func(t *testing.T) { + if _, ok := response["changeSharedFileSystemDiskOffering"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewChangeSharedFileSystemDiskOfferingParams("id") + r, err := client.SharedFileSystem.ChangeSharedFileSystemDiskOffering(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ChangeSharedFileSystemDiskOffering", testchangeSharedFileSystemDiskOffering) + + testchangeSharedFileSystemServiceOffering := func(t *testing.T) { + if _, ok := response["changeSharedFileSystemServiceOffering"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewChangeSharedFileSystemServiceOfferingParams("id", "serviceofferingid") + r, err := client.SharedFileSystem.ChangeSharedFileSystemServiceOffering(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ChangeSharedFileSystemServiceOffering", testchangeSharedFileSystemServiceOffering) + + testcreateSharedFileSystem := func(t *testing.T) { + if _, ok := response["createSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewCreateSharedFileSystemParams("diskofferingid", "filesystem", "name", "networkid", "serviceofferingid", "zoneid") + r, err := client.SharedFileSystem.CreateSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateSharedFileSystem", testcreateSharedFileSystem) + + testdestroySharedFileSystem := func(t *testing.T) { + if _, ok := response["destroySharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewDestroySharedFileSystemParams() + _, err := client.SharedFileSystem.DestroySharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DestroySharedFileSystem", testdestroySharedFileSystem) + + testexpungeSharedFileSystem := func(t *testing.T) { + if _, ok := response["expungeSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewExpungeSharedFileSystemParams() + _, err := client.SharedFileSystem.ExpungeSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ExpungeSharedFileSystem", testexpungeSharedFileSystem) + + testlistSharedFileSystemProviders := func(t *testing.T) { + if _, ok := response["listSharedFileSystemProviders"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewListSharedFileSystemProvidersParams() + _, err := client.SharedFileSystem.ListSharedFileSystemProviders(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListSharedFileSystemProviders", testlistSharedFileSystemProviders) + + testlistSharedFileSystems := func(t *testing.T) { + if _, ok := response["listSharedFileSystems"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewListSharedFileSystemsParams() + _, err := client.SharedFileSystem.ListSharedFileSystems(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListSharedFileSystems", testlistSharedFileSystems) + + testrecoverSharedFileSystem := func(t *testing.T) { + if _, ok := response["recoverSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewRecoverSharedFileSystemParams() + _, err := client.SharedFileSystem.RecoverSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RecoverSharedFileSystem", testrecoverSharedFileSystem) + + testrestartSharedFileSystem := func(t *testing.T) { + if _, ok := response["restartSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewRestartSharedFileSystemParams("id") + _, err := client.SharedFileSystem.RestartSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RestartSharedFileSystem", testrestartSharedFileSystem) + + teststartSharedFileSystem := func(t *testing.T) { + if _, ok := response["startSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewStartSharedFileSystemParams("id") + r, err := client.SharedFileSystem.StartSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("StartSharedFileSystem", teststartSharedFileSystem) + + teststopSharedFileSystem := func(t *testing.T) { + if _, ok := response["stopSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewStopSharedFileSystemParams("id") + r, err := client.SharedFileSystem.StopSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("StopSharedFileSystem", teststopSharedFileSystem) + + testupdateSharedFileSystem := func(t *testing.T) { + if _, ok := response["updateSharedFileSystem"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SharedFileSystem.NewUpdateSharedFileSystemParams("id") + r, err := client.SharedFileSystem.UpdateSharedFileSystem(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UpdateSharedFileSystem", testupdateSharedFileSystem) + +} diff --git a/test/SnapshotService_test.go b/test/SnapshotService_test.go index db6edc4b..dcf462b8 100644 --- a/test/SnapshotService_test.go +++ b/test/SnapshotService_test.go @@ -35,6 +35,36 @@ func TestSnapshotService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() + testarchiveSnapshot := func(t *testing.T) { + if _, ok := response["archiveSnapshot"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Snapshot.NewArchiveSnapshotParams("id") + r, err := client.Snapshot.ArchiveSnapshot(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ArchiveSnapshot", testarchiveSnapshot) + + testcopySnapshot := func(t *testing.T) { + if _, ok := response["copySnapshot"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Snapshot.NewCopySnapshotParams("id") + r, err := client.Snapshot.CopySnapshot(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CopySnapshot", testcopySnapshot) + testcreateSnapshot := func(t *testing.T) { if _, ok := response["createSnapshot"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -50,6 +80,21 @@ func TestSnapshotService(t *testing.T) { } t.Run("CreateSnapshot", testcreateSnapshot) + testcreateSnapshotFromVMSnapshot := func(t *testing.T) { + if _, ok := response["createSnapshotFromVMSnapshot"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Snapshot.NewCreateSnapshotFromVMSnapshotParams("vmsnapshotid", "volumeid") + r, err := client.Snapshot.CreateSnapshotFromVMSnapshot(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateSnapshotFromVMSnapshot", testcreateSnapshotFromVMSnapshot) + testcreateSnapshotPolicy := func(t *testing.T) { if _, ok := response["createSnapshotPolicy"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -116,6 +161,21 @@ func TestSnapshotService(t *testing.T) { } t.Run("DeleteVMSnapshot", testdeleteVMSnapshot) + testextractSnapshot := func(t *testing.T) { + if _, ok := response["extractSnapshot"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Snapshot.NewExtractSnapshotParams("id", "zoneid") + r, err := client.Snapshot.ExtractSnapshot(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ExtractSnapshot", testextractSnapshot) + testlistSnapshotPolicies := func(t *testing.T) { if _, ok := response["listSnapshotPolicies"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/SolidFireService_test.go b/test/SolidFireService_test.go new file mode 100644 index 00000000..ea280224 --- /dev/null +++ b/test/SolidFireService_test.go @@ -0,0 +1,74 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestSolidFireService(t *testing.T) { + service := "SolidFireService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testgetSolidFireAccountId := func(t *testing.T) { + if _, ok := response["getSolidFireAccountId"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SolidFire.NewGetSolidFireAccountIdParams("accountid", "storageid") + _, err := client.SolidFire.GetSolidFireAccountId(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("GetSolidFireAccountId", testgetSolidFireAccountId) + + testgetSolidFireVolumeAccessGroupIds := func(t *testing.T) { + if _, ok := response["getSolidFireVolumeAccessGroupIds"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SolidFire.NewGetSolidFireVolumeAccessGroupIdsParams("clusterid", "storageid") + _, err := client.SolidFire.GetSolidFireVolumeAccessGroupIds(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("GetSolidFireVolumeAccessGroupIds", testgetSolidFireVolumeAccessGroupIds) + + testgetSolidFireVolumeSize := func(t *testing.T) { + if _, ok := response["getSolidFireVolumeSize"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SolidFire.NewGetSolidFireVolumeSizeParams("volumeid") + _, err := client.SolidFire.GetSolidFireVolumeSize(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("GetSolidFireVolumeSize", testgetSolidFireVolumeSize) + +} diff --git a/test/StoragePoolService_test.go b/test/StoragePoolService_test.go index d047f645..755906bf 100644 --- a/test/StoragePoolService_test.go +++ b/test/StoragePoolService_test.go @@ -50,6 +50,18 @@ func TestStoragePoolService(t *testing.T) { } t.Run("CancelStorageMaintenance", testcancelStorageMaintenance) + testchangeStoragePoolScope := func(t *testing.T) { + if _, ok := response["changeStoragePoolScope"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.StoragePool.NewChangeStoragePoolScopeParams("id", "scope") + _, err := client.StoragePool.ChangeStoragePoolScope(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ChangeStoragePoolScope", testchangeStoragePoolScope) + testenableStorageMaintenance := func(t *testing.T) { if _, ok := response["enableStorageMaintenance"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -65,6 +77,18 @@ func TestStoragePoolService(t *testing.T) { } t.Run("EnableStorageMaintenance", testenableStorageMaintenance) + testlistAffectedVmsForStorageScopeChange := func(t *testing.T) { + if _, ok := response["listAffectedVmsForStorageScopeChange"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.StoragePool.NewListAffectedVmsForStorageScopeChangeParams("clusterid", "storageid") + _, err := client.StoragePool.ListAffectedVmsForStorageScopeChange(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListAffectedVmsForStorageScopeChange", testlistAffectedVmsForStorageScopeChange) + testlistStorageProviders := func(t *testing.T) { if _, ok := response["listStorageProviders"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/SystemVMService_test.go b/test/SystemVMService_test.go index e958d729..8648aede 100644 --- a/test/SystemVMService_test.go +++ b/test/SystemVMService_test.go @@ -77,6 +77,18 @@ func TestSystemVMService(t *testing.T) { } t.Run("ListSystemVms", testlistSystemVms) + testlistSystemVmsUsageHistory := func(t *testing.T) { + if _, ok := response["listSystemVmsUsageHistory"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.SystemVM.NewListSystemVmsUsageHistoryParams() + _, err := client.SystemVM.ListSystemVmsUsageHistory(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListSystemVmsUsageHistory", testlistSystemVmsUsageHistory) + testmigrateSystemVm := func(t *testing.T) { if _, ok := response["migrateSystemVm"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/TemplateService_test.go b/test/TemplateService_test.go index 110b790d..a5ad7380 100644 --- a/test/TemplateService_test.go +++ b/test/TemplateService_test.go @@ -194,30 +194,6 @@ func TestTemplateService(t *testing.T) { } t.Run("UpgradeRouterTemplate", testupgradeRouterTemplate) - testlistTemplateDirectDownloadCertificates := func(t *testing.T) { - if _, ok := response["listTemplateDirectDownloadCertificates"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.Template.NewListTemplateDirectDownloadCertificatesParams() - _, err := client.Template.ListTemplateDirectDownloadCertificates(p) - if err != nil { - t.Errorf(err.Error()) - } - } - t.Run("ListTemplateDirectDownloadCertificates", testlistTemplateDirectDownloadCertificates) - - testprovisionTemplateDirectDownloadCertificate := func(t *testing.T) { - if _, ok := response["provisionTemplateDirectDownloadCertificate"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.Template.NewProvisionTemplateDirectDownloadCertificateParams("hostid", "id") - _, err := client.Template.ProvisionTemplateDirectDownloadCertificate(p) - if err != nil { - t.Errorf(err.Error()) - } - } - t.Run("ProvisionTemplateDirectDownloadCertificate", testprovisionTemplateDirectDownloadCertificate) - testlinkUserDataToTemplate := func(t *testing.T) { if _, ok := response["linkUserDataToTemplate"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/UserService_test.go b/test/UserService_test.go index 4f88e8f2..fecece00 100644 --- a/test/UserService_test.go +++ b/test/UserService_test.go @@ -131,6 +131,18 @@ func TestUserService(t *testing.T) { } t.Run("GetVirtualMachineUserData", testgetVirtualMachineUserData) + testlistUserTwoFactorAuthenticatorProviders := func(t *testing.T) { + if _, ok := response["listUserTwoFactorAuthenticatorProviders"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.User.NewListUserTwoFactorAuthenticatorProvidersParams() + _, err := client.User.ListUserTwoFactorAuthenticatorProviders(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListUserTwoFactorAuthenticatorProviders", testlistUserTwoFactorAuthenticatorProviders) + testlistUsers := func(t *testing.T) { if _, ok := response["listUsers"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -248,4 +260,31 @@ func TestUserService(t *testing.T) { } t.Run("SetupUserTwoFactorAuthentication", testsetupUserTwoFactorAuthentication) + testvalidateUserTwoFactorAuthenticationCode := func(t *testing.T) { + if _, ok := response["validateUserTwoFactorAuthenticationCode"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.User.NewValidateUserTwoFactorAuthenticationCodeParams("codefor2fa") + _, err := client.User.ValidateUserTwoFactorAuthenticationCode(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ValidateUserTwoFactorAuthenticationCode", testvalidateUserTwoFactorAuthenticationCode) + + testverifyOAuthCodeAndGetUser := func(t *testing.T) { + if _, ok := response["verifyOAuthCodeAndGetUser"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.User.NewVerifyOAuthCodeAndGetUserParams("provider") + r, err := client.User.VerifyOAuthCodeAndGetUser(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("VerifyOAuthCodeAndGetUser", testverifyOAuthCodeAndGetUser) + } diff --git a/test/VPCService_test.go b/test/VPCService_test.go index ec70274c..b5e3fea0 100644 --- a/test/VPCService_test.go +++ b/test/VPCService_test.go @@ -191,6 +191,21 @@ func TestVPCService(t *testing.T) { } t.Run("ListVPCs", testlistVPCs) + testmigrateVPC := func(t *testing.T) { + if _, ok := response["migrateVPC"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VPC.NewMigrateVPCParams("vpcid", "vpcofferingid") + r, err := client.VPC.MigrateVPC(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("MigrateVPC", testmigrateVPC) + testrestartVPC := func(t *testing.T) { if _, ok := response["restartVPC"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/VirtualMachineService_test.go b/test/VirtualMachineService_test.go index 5041a5b5..9793e9c5 100644 --- a/test/VirtualMachineService_test.go +++ b/test/VirtualMachineService_test.go @@ -170,6 +170,18 @@ func TestVirtualMachineService(t *testing.T) { } t.Run("ListVirtualMachinesMetrics", testlistVirtualMachinesMetrics) + testlistVmsForImport := func(t *testing.T) { + if _, ok := response["listVmsForImport"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualMachine.NewListVmsForImportParams("host", "hypervisor", "zoneid") + _, err := client.VirtualMachine.ListVmsForImport(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListVmsForImport", testlistVmsForImport) + testmigrateVirtualMachine := func(t *testing.T) { if _, ok := response["migrateVirtualMachine"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -260,6 +272,21 @@ func TestVirtualMachineService(t *testing.T) { } t.Run("ResetPasswordForVirtualMachine", testresetPasswordForVirtualMachine) + testresetUserDataForVirtualMachine := func(t *testing.T) { + if _, ok := response["resetUserDataForVirtualMachine"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualMachine.NewResetUserDataForVirtualMachineParams("id") + r, err := client.VirtualMachine.ResetUserDataForVirtualMachine(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ResetUserDataForVirtualMachine", testresetUserDataForVirtualMachine) + testrestoreVirtualMachine := func(t *testing.T) { if _, ok := response["restoreVirtualMachine"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/VirtualNetworkFunctionsService_test.go b/test/VirtualNetworkFunctionsService_test.go new file mode 100644 index 00000000..ba013a49 --- /dev/null +++ b/test/VirtualNetworkFunctionsService_test.go @@ -0,0 +1,119 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestVirtualNetworkFunctionsService(t *testing.T) { + service := "VirtualNetworkFunctionsService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testdeleteVnfTemplate := func(t *testing.T) { + if _, ok := response["deleteVnfTemplate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualNetworkFunctions.NewDeleteVnfTemplateParams("id") + _, err := client.VirtualNetworkFunctions.DeleteVnfTemplate(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteVnfTemplate", testdeleteVnfTemplate) + + testdeployVnfAppliance := func(t *testing.T) { + if _, ok := response["deployVnfAppliance"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualNetworkFunctions.NewDeployVnfApplianceParams("serviceofferingid", "templateid", "zoneid") + r, err := client.VirtualNetworkFunctions.DeployVnfAppliance(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("DeployVnfAppliance", testdeployVnfAppliance) + + testlistVnfAppliances := func(t *testing.T) { + if _, ok := response["listVnfAppliances"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualNetworkFunctions.NewListVnfAppliancesParams() + _, err := client.VirtualNetworkFunctions.ListVnfAppliances(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListVnfAppliances", testlistVnfAppliances) + + testlistVnfTemplates := func(t *testing.T) { + if _, ok := response["listVnfTemplates"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualNetworkFunctions.NewListVnfTemplatesParams("templatefilter") + _, err := client.VirtualNetworkFunctions.ListVnfTemplates(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListVnfTemplates", testlistVnfTemplates) + + testregisterVnfTemplate := func(t *testing.T) { + if _, ok := response["registerVnfTemplate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualNetworkFunctions.NewRegisterVnfTemplateParams("format", "hypervisor", "name", "url") + r, err := client.VirtualNetworkFunctions.RegisterVnfTemplate(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("RegisterVnfTemplate", testregisterVnfTemplate) + + testupdateVnfTemplate := func(t *testing.T) { + if _, ok := response["updateVnfTemplate"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.VirtualNetworkFunctions.NewUpdateVnfTemplateParams("id") + r, err := client.VirtualNetworkFunctions.UpdateVnfTemplate(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("UpdateVnfTemplate", testupdateVnfTemplate) + +} diff --git a/test/VolumeService_test.go b/test/VolumeService_test.go index 9ff054be..448eb1f9 100644 --- a/test/VolumeService_test.go +++ b/test/VolumeService_test.go @@ -50,6 +50,36 @@ func TestVolumeService(t *testing.T) { } t.Run("AttachVolume", testattachVolume) + testchangeOfferingForVolume := func(t *testing.T) { + if _, ok := response["changeOfferingForVolume"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Volume.NewChangeOfferingForVolumeParams("diskofferingid", "id") + r, err := client.Volume.ChangeOfferingForVolume(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ChangeOfferingForVolume", testchangeOfferingForVolume) + + testcheckVolume := func(t *testing.T) { + if _, ok := response["checkVolume"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Volume.NewCheckVolumeParams("id") + r, err := client.Volume.CheckVolume(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CheckVolume", testcheckVolume) + testcreateVolume := func(t *testing.T) { if _, ok := response["createVolume"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -134,18 +164,6 @@ func TestVolumeService(t *testing.T) { } t.Run("GetPathForVolume", testgetPathForVolume) - testgetSolidFireVolumeSize := func(t *testing.T) { - if _, ok := response["getSolidFireVolumeSize"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.Volume.NewGetSolidFireVolumeSizeParams("volumeid") - _, err := client.Volume.GetSolidFireVolumeSize(p) - if err != nil { - t.Errorf(err.Error()) - } - } - t.Run("GetSolidFireVolumeSize", testgetSolidFireVolumeSize) - testgetUploadParamsForVolume := func(t *testing.T) { if _, ok := response["getUploadParamsForVolume"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -170,6 +188,33 @@ func TestVolumeService(t *testing.T) { } t.Run("GetVolumeiScsiName", testgetVolumeiScsiName) + testimportVolume := func(t *testing.T) { + if _, ok := response["importVolume"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Volume.NewImportVolumeParams("path", "storageid") + r, err := client.Volume.ImportVolume(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ImportVolume", testimportVolume) + + testlistElastistorVolume := func(t *testing.T) { + if _, ok := response["listElastistorVolume"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Volume.NewListElastistorVolumeParams("id") + _, err := client.Volume.ListElastistorVolume(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListElastistorVolume", testlistElastistorVolume) + testlistVolumes := func(t *testing.T) { if _, ok := response["listVolumes"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -182,6 +227,18 @@ func TestVolumeService(t *testing.T) { } t.Run("ListVolumes", testlistVolumes) + testlistVolumesForImport := func(t *testing.T) { + if _, ok := response["listVolumesForImport"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Volume.NewListVolumesForImportParams("storageid") + _, err := client.Volume.ListVolumesForImport(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListVolumesForImport", testlistVolumesForImport) + testlistVolumesMetrics := func(t *testing.T) { if _, ok := response["listVolumesMetrics"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -239,6 +296,18 @@ func TestVolumeService(t *testing.T) { } t.Run("ResizeVolume", testresizeVolume) + testunmanageVolume := func(t *testing.T) { + if _, ok := response["unmanageVolume"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Volume.NewUnmanageVolumeParams("id") + _, err := client.Volume.UnmanageVolume(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("UnmanageVolume", testunmanageVolume) + testupdateVolume := func(t *testing.T) { if _, ok := response["updateVolume"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -269,21 +338,6 @@ func TestVolumeService(t *testing.T) { } t.Run("UploadVolume", testuploadVolume) - testchangeOfferingForVolume := func(t *testing.T) { - if _, ok := response["changeOfferingForVolume"]; !ok { - t.Skipf("Skipping as no json response is provided in testdata") - } - p := client.Volume.NewChangeOfferingForVolumeParams("diskofferingid", "id") - r, err := client.Volume.ChangeOfferingForVolume(p) - if err != nil { - t.Errorf(err.Error()) - } - if r.Id == "" { - t.Errorf("Failed to parse response. ID not found") - } - } - t.Run("ChangeOfferingForVolume", testchangeOfferingForVolume) - testlistVolumesUsageHistory := func(t *testing.T) { if _, ok := response["listVolumesUsageHistory"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") diff --git a/test/WebhookService_test.go b/test/WebhookService_test.go new file mode 100644 index 00000000..744a96a3 --- /dev/null +++ b/test/WebhookService_test.go @@ -0,0 +1,128 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// + +package test + +import ( + "testing" + + "github.com/apache/cloudstack-go/v2/cloudstack" +) + +func TestWebhookService(t *testing.T) { + service := "WebhookService" + response, err := readData(service) + if err != nil { + t.Skipf("Skipping test as %v", err) + } + server := CreateTestServer(t, response) + client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) + defer server.Close() + + testcreateWebhook := func(t *testing.T) { + if _, ok := response["createWebhook"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewCreateWebhookParams("name", "payloadurl") + r, err := client.Webhook.CreateWebhook(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateWebhook", testcreateWebhook) + + testdeleteWebhook := func(t *testing.T) { + if _, ok := response["deleteWebhook"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewDeleteWebhookParams("id") + _, err := client.Webhook.DeleteWebhook(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteWebhook", testdeleteWebhook) + + testdeleteWebhookDelivery := func(t *testing.T) { + if _, ok := response["deleteWebhookDelivery"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewDeleteWebhookDeliveryParams() + _, err := client.Webhook.DeleteWebhookDelivery(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteWebhookDelivery", testdeleteWebhookDelivery) + + testexecuteWebhookDelivery := func(t *testing.T) { + if _, ok := response["executeWebhookDelivery"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewExecuteWebhookDeliveryParams() + r, err := client.Webhook.ExecuteWebhookDelivery(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ExecuteWebhookDelivery", testexecuteWebhookDelivery) + + testlistWebhookDeliveries := func(t *testing.T) { + if _, ok := response["listWebhookDeliveries"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewListWebhookDeliveriesParams() + _, err := client.Webhook.ListWebhookDeliveries(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListWebhookDeliveries", testlistWebhookDeliveries) + + testlistWebhooks := func(t *testing.T) { + if _, ok := response["listWebhooks"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewListWebhooksParams() + _, err := client.Webhook.ListWebhooks(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListWebhooks", testlistWebhooks) + + testupdateWebhook := func(t *testing.T) { + if _, ok := response["updateWebhook"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Webhook.NewUpdateWebhookParams("id") + _, err := client.Webhook.UpdateWebhook(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("UpdateWebhook", testupdateWebhook) + +} diff --git a/test/ZoneService_test.go b/test/ZoneService_test.go index 6c1b7689..55d4d708 100644 --- a/test/ZoneService_test.go +++ b/test/ZoneService_test.go @@ -35,6 +35,21 @@ func TestZoneService(t *testing.T) { client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true) defer server.Close() + testcreateIpv4SubnetForZone := func(t *testing.T) { + if _, ok := response["createIpv4SubnetForZone"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Zone.NewCreateIpv4SubnetForZoneParams("subnet", "zoneid") + r, err := client.Zone.CreateIpv4SubnetForZone(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("CreateIpv4SubnetForZone", testcreateIpv4SubnetForZone) + testcreateZone := func(t *testing.T) { if _, ok := response["createZone"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -50,6 +65,21 @@ func TestZoneService(t *testing.T) { } t.Run("CreateZone", testcreateZone) + testdedicateIpv4SubnetForZone := func(t *testing.T) { + if _, ok := response["dedicateIpv4SubnetForZone"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Zone.NewDedicateIpv4SubnetForZoneParams("id") + r, err := client.Zone.DedicateIpv4SubnetForZone(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("DedicateIpv4SubnetForZone", testdedicateIpv4SubnetForZone) + testdedicateZone := func(t *testing.T) { if _, ok := response["dedicateZone"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -77,6 +107,18 @@ func TestZoneService(t *testing.T) { } t.Run("DeleteZone", testdeleteZone) + testdeleteIpv4SubnetForZone := func(t *testing.T) { + if _, ok := response["deleteIpv4SubnetForZone"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Zone.NewDeleteIpv4SubnetForZoneParams("id") + _, err := client.Zone.DeleteIpv4SubnetForZone(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("DeleteIpv4SubnetForZone", testdeleteIpv4SubnetForZone) + testdisableOutOfBandManagementForZone := func(t *testing.T) { if _, ok := response["disableOutOfBandManagementForZone"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -137,6 +179,18 @@ func TestZoneService(t *testing.T) { } t.Run("ListDedicatedZones", testlistDedicatedZones) + testlistIpv4SubnetsForZone := func(t *testing.T) { + if _, ok := response["listIpv4SubnetsForZone"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Zone.NewListIpv4SubnetsForZoneParams() + _, err := client.Zone.ListIpv4SubnetsForZone(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("ListIpv4SubnetsForZone", testlistIpv4SubnetsForZone) + testlistZones := func(t *testing.T) { if _, ok := response["listZones"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -173,6 +227,21 @@ func TestZoneService(t *testing.T) { } t.Run("ReleaseDedicatedZone", testreleaseDedicatedZone) + testreleaseIpv4SubnetForZone := func(t *testing.T) { + if _, ok := response["releaseIpv4SubnetForZone"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Zone.NewReleaseIpv4SubnetForZoneParams("id") + r, err := client.Zone.ReleaseIpv4SubnetForZone(p) + if err != nil { + t.Errorf(err.Error()) + } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } + } + t.Run("ReleaseIpv4SubnetForZone", testreleaseIpv4SubnetForZone) + testupdateZone := func(t *testing.T) { if _, ok := response["updateZone"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") @@ -227,12 +296,24 @@ func TestZoneService(t *testing.T) { } t.Run("ListVmwareDcs", testlistVmwareDcs) - testupdateVmwareDc := func(t *testing.T) { - if _, ok := response["updateVmwareDc"]; !ok { + testremoveVmwareDc := func(t *testing.T) { + if _, ok := response["removeVmwareDc"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.Zone.NewUpdateVmwareDcParams("zoneid") - r, err := client.Zone.UpdateVmwareDc(p) + p := client.Zone.NewRemoveVmwareDcParams("zoneid") + _, err := client.Zone.RemoveVmwareDc(p) + if err != nil { + t.Errorf(err.Error()) + } + } + t.Run("RemoveVmwareDc", testremoveVmwareDc) + + testupdateIpv4SubnetForZone := func(t *testing.T) { + if _, ok := response["updateIpv4SubnetForZone"]; !ok { + t.Skipf("Skipping as no json response is provided in testdata") + } + p := client.Zone.NewUpdateIpv4SubnetForZoneParams("id", "subnet") + r, err := client.Zone.UpdateIpv4SubnetForZone(p) if err != nil { t.Errorf(err.Error()) } @@ -240,18 +321,21 @@ func TestZoneService(t *testing.T) { t.Errorf("Failed to parse response. ID not found") } } - t.Run("UpdateVmwareDc", testupdateVmwareDc) + t.Run("UpdateIpv4SubnetForZone", testupdateIpv4SubnetForZone) - testremoveVmwareDc := func(t *testing.T) { - if _, ok := response["removeVmwareDc"]; !ok { + testupdateVmwareDc := func(t *testing.T) { + if _, ok := response["updateVmwareDc"]; !ok { t.Skipf("Skipping as no json response is provided in testdata") } - p := client.Zone.NewRemoveVmwareDcParams("zoneid") - _, err := client.Zone.RemoveVmwareDc(p) + p := client.Zone.NewUpdateVmwareDcParams("zoneid") + r, err := client.Zone.UpdateVmwareDc(p) if err != nil { t.Errorf(err.Error()) } + if r.Id == "" { + t.Errorf("Failed to parse response. ID not found") + } } - t.Run("RemoveVmwareDc", testremoveVmwareDc) + t.Run("UpdateVmwareDc", testupdateVmwareDc) }